Как определить реальный IP-адрес сайта

Как определить IP адрес сайта

Есть различные способы узнать IP-адрес сайта. Вычислить IP очень просто, но это касается сайтов, которые не скрывают свой IP с целью защиты от атак типа DoS и DDoS. Для сокрытия IP-адреса владельцы сайтов используют WAF (файрвол веб-приложений) и облачные сервисы типа CloudFlare. В статье я расскажу о лучших инструментах, которые могут определить реальный IP-адрес сайта, и расскажу как ими пользоваться.

Еще по теме: OSINT: разведка на основе открытых источников

Давайте в начале разберемся, как работает WAF. К примеру, в составе популярного веб-сервера Apache имеется модуль mod_security, который способен выполнять функции файрвола веб-приложений и помочь защитить сайт от какой-нибудь простой DoS-атаки. Одна из таких атак — HTTP(S) GET-флуд, когда серверу посылают огромное количество запросов на получение информации. Сервер не может обработать столько запросов за очень короткий промежуток и просто падает от перегрузки.

Похожую функцию может предоставлять и облачные провайдеры — далее такие сервисы я буду называть просто WAF. Принцип их работы заключается в следующем:

  1. Веб-сервер, который необходимо защитить, работает в обычном режиме без фильтрации опасных запросов, а WAF-сервис настроен на отдельном сервере компании, предоставляющей подобные услуги.
  2. В некой DNS-записи в качестве IP нужного сайта указывается не его настоящий адрес, а IP-адрес сервера WAF.
  3. После такой настройки все запросы к сайту, а точнее к доменному имени будут направляться не на сам сайт, а на WAF-сервер.
  4. Этот сервер принимает запрос, обрабатывает его и, если запрос удовлетворяет настроенным правилам, отсылает его на защищаемый сервер. WAF получает от этого сервера запрашиваемую информацию (веб-страницу, файл) и перенаправляет ее клиенту (пользователю).

Как определить IP-адрес сайта

Так как современные WAF блокируют множественные запросы атак, использовать утилиты вроде sqlmap или WPScan не получится. Также невозможны атаки типа DoS или DDoS.

Поэтому у нас есть два варианта действий.

  1. Сконструировать запрос таким образом, чтобы обойти правила, прописанные в WAF.
  2. Отправить запрос напрямую к веб-серверу, минуя проверку WAF.

Далее мы сконцентрируемся на втором пункте. Для его реализации нам нужно знать настоящий IP-адрес сервера и быть уверенными, что этот сервер способен принимать запросы напрямую из сети от кого угодно. Прямой IP-адрес сервера часто называют словом bypass. Иногда прямой доступ к нему специально сохраняют, чтобы сервер мог продолжить работу в случае неполадок на стороне WAF-сервисов.

Для этой цели мы будем использовать скрипт с длинным, но говорящим названием: Bypass firewalls by abusing DNS history.

Эта утилита пытается узнать настоящий IP-адрес нужного нам сервера сразу двумя методами.

  1. Анализ истории DNS-записей.
  2. Поиск поддоменов и последующий анализ их IP-адресов.

Ко всем найденным IP-адресам скрипт делает запросы для проверки.

К практике

Скрипт находится в открытом доступе на GitHub. Я запускал его в Kali Linux, но он может работать и в других дистрибутивах.

Команды для установки на Kali выглядят так:

$ sudo apt install jq
$ git clone https://github.com/vincentcox/bypass-firewalls-by-DNS-history

Команда для установки в дистрибутиве BlackArch:

$ sudo pacman -S bypass-firewall-dns-history jq

Возвращаемся в Kali. Первой строчкой мы ставим необходимый модуль для работы скрипта, а второй скачиваем скрипт с GitHub. Чтобы получить справку по использованию тулзы, достаточно перейти в ее директорию и выполнить следующую команду:

$ bash bypass-firewalls-by-DNS-history.sh --help

Как видите, разработчик скрипта предусмотрел несколько параметров:

  • -d — обязательный ключ для использования скрипта. С его помощью мы указываем доменное имя сайта, для которого хотим найти bypass;
  • -a — с этим параметром найденные IP будут проверены не только для основного домена, но и для поддоменов;
  • -l — этот параметр позволяет подгрузить в скрипт ваш список поддоменов, чтобы выполнить более детальную и точную проверку;
  • -o — данный параметр позволяет сохранить результат работы скрипта в файл, путь к которому указывается после параметра.

А теперь запустим скрипт:

$ bash bypass-firewalls-by-DNS-history.sh -d <Your_target>

Для примера я нашел один сайт, который уязвим к атаке такого вида. Вот как выглядит вывод скрипта для этого сайта.

Результат работы скрипта для определения IP
Результат работы скрипта

В колонке IP будут поочередно записаны IP-адреса, по которым можно напрямую обратиться к серверу. Во второй колонке указана вероятность того, что это верный IP, выраженная в процентах. В колонке Organisation — название компании, которой принадлежит данный IP.

