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

Обновлено: 02.07.2024

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

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

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

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

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

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

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

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

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

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


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



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

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



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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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


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


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

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

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

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

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

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

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


Прокси с ngrok

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


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

Заключение

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

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

Favorite

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

Ngrok

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

УСТАНОВИТЬ NGROK

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

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

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

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

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

ЗАПУСТИТЬ NGROK


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


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

Ngrok

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

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

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

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

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

Заключение

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

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

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

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

ngrok

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

ngrok

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

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

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

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

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

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

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

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

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

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


Обзоры

Фишинговый инструмент с интегрированным Ngrok

Требования

  • Python 2.7
  • Wget из Python
  • PHP

Протестировано

Клонирование

Запуск

Традиционная страница входа в систему Facebook.
Расширенный вход с Facebook.

Традиционная страница входа в систему Google.
Расширенный вход с Facebook.

Традиционная страница входа в LinkedIN.

Традиционная страница входа Github.

Традиционная страница входа в систему Stackoverflow.

Подобная страница входа в WordPress.

Примечание: Информация для исследования, обучения или проведения аудита. Применение в корыстных целях карается законодательством РФ.

да мне тоже интересно как добавить другие сайты напримере vk

Как добавить другие страницы например vk

Напишите разработчикам, думаю проблем не будет

У меня получилось с вк 🙂

Команда git clone (и ссылка) не найдена.

Почему когда я выполняю команду :sudo pip install -r requirements.txt пишет команда не найдена?

pip не установлен может быть? точный вывод в студию

Ща запускаю SocialFish командой python SocialFish.py пишет No module named core.config.что делать

Без зависимостей не запустится 🙂

Как написать автору SocialFish? Есть его контакты?

Зависимости установили?
pip3 install -r requirements.txt
pip install -r requirements.txt

ссылка на гитхаб рабочая, только что проверил

это только на Kali Linux?

нет, можно на любом deb подобном дистрибутиве попробовать

Как их установить,зависимости.

sudo pip install -r requirements.txt

command not found

sudo: pip: command not found

если дебовый дистрибутив, sudo apt-get install python-setuptools

Kali Linux у меня должно сработать

Говорит что уже установлен самой новой версии (41.0.1-1)

Леш, pip без sudo надо ;D

Здравствуйте у меня Kali Linux на Windows 10
Установил зависимости (pip install -r requirements.txt)
И всё равно в конце пишет что не указан модуль
что делать?

Добрый день! Какой именно вывод?

sudo pip3 install -r requirements.txt
python3 SocialFish.py

Помог, большое спасибо

Сам таргет указали?

Как решил проблему ?

i.e.: ./SocialFish.py root pass
помогите решить проблему

какой вывод точный?

Здравствуйте, на счёт socialfish. Хочу сделать фишинговый сайт на вк. Всё сделал правильно, но в конце не выдаёт сайт, а пишит vk module loaded. Building site.. Что делать?

Добрый день, судя по выводу, подождать 🙂

Привет! У тебя есть дискорд или что подобное, мне просто нужна помощь в установке, а в комментариях не очень удобно

Привет, есть конечно, но я же не техподдержка этого инструмента 🙂

sudo pip install flask
sudo pip3 install flask
sudo apt-get install python-flask
sudo apt-get install python3-pip

sudo apt-get install python-flask
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
E: Невозможно найти пакет python-flask
что не так?

Python3 SocialFish.py
./SocialFish
i.e.: ./SocialFish.py root pass

Спасибо за инструмент!

Не появляется ссылка. Что делать?

Включите точку доступа

Storing debug log for failure in /root/.pip/pip.log
что делать?

pip install -U pip

bash: python: команда не найдена
что делать ,сижу на кали линукс 32 бит

Читайте также: