ngrok


Описание ngrok

Программа ngrok делает доступными в Глобальной сети локальные сервисы, даже если компьютер не имеет белого IP адреса и находится за NAT и файерволами. С помощью ngrok из Интернета будет доступен любой порт на вашем локальном компьютере будет доступен через безопасный туннель. Например, вы можете сделать так, чтобы ваш локальный веб-сервер стал доступным из Интернета по прямой ссылке без дополнительной настройке.

Как работает программа

Вы загружаете и запускаете программу на вашей машине и указываете порт сетевой службы, обычно это веб-сервер.

Программа подключается к облачной службе ngrok, которая выдаёт вам сгенерированный адрес (домен третьего уровня). Если открыть этот адрес в веб-браузере, то трафик будет перенаправлен на вашу локальную сетевую службу или на любой адрес, который вы указали.

Для чего подходит ngrok

  • Демонстрация веб-сайтов без развёртывания на реальном хостинге
  • Создание веб хуков на вашем компьютере для разработки ПО
  • Тестирование мобильных приложений, подключённых к локально работающему бэкэнду
  • Стабильные адреса для подключённых устройств, развёрнутых в полевых условиях
  • Запуск персональных облачных сервисов из вашего дома

Домашняя страница: https://ngrok.com/

Автор: Keith Rarick

Лицензия: Apache License

Справка по ngrok

Использование:

ngrok КОМАНДА опции

КОМАНДЫ:


   authtoken	сохранить токен аутентификации в конфигурационный файл
   credits	печатает информацию об авторе и лицензии
   http		запустить HTTP туннель
   start	запустить туннели по имени из конфигурационного файла
   tcp		запустить TCP туннель
   tls		запустить TLS туннель
   update	обновить ngrok до последней версии
   version	напечатать строку с версией
   help		Вывести список команд или справку по указанной команде

Справка по команде authtoken

Имя:

authtoken сохраняет токен аутентификации в конфигурационный файл.

Использование:

ngrok ТОКЕН [ОПЦИИ КОМАНДЫ] [АРГУМЕНТЫ...]

Описание:

Команда authtoken изменяет ваш файл конфигурации, чтобы записать в него указанный authtoken. По умолчанию этот файл конфигурации находится в $HOME/.ngrok2/ngrok.yml.

Для использования многих расширенных функций службы, служба ngrok.com требует, чтобы вы зарегистрировали учётную запись. Чтобы связать вашего клиента с учётной записью, он должен передать секретный токен службе ngrok.com при запуске. Вместо того, чтобы передавать этот authtoken при каждом вызове, вы можете использовать эту команду, чтобы сохранить его в файле конфигурации, чтобы ваш клиент всегда аутентифицировал вас должным образом.

Пример:

ngrok authtoken BDZIXnhJt2HNWLXyQ5PM_qCaBq0W2sNFcCa0rfTZd

Опции:

   --config 		сохранить в этом конфигурационном файле, по умолчанию: ~/.ngrok2/ngrok.yml
   --log "false"	путь до файла журнала, 'stdout', 'stderr' или 'false'
   --log-format "term"	формат записи журнала: 'term', 'logfmt', 'json'
   --log-level "info"	уровень подробности журнала

Справка по команде credits

Имя:

credits печатает информацию об авторе и лицензировании.

Использование:

ngrok credits [АРГУМЕНТЫ...]

Описание:

Отображает автора, благодарности и информацию о лицензии.

Справка по команде http

Имя:

http запускает HTTP туннель.

Использование:

ngrok http [ОПЦИИ КОМАНДЫ] [АРГУМЕНТЫ...]

Описание:

Запускает туннель, прослушивающий HTTP/HTTPS трафик с указанным именем хоста. Заголовок HTTP Host на входящих публичных запросах проверяется, чтобы определить, какой туннель ему подходит.

Конечные точки HTTPS завершают трафик TLS на сервере ngrok с помощью сертификатов ngrok.io. Затем расшифрованный HTTP-трафик направляется через безопасный туннель, а затем на ваш локальный сервер. Если вы не хотите, чтобы ваш трафик TLS заканчивался на сервере ngrok, используйте туннель TLS или TCP.

Примеры:

Перенаправляет субдомен ngrok.io на локальный порт 80:

ngrok http 8080

Перенаправляет трафик на example.com:9000:

ngrok http example.com:9000

Запрашивает имя субдомена: 'bar.ngrok.io':

ngrok http -subdomain=bar 80

Запрашивает туннель 'ex.com' (DNS CNAME):

ngrok http -hostname=ex.com 1234

Запрашивает basic аутентификацию на конечной точке тоннеля:


ngrok http -auth='falken:joshua' 80

Переписывает заголовок Host на 'ex.com':

ngrok http -host-header=ex.com 80

Открывает доступ из интернета к локальным файлам в /var/log:

ngrok http file:///var/log

Перенаправляет на локальный https сервер:

ngrok http https://localhost:8443

Опции:

   --auth 		включает basic аутентификацию на конечной точке туннеля, 'ПОЛЬЗОВАТЕЛЬ:ПАРОЛЬ'
   --authtoken 		токен ngrok.com для аутентификации пользователя
   --bind-tls "both"	прослушивать http, https или both: true/false/both
   --config		путь до конфигурационных файлов; если указано несколько, то они используются все
   --host-header 	установить заголовок Host; если 'rewrite' использовать локальный адрес в качестве имени хоста
   --hostname 		туннель хоста на произвольном имени (требует DNS CNAME)
   --inspect		включить/отключить интроспекцию (самоанализ) http
   --log "false"	путь до файла журнала, 'stdout', 'stderr' или 'false'
   --log-format "term"	формат записи журнала: 'term', 'logfmt', 'json'
   --log-level "info"	уровень журнала
   --region 		регион сервера ngrok [us, eu, au, ap, sa, jp, in] (по умолчанию: us)
   --subdomain 		разместить туннель на указанном субдомене

Справка по команде start

Имя:

start запускает туннель по имени из конфигурационного файла.

Использование:

ngrok start [ОПЦИИ КОМАНДЫ] [АРГУМЕНТЫ...]

Описание:

Запускает туннели по имени из файла конфигурации. Вы можете указать любое количество имён туннелей. Вы можете запустить все туннели из файла конфигурации, для этого укажите ключ --all.

Примеры:

Запустить туннель с именем в конфигурационном файле 'dev':

ngrok start dev

Запустить туннели 'web' и 'blog':

ngrok start web blog

Запустить все туннели, определённые в конфигурационном файле:

ngrok start --all

Опции:

   --all		запустить все туннели из конфигурационного файла
   --authtoken 		токен ngrok.com для аутентификации пользователя
   --config		путь до конфигурационных файлов; если указано несколько, то используются все
   --log "false"	путь до файла журнала, 'stdout', 'stderr' или 'false'
   --log-format "term"	формат записей журнала: 'term', 'logfmt', 'json'
   --log-level "info"	уровень подробности журнала
   --none		запустить без туннелей
   --region 		регион сервера ngrok [us, eu, au, ap, sa, jp, in] (по умолчанию: us)

Справка по команде tcp

Имя:



tcp запускает туннель TCP.

Использование:

ngrok tcp [ОПЦИИ КОМАНДЫ] [АРГУМЕНТЫ...]

Описание:

Запускает туннель, который перенаправляет весь TCP-трафик с публичного порта на локальный адрес. Это чрезвычайно полезно для предоставления сервисов, которые работают на не HTTP-трафике (ssh, sip, rdp, игровые серверы и т. д.).

Туннель TCP связывает публичный адрес на удалённом сервере ngrok. Любые службы, которым требуется стабильный публичный адрес, должны использовать параметр --remote-addr. ngrok.com требует, чтобы вы зарезервировали адрес туннеля TCP для своей учётной записи, прежде чем сможете его использовать.

Примеры:

Перенаправить порт на ваш локальный сервер ssh

ngrok tcp 22

Предоставить RDP-сервер по определённому общедоступному адресу, который вы зарезервировали

ngrok tcp --remote-addr=1.tcp.ngrok.io:27210 3389

Опции:

   --authtoken 		токен ngrok.com для аутентификации пользователя
   --config		путь до конфигурационных файлов; если указано несколько, то используются все
   --log "false"	путь до файла журнала, 'stdout', 'stderr' или 'false'
   --log-format "term"	формат записей журнала: 'term', 'logfmt', 'json'
   --log-level "info"	уровень подробности журнала
   --region 		регион сервера ngrok [us, eu, au, ap, sa, jp, in] (по умолчанию: us)
   --remote-addr 	привязать удалённый адрес (требуется зарезервировать адрес)

Справка по команде tls

Имя:

tls запускает туннель TLS.

Использование:

ngrok tls [ОПЦИИ КОМАНДЫ] [АРГУМЕНТЫ...]

Описание:

Запускает туннель для прослушивания трафика TLS через порт 443 с указанным именем хоста. Поле расширения TLS SNI (Server Name Indication) в соединении TLS проверяется, чтобы определить, к какому туннелю оно подходит.

Сервер ngrok не прерывает соединения TLS, пересылаемые с помощью этой команды. Может быть использован любой базовый протокол. При желании вы можете указать пару ключ/сертификат TLS, которая будет использоваться для завершения трафика на стороне клиента до его переадресации. Если не указано, трафик будет пересылаться в зашифрованном виде.

Использование этой команды рекомендуется только с опцией -hostname. Другое использование будет работать, но всегда приведёт к предупреждениям о несоответствии сертификатов.

Примеры:

Пересылать трафик TLS для example.com на порт 443 (требуется CNAME)

ngrok tls -hostname=example.com 443

Пересылать трафик TLS на поддомен (предупреждение о несовпадении сертификата)

ngrok tls 1234

Прервать трафик TLS для t.co перед пересылкой

ngrok tls -hostname=t.co -crt=/path/to/t.co.crt -key=/path/to/t.co.key 443

Опции:

   --authtoken 		токен ngrok.com для аутентификации пользователя
   --client-cas 	путь к центру сертификации TLS для проверки клиентских сертификатов
   --config		путь до конфигурационных файлов; если указано несколько, то используются все
   --crt 		путь к сертификату TLS для завершения TLS
   --hostname 		туннель на произвольном имени хоста (требуется CNAME вашего DNS)
   --key 		путь к ключу TLS для завершения TLS
   --log "false"	путь до файла журнала, 'stdout', 'stderr' или 'false'
   --log-format "term"	формат записей журнала: 'term', 'logfmt', 'json'
   --log-level "info"	уровень подробности журнала
   --region 		регион сервера ngrok [us, eu, au, ap, sa, jp, in] (по умолчанию: us)
   --subdomain 		хост-туннель на пользовательском поддомене

Справка по команде update

Имя:

update обновляет ngrok до последней версии.

Использование:

ngrok update [ОПЦИИ КОМАНДЫ] [АРГУМЕНТЫ...]

Описание:

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

Для успешного обновления двоичный файл ngrok должен находиться в каталоге, доступном для записи текущему пользователю. Если вы поместили ngrok в системный PATH, вам может потребоваться запустить его с правами root или администратора.

Примеры:

Обновить ngrok до последней стабильной версии:

ngrok update

Обновить ngrok до последней бета версии:

ngrok update -channel=beta

Опции:

   --channel "stable"	канал обновлений (stable, beta)
   --log "false"	путь до файла журнала, 'stdout', 'stderr' или 'false'
   --log-format "term"	формат записей журнала: 'term', 'logfmt', 'json'
   --log-level "info"	уровень подробности журнала

Справка по команде version

Имя:

version - print the version string

Использование:

ngrok version [arguments...]

Руководство по ngrok

Страница man отсутствует.

Примеры запуска ngrok

Создать тоннель от сгенерированного поддомена, доступного по публичной ссылке, до локального порта 80 (веб-сервер):

ngrok http 80

Туннель на указанные ХОСТ:ПОРТ (foo.dev:80) вместо localhost:

ngrok http foo.dev:80

Сделать доступным из Глобальной сети локальный HTTPS сервер:

ngrok http https://localhost

Туннелирование произвольного TCP трафика на порт 22:

ngrok tcp 22

Создание туннеля (http) до сайта hackware.ru по протоколу https (https://hackware.ru) с заменой HTTP заголовка Host на hackware.ru (-host-header=hackware.ru):

ngrok http https://hackware.ru -host-header=hackware.ru

Установка ngrok

Установка в Kali Linux

wget `curl -s https://ngrok.com/download | grep -o -E 'https://bin.equinox.io/c/[A-Za-z0-9]{4,}/ngrok-stable-linux-amd64.zip'`
unzip ngrok-stable-linux-amd64.zip
chmod +x ./ngrok
./ngrok -h

Установка в BlackArch

Программа предустановлена в BlackArch

sudo pacman -S ngrok

Установка в любой дистрибутив Linux

wget `curl -s https://ngrok.com/download | grep -o -E 'https://bin.equinox.io/c/[A-Za-z0-9]{4,}/ngrok-stable-linux-amd64.zip'`
unzip ngrok-stable-linux-amd64.zip
chmod +x ./ngrok
./ngrok -h

Установка в Windows

Перейдите на страницу официального сайта и скачайте ngrok для Windows: https://ngrok.com/download

Распакуйте скаченный архив, отройте командную строку и перейдите в папку с исполнимым файлом с помощью cd, например, у меня программа помещена в папку C:\Users\MiAl\Downloads\:

cd C:\Users\MiAl\Downloads\

Для проверки выведите справку командой:

.\ngrok -h

Информация об установке в другие операционные системы будет добавлена позже.

Скриншоты ngrok

Инструкции по ngrok


Близкие программы:

  • Social-Engineer Toolkit (SET) (100%)
  • seeker (100%)
  • cisco-torch (50%)
  • Maltego (50%)
  • WPSploit (50%)
  • mimikatz (RANDOM - 50%)
  • Рекомендуется Вам:

    Comments are Closed