Возьмем другой пример и расширим зону поиска: добавим сопоставление IP с поддоменами:

$ bash bypass-firewalls-by-DNS-history.sh -d <Your_target> -a
Результат расширенного поиска IP сайта
Результат расширенного поиска

Здесь, помимо всего прочего, появляется еще одна колонка — Domain, в которой перечислены поддомены, соответствующие найденным IP-адресам.

Чтобы потом не потерять результат работы, его обычно сохраняют в файл. Что ж, используем параметр -o и пропишем путь для сохранения лога в домашнюю папку пользователя.

$ bash bypass-firewalls-by-DNS-history.sh -d <Your_target> -a -o /home/kali/<output.txt>
Можно указывать не весь путь, а только название файла, в который будет записан результат. Файл сохранится в папку со скриптом.

Как вы знаете, не все взламывается в один клик. Иногда программам тоже нужна помощь — в нашем случае мы можем облегчить тулзе задачу, составив объемный список поддоменов. Этот список мы заполним с помощью скрипта Amass, который прекрасно умеет это делать. Запускается Amass вот такой командой:

$ Amass enum -d <Your_target> -o <subdomains.txt>

С помощью параметра -d указываем свою цель, с помощью -o — файл для сохранения результата работы.

Результат работы Amass
Результат работы Amass

Возвращаемся к WAF Bypass. Теперь мы будем использовать список найденных поддоменов для поиска настоящего IP-адреса атакуемого сервера:

$ bash bypass-firewalls-by-DNS-history.sh -d <Your_target> -l <subdomains.txt>
Результат работы WAF Bypass с помощью списка поддоменов
Результат работы WAF Bypass с помощью списка поддоменов

Как видим, найдены два наиболее вероятных bypass-ip.

Пробуем навыки в деле

Чтобы развеять у вас сомнения в работоспособности этого метода, я предлагаю провести небольшое исследование. Мы попробуем пробить с помощью данной утилиты несколько сайтов и составим небольшую статистику.

Все дальнейшие действия были выполнены только в целях обучения и исследования. Автор не преследует цели навредить какой-либо компании или отдельным людям.

Хочу уточнить: проверять мы будем только серверы, которые защищены WAF. Чтобы в этом убедиться, используем встроенную в Kali утилиту dig:

$ dig <DOMAIN> NS +short

Утилита выведет нам список DNS-серверов, к которым подключен сайт. Если вы увидите DNS сервера Cloudflare или других WAF, это означает, что сайт находится под защитой от DOS- и DDоS-атак.

Команду для тестирования будем использовать тоже общую:

$ bash bypass-firewalls-by-DNS-history.sh -d <Your_target> -a

Итак, поехали. Возьмем для примера один игровой сайт, защищенный Cloudflare. Домен я по понятным причинам показывать не стану. Попробуем использовать нашу утилиту для пробива WAF и посмотрим, добьемся ли мы успеха.

Результат пробива IP-адреса
Результат пробива

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

Теперь посмотрим на один из серверов для совместной игры в Minecraft. Они тоже часто пользуются услугами защиты от DoS и DDoS.

Результат пробива IP сайта
Результат пробива

Для эксперимента я беру первые попавшиеся серверы. Этот был зарубежным, и его защита выстояла.

Попробуем что-нибудь более беззащитное — мне под руку попался кастомный ролевой сервер игры GTA V.

Результат пробива IP сайта
Результат пробива IP сайта

Стопроцентный успех. Однако сервер был настолько скромным, что пришлось принудительно остановить полное сканирование.

Теперь проверим несколько новостных сайтов. Первой целью (никакого вреда мы не причинили) выступил один популярный новостной портал.

Результат пробива IP-адреса сайта
Результат пробива IP-адреса сайта

Мы получили огромное количество ошибок. Они связаны с тем, что сервер журнала ограничил нам возможность делать запросы. Однако утилите это не помешало добиться успеха. В самом первом отчете был найден байпас с вероятностью в 100%, однако это был поддомен.

Далее попробуем зарубежный образовательный журнал.

Определить реальный IP сайта
Результат пробива IP

Можно заметить, что программа уже начала отваливаться, но все же попыталась найти в поддоменах байпасы. Процент успеха достаточно мал.

И наконец, последний кандидат.

Определить скрытый IP сайта
Результат

Успех! Найден настоящий IP-адрес сайта..

Итого

Как видите, этим методом действительно можно определить реальный IP-адрес сайта. Конечно, не всегда это получается качественно, иначе WAF вообще были бы бесполезными. Однако, наткнувшись на один из них, не опускайте руки, ведь в вашем арсенале теперь еще пара действенных инструментов.

Еще по теме: Лучшие сайты для поиска уязвимостей

ВКонтакте
OK
Telegram
WhatsApp
Viber

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *