Коннектим полезную нагрузку Metasploit Framework через NAT

Когда я провожу тестирование на проникновение и работаю в сети, где интернет раздается NAT, например из дома через маршрутизатор беспроводной сети, то мне необходимо настроить проброс портов на своем маршрутизаторе, чтобы полезная нагрузка, например Meterpreter смогла подключаться к машине с Metasploit Framework.

Лучшим вариантом было бы подключиться к Интернету напрямую с белым IP адресом, но это слишком затратно или невозможно, например из интернте-кафе. Настройка проброса портов не так уж и сложна, но проверить её работоспособность может не каждый. Жаль, что данный подход нельзя использовать при подключении через 3G модем или публичный Wi-Fi, потому как мне в этом случае изначально выдаётся серый IP адрес, и конечно же доступ к маршрутизатору провайдера для настройки проброса портов мне никто не предоставит.

В моём случае виртуальная машина с установленным Metasploit Pro имеет IP-адрес 192.168.1.169 в локальной сети. Обычно я выбираю порт 4444 в качестве рабочего порта для бэкконнекта полезной нагрузки, чтобы избежать путаницы. Сейчас я покажу пример на маршрутизаторе Asus, другой маршрутизатор конечно же может иметь совершенно иной Web-интерфейс.

проброс порта к локальной машине для бэкконекта meterpreter

Мой маршрутизатор не поддерживает диапазон для проброса трафика на локальный порт, в противном случае я мог бы указать диапазон 1024-65535 и для внешнего диапазона портов и для внутренних локальных портов. Это дало бы полезной нагрузке большее количество портов для возможности обратного подключения, что увеличило бы возможное количество сплоитов, которые одновременно можно было бы запустить на целевом исследуемом хосте. Не стесняясь экспериментировать с этим, если маршрутизатор поддерживает это – можно сделает любое тестирование на проникновение быстрее и получить больше шансов на успех, но я покажу как работать через один единственный порт, который был уже назначен.

Теперь давай проверим, как работает проброс порта на маршрутизаторе, который я только настроил. Для этого во вкладке Модули нахожу модуль “Generic Payload Handler“:

metasploitable запуск слушателя Generic payload handler

И запускаю этот модуль. Теперь мне нужно узнать мой публичный IP адрес. Это можно посмотреть в настройках маршрутизатора, или просто перейдя на сайт bgp.tools при условии конечно же, что провайдер для моего договора его предварительно мне выдал, а не назначил мне серый адрес и я оказался за двойным NAT как сейчас обычно это случается.

Далее ввожу этот публичный IP адрес в поле Listener Host, оставляю список портов слушателя по умолчанию 4444-4444. Здесь мне нужно использовать именно диапазон, а не значение, в противном случае модуль не сработает. Запускаю модуль. Теперь у меня есть активный слушатель, работающий на моей Metasploit Framework машине, и порт 4444, который проброшен через мой домашний роутер на эту же машину.

Теперь проверю, работает проброс портов или нет. На сайте www.canyouseeme.org ввожу порт 4444 в поле и нажимаю кнопку Can You See Me. Если я всё сделал правильно, то увижу сообщение что-то вроде этого:

проверка бэкконекта на определённый порт через сторонний сайт или сервис

Если я получил сообщение, что порт не доступен, это может быть потому, что порт может быть заблокирован самим провайдером в некоторых случаях, и мне нужно будет найти незаблокированный порт методом перебора или научного тыка.

Перед тем, как начать новое тестирование на проникновение, после проверки бэкконнекта мне нужно остановить запущенную Generic Payload Handler задачу. Теперь при выборе сплоита я буду указывать Listener Port 4444. Проще говоря, настроить бэкконнект легко, но всё упирается в белый IP-адрес, который можно получить у провайдера за небольшую дополнительную плату по договору оказания предоставления услуг доступа в сеть интернет.

Комментарии

Leave a Reply

Your email address will not be published. Required fields are marked *