как удалить ngrok linux
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Как без белого IP локальный веб-сервер сделать доступным из Интернета
Выполнение атак социальной инженерии требует наличие веб-сервера, на котором запущен сайт или размещена страница, которая пытается перехитрить пользователя и сделать так, чтобы он ввёл определённые данные или совершил какое-либо действие.
Это фишинговый веб-сервер должен быть доступен из Интернета, а для этого требуется публичный IP. Многие клиенты Интернет-провайдеров выходят в Интернет через NAT, а это означает, что они никак не могут сделать свой веб-сервер публичным.
В данной статье я покажу, как с помощью программы ngrok можно обойтись без внешнего IP адреса.
Программа 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 (эти «шашечки» ни на что не влияют).
При открытии этой ссылки пользователь увидит что-то вроде такого:
Но при каждой попытке открыть ссылку на веб-сервере будут создаваться новые файлы с информацией:
Пример содержимого файла:
Особый интерес представляют следующие строки:
Что касается 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 в социальной инженерии.
Одна команда в терминале делает ваш локальный сервер доступным всему интернету по специальному HTTPS адресу: обзор утилиты Ngrok
Авторизуйтесь
Одна команда в терминале делает ваш локальный сервер доступным всему интернету по специальному HTTPS адресу: обзор утилиты Ngrok
У вас есть локальный сервер, на котором вы ведете всю разработку, а её результаты показываете, загружая код на хостинг или скидывая заказчику скриншоты — забудьте об этом.
Вашу проблему решает ngrok — простейшая утилита для создания туннеля к localhost.
С её использованием справится даже новичок, для создания туннеля достаточно выполнить следующую команду:
… где 80 — это порт, на котором запущен ваш веб-сервер. 80 является портом по-умолчанию для многих серверов, так что скорее всего всё заработает без изменений. В ответ получите на экран вывод следующего типа:
Где 5057493e.ngrok.io — это адрес, по которому ваш локальный сервер стал доступен в интернете.
Вам поможет следующая команда:
…где 80 является портом вашего сервера, а mysite.dev доменом, по которому он отвечает.
27–28 ноября, Москва, Беcплатно
Ngrok доступ для Linux, Mac, Windows и FreeBSD. Со всеми возможностями программы можно ознакомиться в документации.
Ngrok
Ngrok — это платформа, которая с помощью установленной утилиты, позволяет, организовать удалённый доступ на веб-сервер или какой-то другой сервис, запущенный ПК. Доступ организуется через созданный при запуске ngrok безопасный туннель. ПК, при этом, может находиться за NAT’ом, и не иметь статического IP адреса.
Совсем не обязательно тащить тестовый проект куда-то ещё, можно показать его заказчику прямо с локальной машины, или, например, с помощью Ngrok можно очень легко расшарить файлы лежащие на ПК.
Для начала, нам потребуется веб-сервер, запущенный на компьютере (конечно же, его нужно настроить при необходимости):
И непосредственно сам Ngrok. Его можно запускать от обычного пользователя, и со включенным selinux:
Сразу после запуска, можно увидеть, что сервис создал временный поддомен вида abcde123.ngrok.io для организации доступа на ПК, а локально по адресу 127.0.0.1:4040, была запущена панель, в которой отображаются данные по удалённым подключениям к туннелю. Пробуем открыть домен abcde123.ngrok.io из любого места, и получаем доступ к настроенной на веб-сервере директории.
При необходимости, мы можем указать регион, в котором будет запущен прокси:
Или защитить запущенный туннель паролем для доступа:
В случае появления ошибки вида:
Стоит проверить, запущен ли веб-сервер локально, и работает ли он на 80 порте.
Полезно знать об Ngrok.
Авторизуемся. Если вы планируете использовать сервер часто, имеет смысл зарегистрироваться на ngrok.com, забрать со страницы настроек авторизации токен, и добавить его в локальный клиент с помощью команды:
Токен будет записан в файл
/.ngrok2/ngrok.yml и теперь, клиент при работе с сервисом будет авторизовываться на нём. Это позволит получить доступ к бесплатному тарифу, но с лимитами бОльшими, чем доступны не авторизованному пользователю. На платных тарифах имеются дополнительные возможности, делающие работу с сервисом удобной (резерв поддоменов, например), но в рамках данной заметки я рассматриваю только то, что пользователь может использовать без оплаты.
Проксируем на другие ПК в локальной сети. Совсем не обязательно держать веб-сервер на той же машине, где запускается Ngrok. Если сервис в локальной сети работает на отдельной машине, мы можем проксировать трафик туда:
Работаем не только с веб-сервером. На самом деле мы можем настроить удалённый доступ к любому tcp сервису, запущенному на ПК. Например, если мы хотим получить доступ по SSH, то можем сделать вот так:
Заглядываем в документацию. Описанное в заметке — далеко не все возможности, так что всем заинтересовавшимся я настоятельно рекомендую заглянуть в документацию, где в очень доступной форме, с примерами команд, приведено описание всех возможностей данного сервиса и утилиты.
Удаление программ в Ubuntu
Программы, игры, утилиты и другие программные компоненты в операционной системе Ubuntu представлены в виде пакетов. Когда вы устанавливаете какую-нибудь программу (приложение), вы устанавливаете один или несколько пакетов.
Рассмотрим, как удалять приложения (пакеты) в Ubuntu.
Существует два основных способа удаления пакетов в Ubuntu: использование Менеджера приложений Ubuntu (Ubuntu Software Center) и использование командной строки.
Удаление программ, используя Менеджер приложений
Рассмотрим самый простой способ удаления пакетов в Ubuntu — использование Менеджера приложений.
Запустите Менеджер приложений Ubuntu. Для этого откройте лаунчер, нажав сочетание клавиш Super+A (клавиша Super на клавиатурах Windows соответствует клавише Win ). В лаунчере запустите программу Менеджер приложений.
Запуск Менеджера приложений
Список установленных приложений
Предупреждение
Ввод пароля
Удаление программ, используя командную строку
Второй распространенный способ удаления программ — это использование командной строки.
Для управления пакетами в Ubuntu используются утилиты командной строки apt и apt-get. Они имеют схожий синтаксис. Для новичков рекомендуем использовать утилиту apt. Смотрите также наше руководство: «Использование APT. Команды apt и apt-get».
Чтобы удалить пакет, выполните следующую команду (вместо имяпакета необходимо указать настоящее название пакета):
Например, чтобы удалить программу GIMP необходимо выполнить команду:
Чтобы полностью удалить пакет и его конфигурационные файлы используется команда:
Чтобы удалить сразу несколько пакетов можно указать их названия через пробел:
Чтобы вывести список всех установленных пакетов используется команда:
Удаление Snap пакетов
В Ubuntu есть пакеты, которые отличаются от обычных — это Snap пакеты. Подробнее про Snap пакеты вы можете прочитать в нашей статье «Snap-пакеты в Linux. Что это и как с ними работать»
Вы можете удалить Snap пакеты точно также как и любые другие через Центр приложений Ubuntu. В Менеджере приложений Ubuntu для snap-пакетов указан источник «Snap Store». Обращаем ваше внимание на то, что в списке приложений могут присутствовать программы, которые могут быть установлены через обычные репозитории Ubuntu, так и через Snap. Обычно такие приложения имеют разные версии. Приложения, распространяемые через Snap, как правило, всегда новее.
Рассмотрим, как удалять приложения, установленные через Snap, используя командную строку.
Чтобы вывести список установленных Snap пакетов выполните команду:
Для удаления Snap пакета выполните команду:
Удаление неиспользуемых пакетов
Когда вы устанавливаете какую либо программу, то обычно помимо основного пакета программы устанавливаются еще другие пакеты, которые требуются для работы данной программы. Они называются зависимостями.
После удаления программы, зависимости не удаляются. Они могут вообще не использоваться в системе или использоваться другими программами. Если пакеты-зависимости не используются другими программами, то такие пакеты можно удалить, чтобы они не занимали место в системе.
Для удаления неиспользуемых пакетов используется команда:
Данная команда автоматически удалит неиспользуемые пакеты.
Заключение
Мы рассмотрели различные способы удаления программ в Ubuntu. В большинстве случаев для удаления программ можно пользоваться Менеджером приложений Ubuntu. Использование командной строки дает дополнительные возможности и зачастую работать через нее быстрее.
linux-notes.org
Например у вас имеется на виртуальной машине веб сервер и вы с ним работаете. Но заказчик требует показать уже наработки сайта который вы ему делаете. У него еще нет хостинга, а код имеется только на локалке. Возможно варианты:
Но нет! Не стоит этого делать! С этим справиться ngrok — простая программа которая создает туннель к localhost.
Установка ngrok в Unix/Linux
Идем далее, мы ее скачали, теперь нужно распаковать:
Я скопирую данную утилиту в:
Чтобы вывести помощь, используйте:
и так, создаем туннель:
Где 80 — это порт с которым работает nginx/apache на виртуальной машине. При запуске команды выше, получите что-то типа:
Где http://7cb0094e.ngrok.io — это адрес в интернете. Можно в hosts файл прописать домен, например, captain.local, после чего запускаем:
Где, captain.local — локальное доменное имя. Статья «Делаем локальный сервер доступным в интернете с ngrok в Unix/Linux» завершена.
One thought on “ Делаем локальный сервер доступным в интернете с ngrok в Unix/Linux ”
как-то не хочется проприетарную программу под рутом запускать…
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.