Инструменты Kali Linux

Список инструментов для тестирования на проникновение и их описание

ngrok

Описание ngrok

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

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

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

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

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

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

Автор: Keith Rarick

Лицензия: Apache License

Справка по ngrok

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Кроме этого:  Приказ Минфина России от 30 декабря 2019 г N 259н Об утверждении перечня подсистем компонентов модулей го

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

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

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

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

version — print the version string

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

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

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

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

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

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

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

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

Установка ngrok

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

Установка в BlackArch

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

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

Установка в Windows

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

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

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

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

Источник



HackWare.ru

Этичный хакинг и тестирование на проникновение, информационная безопасность

Как без белого IP локальный веб-сервер сделать доступным из Интернета

Выполнение атак социальной инженерии требует наличие веб-сервера, на котором запущен сайт или размещена страница, которая пытается перехитрить пользователя и сделать так, чтобы он ввёл определённые данные или совершил какое-либо действие.

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

  • арендовать хостинг
  • арендовать внешний IP у своего Интернет-провайдера

В данной статье я покажу, как с помощью программы ngrok можно обойтись без внешнего IP адреса.

Программа ngrok работает следующим образом:

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

Чтобы было понятно, посмотрим как работает ngrok на конкретном примере:

У меня на компьютере с Windows установлен веб-сервер. Кстати, программа ngrok работает на Windows, Linux, Linux ARM и некоторые других операционных системах. Мой компьютер находится как минимум на одним NAT'ом — в моём роутере не настроена проброска портов на компьютер. Но, скорее всего, мой Интернет-провайдер также использует NAT, чтобы сразу большое количество пользователей могли выходить в Интернет через 1 IP адрес. В таких условиях я никак не смогу сделать свой веб-сервер публичным, даже если настрою форвардинг портов от роутера.

Так вот, в такой безвыходной ситуации и поможет ngrok. Чтобы мой веб-сервер стал доступным из Интернета, мне достаточно запустить такую команду:

На экране следующая информация:

Интересующие меня данные заключается в строках:

Она означает, что подключение к http://4b348924.ngrok.io и https://4b348924.ngrok.io (протоколы HTTP и HTTPS соответственно) будет перенаправлено на http://localhost:80. Проверим это: с другого компьютера (Linux), я открою ссылку https://4b348924.ngrok.io. Выведен список файлов в корневой директории веб сервера Windows:

Отрою файл i.php (у меня он имеет адрес https://4b348924.ngrok.io/i.php):

Как видим, файл выполнился на локальном сервере и показаны результаты его работы.

Вернёмся на компьютер Windows где запущены ngrok и веб-сервер:

После «HTTP Requests» показаны строки, которые запрашивал удалённый пользователь. Более подробную информацию можно просмотреть по ссылке http://127.0.0.1:4040 на которой запущен веб-интерфейс ngrok. Там можно анализировать отдельные запросы:

Или просматривать статус ngrok в целом:

Как установить ngrok

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

Установка в ngrok BlackArch

Установка ngrok в Windows

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

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

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

Как получить токен аутентификации ngrok (authtoken)

Программа ngrok является бесплатной, но предусматривает платные тарифы. Бесплатных состояний может быть два:

  • без регистрации
  • с регистрации

Без регистрации вы можете использовать ngrok сразу после скачивания исполнимого файла. Без регистрации вы сможете выполнить только простейшие действия, например, как приведённое выше — создать тоннель от домена третьего уровня до своего локального сервера. На самом деле, для многих этого достаточно.

С регистрацией открываются дополнительные возможности, например, можно перенаправлять трафик на 443 порт (используется протоколом HTTPS) локального или удалённого сервера.

Кроме этого:  Как шпаклевать стены своими руками пошаговая инструкция для новичка

После регистрации на странице https://dashboard.ngrok.com/auth вы найдёте свой токен аутентификации. Этот токен можно указывать при каждом запуске ngrok, но намного удобнее сохранить его в системе командой вида:

После этого токен ngrok будет сохранён в файле, и ngrok будет автоматически считывать его оттуда при каждом запуске.

Как узнать чужой IP

В качестве демонстрации применения ngrok рассмотрим пару примеров. Предположим, мне нужно узнать IP адрес пользователя, с которым я общаюсь, например, по чату или через email. Для этого мне достаточно, чтобы он зашёл на любую страницу моего веб-сервера.

На веб-сервере я делаю следующую подготовку:

1. Создаю папку hacked-accounts (допустим, предлог — ссылка в Интернете на базу данных утёкших учётных данных).

2. Создаю файл index.php с примерно следующим содержимым:

Суть работы скрипта очень проста — берутся все значения массива $_SERVER и сохраняются в файл со сгенерированным именем. Массив $_SERVER содержи HTTP заголовки и IP клиента, сделавшего запрос.

3. Дальше я просто отсылаю ссылку https://4b348924.ngrok.io/hacked-accounts/, можно добавить разные финтифлюшки в виде значений параметров https://4b348924.ngrok.io/hacked-accounts/?users=admin&sort=newest (эти «шашечки» ни на что не влияют).

При открытии этой ссылки пользователь увидит что-то вроде такого:

Но при каждой попытке открыть ссылку на веб-сервере будут создаваться новые файлы с информацией:

Пример содержимого файла:

Особый интерес представляют следующие строки:

  • HTTP_USER_AGENT (User Agent, программа, с помощью который была открыта ссылка)
  • HTTP_REFERER (с какой страницы пришёл пользователь)
  • HTTP_ACCEPT_LANGUAGE (языки, которые предпочитает User Agent пользователя)
  • HTTP_X_FORWARDED_FOR (самое важное — IP адрес здесь!)
  • QUERY_STRING (строка запроса — можно указать разные значения для разных людей, чтобы различать пришедшие запросы)

Что касается REMOTE_ADDR, то значением там всегда будет примерно «::1». В REMOTE_ADDR содержится IP адрес программы, сделавшей запрос, в данном случае запрос сделала программа ngrok, которая запущена на том же самом компьютере поэтому её IP адресом является loopback.

Как отправить файл без файлообменников и почты

Предположим, нужно переслать другому пользователю файл, но при этом не использовать файлообменники, почту или аналогичные сервисы. Это можно сделать с помощью ngrok.

Теперь выдуманная ситуация следующая — мне действительно нужно быстро и без файлообменников передать пользователю другой файл. Для этого на локальном компьютере даже не нужен веб-сервер — функции простого веб-сервера будет выполнять сам ngrok.

Для выполнения задуманного, мне нужно предоставить доступ к папке hacked-accounts-real, расположенной по пути C:\Server\data\htdocs\hacked-accounts-real\, тогда достаточно запустить следующую команду:

Обратите внимание, что перед папкой стоит строка «file:///».

При открытии вновь сгенерированной ссылки будет получен доступ ко всем файлам в указанной папке:

Прокси с ngrok

ngrok может создавать туннели не только до локальных сетевых служб, но и до любых других адресов в Интернете. При этом получается прокси.

Если нужно создать туннель до веб-сайта, то если на одном IP адресе работают много сайтов, то нужно заменять присылаемый заголовок на правильный, это можно сделать опцией -host-header. В следующем примере будет создана ссылка, при переходе на которую будет открываться сайт HackWare.ru:

Команды и опции ngrok

У ngrok много других примеров использования, в том числе на бесплатном пакете. Дополнительную информацию о командах и опциях вы найдёте на странице https://kali.tools/?p=5489.

Заключение

Итак, ngrok может использоваться как замена хостингу для разовых задач. Например, если на удалённом сервере обнаружена уязвимость Удалённое выполнение кода и есть возможность запустить команду для скачивания шелла, то этот шелл нужно где-то разместить на доступном публично сервере. В качестве очень быстрого решения можно использовать ngrok + ОС, настроенная для работы через Tor.

В следующей статье будет показан более интересный пример использования ngrok в социальной инженерии.

Источник

Ngrok

FavoriteДобавить в избранное

Ngrok

В этой статье будут показаны простые шаги по настройке и использованию ngrok.

УСТАНОВИТЬ NGROK

Зарегистрируйтесь на ngrok здесь и загрузите его. Разархивируйте файлы и запустите ngrok. Вы также можете установить ngrok через оснастку, используя:

ДОБАВИТЬ АВТОКЕН В NGROK

Добавьте свой токен авторизации. Он доступен на левой панели панели инструментов. Можно либо отредактировать ngrok.yml, обычно хранящийся в

или просто введите:

Это добавит ваш токен авторизации в файл конфигурации ngrok.yml. Добавив authtoken, ngrok grants, вы получили доступ к дополнительным функциям и увеличили время сеанса.

ЗАПУСТИТЬ NGROK

Запустим ngrok с HTTP. Для этого необходим номер локального порта. Следующая команда защитит общедоступный URL-адрес для веб-серверов порта 80.

Давайте разберемся с этим. После отображения онлайн-статуса он идентифицирует пользователя и установленную версию, определяет регион. Затем Ngrok сообщает, что веб-интерфейс для ngrok находится на порту 4040 localhost. Два URL-адреса, показанные в следующей строке, являются общедоступными адресами, через которые теперь можно получить доступ к вашему локальному сайту. Обратите внимание, что есть два URL-адреса, один с http, а другой с https-соединением.

Давайте исследуем страницу статуса.

Когда осуществляется доступ к переадресованному адресу (что-то вроде этого 757de47032a1.ngrok.io), Ngrok будет регистрировать запросы в CLI и веб-интерфейсе.

Кроме этого:  Дверь Зверь что предлагает каталог стальных входных дверей отечественного производства

Ngrok

Предположим, у вас есть веб-сайт, который вам нужно протестировать, и он работает на порту 1337 вашего локального хоста. Мы будем использовать следующую команду:

Это будет туннелировать весь http-трафик с адреса ngrok на порт 1337 вашего устройства.

Используя платный план, пользовательские поддомены можно настроить с помощью:

Это будет туннелировать трафик порта 80 на andreyex.ngrok.io.

Кроме того, туннелируйте TCP-трафик на порт <port_number>, используя:

Ngrok можно обновить, используя:

Заключение

Ngrok – мощный инструмент, который может быть очень полезен при тестировании веб-сайтов. Возможно, размещение вашего действующего сайта на вашем компьютере – не лучшая идея, поэтому использование ngrok для живых сайтов не рекомендуется. Ngrok сделал тестирование сайта простым, эффективным и понятным.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Как поделиться своим локальным веб-сервером с Интернетом. Ngrok

Довольно часто у разработчика возникает необходимость показать свои наработки, расположенные на локальном компьютере. Если же приходится тестировать мобильные приложения, то доступ к API также нужен.

Конечно, можно купить ip-адрес, домен, хостинг, настроить всё это. Но проще, быстрее и доступнее использовать утилиту ngrok, создающую туннель к localhost.

Скачать ngrok можно по адресу: https://ngrok.com/

Программа доступна для Mac OS, Windows, Linux и FreBSD. В ограниченном режиме можно использовать бесплатно, которого, к слову сказать, хватает с лихвой в большинстве случаев.

Для начала нужно установить программу.

Установка Ngrok

Mac OS X 64-Bit:

Linux 64-Bit:

Linux 32-bit:

FreeBSD 64-Bit:

FreeBSD 32-Bit:

Например, для Xubuntu:

Установка Ngrok

Если выдаёт ошибку, проверьте права на запись файлов в указанной директории.

Далее необходимо распаковать архив. В нашем случае с Xubuntu:

Распаковка архива Ngrok в Xubuntu

Или сделать распаковку в окне:

Распаковка архива Ngrok в Xubuntu

Теперь перемещаем утилиту:

Затем даём права на запуск скрипта:

Вывести помощь в терминале можно командой:

Создание туннеля в простейшем варианте (обратите внимание на порт, обычно он 80, у мена 8000):

Источник

Ngrok

Ngrok — это платформа, которая с помощью установленной утилиты, позволяет, организовать удалённый доступ на веб-сервер или какой-то другой сервис, запущенный ПК. Доступ организуется через созданный при запуске ngrok безопасный туннель. ПК, при этом, может находиться за NAT’ом, и не иметь статического IP адреса.

Совсем не обязательно тащить тестовый проект куда-то ещё, можно показать его заказчику прямо с локальной машины, или, например, с помощью Ngrok можно очень легко расшарить файлы лежащие на ПК.

Для начала, нам потребуется веб-сервер, запущенный на компьютере (конечно же, его нужно настроить при необходимости):

И непосредственно сам Ngrok. Его можно запускать от обычного пользователя, и со включенным selinux:

ngrok

Сразу после запуска, можно увидеть, что сервис создал временный поддомен вида abcde123.ngrok.io для организации доступа на ПК, а локально по адресу 127.0.0.1:4040, была запущена панель, в которой отображаются данные по удалённым подключениям к туннелю. Пробуем открыть домен abcde123.ngrok.io из любого места, и получаем доступ к настроенной на веб-сервере директории.

ngrok

При необходимости, мы можем указать регион, в котором будет запущен прокси:

Или защитить запущенный туннель паролем для доступа:

В случае появления ошибки вида:

Стоит проверить, запущен ли веб-сервер локально, и работает ли он на 80 порте.

Полезно знать об Ngrok.

Авторизуемся. Если вы планируете использовать сервер часто, имеет смысл зарегистрироваться на ngrok.com, забрать со страницы настроек авторизации токен, и добавить его в локальный клиент с помощью команды:

Токен будет записан в файл

/.ngrok2/ngrok.yml и теперь, клиент при работе с сервисом будет авторизовываться на нём. Это позволит получить доступ к бесплатному тарифу, но с лимитами бОльшими, чем доступны не авторизованному пользователю. На платных тарифах имеются дополнительные возможности, делающие работу с сервисом удобной (резерв поддоменов, например), но в рамках данной заметки я рассматриваю только то, что пользователь может использовать без оплаты.

Проксируем на другие ПК в локальной сети. Совсем не обязательно держать веб-сервер на той же машине, где запускается Ngrok. Если сервис в локальной сети работает на отдельной машине, мы можем проксировать трафик туда:

Работаем не только с веб-сервером. На самом деле мы можем настроить удалённый доступ к любому tcp сервису, запущенному на ПК. Например, если мы хотим получить доступ по SSH, то можем сделать вот так:

При этом, от сервиса мы получим адрес вида tcp://0.tcp.ngrok.io:18211 -> localhost:22, и для доступа на ПК нам останется просто соединиться по SSH на хостнейм 0.tcp.ngrok.io и порт 18211. Любители поднимать игровые серверы могут поступать аналогично. Просто запускаете проксирование на нужный tcp порт, даёте координаты друзьям и приступаете к игре.

Заглядываем в документацию. Описанное в заметке — далеко не все возможности, так что всем заинтересовавшимся я настоятельно рекомендую заглянуть в документацию, где в очень доступной форме, с примерами команд, приведено описание всех возможностей данного сервиса и утилиты.

Источник