Как узнать настоящий IP сайта в Cloudflare

Как узнать настоящий IP сайта в Cloudflare

https://t.me/Torchik_Ru

Cloudflare – это прокладка между пользователем и сайтом. Она работает по принципу обратного прокси, предоставляя дополнительные услуги, в том числе кэширование страниц, защиту от DDoS, защиту от плохих ботов и прочее. В том числе, Cloudflare скрывает истинный IP адрес сервера, на котором размещён сайт.

Cloudflare использует свои сервера имён, отвечающие на DNS запросы и преобразующие имя хоста в IP адрес. Т.е. владелец сайта настраивает для своего домена использование NS серверов Cloudflare, эти NS сервера в ответе на DNS запросы отправляют IP, принадлежащий сети Cloudflare. В результате запрос к сайту поступает на Cloudflare, которая получает страницу с сервера, где размещён сайт (либо из своего кэша) и показывает эту страницу пользователю, который её запросил. В результате истинный IP адрес сайта за Cloudflare становится хорошо скрытым.

Если Cloudflare настроена правильно, то настоящий IP адрес сайта никогда не раскрывается и не записывается куда-либо; но сколько вы знаете людей, которые всё всегда делают правильно? По этой причине существуют инструменты, ищущие прорехи в ваших настройках Cloudflare. Одной из таких программ является CloudFail, ей и посвящена данная заметка.

Что такое и как работает CloudFail

Каждый сайт может иметь поддомены вида *.сайт.ru. Где вместо звёздочки могут быть подставлены разные значения, к примеру:

  • www.сайт.ru
  • en.сайт.ru
  • forum.сайт.ru
  • test.сайт.ru
  • admin.сайт.ru
  • 111.сайт.ru
  • chat.сайт.ru

Таких поддоменов может быть неограниченное количество. Важный момент: у каждого такого поддомена может быть свой IP адрес!

Т.е. сервера имён позволяют указать IP (или сразу несколько адресов) для сайт.ru, другой IP для test.сайт.ru, другой IP для en.сайт.ru и так далее.

Может возникнуть ситуация, когда в DNS записях домена сайт.ru прописан IP адрес Cloudflare, НО DNS записи для поддомена test.сайт.ru указывают на другой IP, не находящийся под защитой Cloudflare.

В результате раскрывается IP адрес, который:

  • может оказаться настоящим IP адресом сайта;
  • является IP адресом только субдомена, но даёт нам информацию о владельце либо подсказку для дальнейших исследований.

Мы не можем просто получить список всех субдоменов. Поэтому нужно перебирать различные варианты. Именно это и реализовано в CloudFail:

  • пробуются различные варианты субдоменов;
  • если для субдомена существует DNS запись, то для неё получаем IP;
  • проверяется, входит ли полученный IP в диапазон Cloudflare (т.е. защищён с помощью Cloudflare или нет).

На самом деле, описанный процесс является уже третьей стадией. На первой стадии CloudFail получает список возможных субдоменов от DNSDumpster.com и проверяет их.

На втором этапе CloudFail обращается к сервису CrimeFlare, собравшему большую базу IP адресов для сайтов, защищённый с помощью Cloudflare. Если для сайта известен IP, то он сразу показывается. О CrimeFlare более подробно рассказано здесь.

И на третьем этапе выполняется описанный брут-форс субдоменов по словарю.

В результате такого комплексного подхода довольно часто удаётся найти IP адреса, не защищённые Cloudflare.

Важно отметить, что мы исходим из предположения, что IP адреса поддоменов принадлежат или связаны с владельцем основного сайта. Да, обычно это так, но всегда нужно помнить, что в DNS записи поддоменов владелец основного домена может указать ЛЮБЫЕ IP адреса, даже не принадлежащие ему…

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

Для установки CloudFail в Ubuntu, Kali Linux, Debian, Linux Mint и их производные выполните следующие команды:

sudo apt update
sudo apt install python3-pip git tor
git clone https://github.com/m0rtem/CloudFail
cd CloudFail/
sudo pip3 install -r requirements.txt

Чтобы проверить, запускается ли CloudFail, выполните команду:

python3 cloudfail.py -h

Перед первым запуском, а также время от времени (примерно раз в месяц), рекомендуется делать обновление баз данных:

sudo python3 cloudfail.py -u

Будет обновлён список IP адресов Cloudflare, а также база данных CrimeFlare, содержащая известные IP адреса для некоторых сайтов.

Если вы хотите, чтобы программа работала через сеть Tor, то необходимо запустить службу Tor:

sudo systemctl start tor

Если вам не нужен Tor для отправки запросов, то этот шаг можно пропустить.

При желании, вы можете добавить службу Tor в автозагрузку (тогда не нужно будет запускать эту службу после каждой перезагрузки компьютера):

sudo systemctl enable tor

Как пользоваться CloudFail

У программы всего одна обязательная опция -t, после которой нужно указать доменное имя. Информация о всех опциях CloudFail: kali.tools/?p=4013.

Дополнительно можно использовать опцию --tor, чтобы запросы делались через эту сеть.

С программой уже поставляется список слов (файл subdomains.txt) для перебора возможных субдоменов по словарю. Если вы хотите использовать собственный словарь, то укажите его используя опцию -s. Файл словаря должен размещаться в папке data.

К примеру, если мы хотим получить данные для сайта anti-malware.ru, то команда запуска выглядит так:

sudo python3 cloudfail.py -t anti-malware.ru --tor

Анализ результатов CloudFail

Строка is part of the Cloudflare network! говорит о том, что сайт защищается сетью Cloudflare. Если бы это было не так, то на этом месте сканирование остановилось, поскольку оно бессмысленно.

Строка Testing for misconfigured DNS using dnsdumpster… говорит о начале первого этапа – получение известных хостов (субдоменов) связанных с анализируемым сайтом. Эти данные беруться от dnsdumpster, который, в свою очередь, собирает их из разнообразных источников (собственные обходчики сайтов из первого миллиона по рейтенгу Alexa Top, поисковые системы, популярные обходчики, Certificate Transparency, Max Mind, Team Cymru, Shodan и scans.io). Но брут-форс доменов не используется.

Как можно видеть, в наших результатах среди DNS записей найдены MX записи, которые указывают на почтовые серверы. Обратите внимание, что в этом случае MX записи указывают не на субдомены интересующего нас сайта, а на хосты Google. Об этом же говорят и данные по IP (принадлежность провайдеру услуг Интернет Google). Эти хосты не защищены Cloudflare, но для исследования на основе открытых источников в целях обнаружения настоящего IP сервера они не подходят. Мы только можем сделать вывод о том, что сайт использует электронную почту на основе почтовых услуг Google.

Строка Scanning crimeflare database… говорит о начале второго этапа – поиск по базе сайтов с известными IP от CrimeFlare.


Надпись Did not find anything. говорит о том, что в этой базе ничего не найдено.

Строка Scanning 2897 subdomains (subdomains.txt), please wait… говорит о начале третьего этапа – перебор возможных субдоменов по словарю.

Красная строка содержит информацию о найденных субдоменах, но их IP защищён сетью Cloudflare – следовательно, они бесполезны для определения настоящего IP (но могут использоваться для других целей).

Зелёные строки говорят о том, что IP найденного хоста не принадлежит Cloudflare. Следовательно, это может быть реальный IP интересующего нас сайта.

Пример строки из нашего случая - mail.anti-malware.ru, к сожалению, найденный IP вновь принадлежит Google.

Но строка test.anti-malware.ru приводит нас к успеху – это IP VPS сервера.

Поиск сайтов на одном IP подтверждает, что это настоящий IP интересующего нас домена.

Следующий пример сканирования – сайт searchengines.guru.

Получены результаты:

Они говорят о том, что первый и третий этапы не дали результатов. Зато в базе CrimeFlare найден настоящий IP этого сайта, это 159.253.17.89.

Сканирование searchengines.ru:

На первом этапе найдены только почтовые сервера Гугл. В базе данных CrimeFlare сайт не найден.

На третьем этапе следующие хорошие данные:

[09:19:32] [FOUND:SUBDOMAIN] cdn.searchengines.ru IP: 54.192.98.230 HTTP: 403 
[09:20:51][FOUND:SUBDOMAIN] link.searchengines.ru IP: 90.156.201.86 HTTP: 200
[09:21:06] [FOUND:SUBDOMAIN] mail.searchengines.ru IP: 64.233.164.121 HTTP: 200

mail.searchengines указывает на IP почтового сервера Гугл.

cdn.searchengines.ru имеет IP CloudFront – одного из сервисов Cloudflare, т.е. нам это также не подходит.

Зато link.searchengines.ru имеет IP адрес (90.156.201.86) стороннего сервера. Можно открыть страницу link.searchengines.ru – там какой-то забытый, видимо, уже много лет не использующийся онлайн-сервис. Этот IP может быть адресом, в том числе, searchengines.ru. В любом случае, этот IP связан с владельцами searchengines.ru, даже если сам этот хост находится на другом сервере.

Сканирование anycoin.news

Результаты:

Найден IP в базе CrimeFlare. На этот же IP (165.227.129.89) указывают субдомены – вероятно, этих субдоменов не существуют, но из-за особенностей настройки DNS (использование подстановочных символов), каждый запрошенный субдомен преобразуется в настоящий IP сервера.

В данном случае не используются почтовые сервера Гугл, но используются услуги другого сервиса – protonmail. Т.е. IP 185.70.40.101 не даёт нам полезной информации.

Сканирование codeby.net

Результаты:

Этот домен имеет очень интересные MX записи:

[FOUND:MX] 46.8.158.106 Russian Federation 10 mail.codeby.net
[FOUND:MX] 46.8.158.106 Russian Federation 20 mail.codeby.net

IP адрес 46.8.158.106 не только может оказаться настоящим адресом сервера. Но даёт нам очень интересную информацию о провайдере Интернет услуг:

А whois даёт нам его адрес и телефон.

Найденный субдомен также полезен:

[FOUND:SUBDOMAIN] market.codeby.net IP: 186.2.167.150 HTTP: 200

Он содержит информацию о другом возможном настоящем IP сайта - 186.2.167.150. В любом случае, этот IP имеет отношение к владельцу интересующего сайта.

Как правильно настроить Cloudflare, чтобы невозможно было узнать настоящий IP сайта

Как можно увидеть из рассмотренных примеров, неправильная настройка DNS приводит к раскрытию настоящего IP сайта, даже если он защищён с помощью Cloudflare. Необходимо все хосты, имеющие отношения к сайту, защищать сетью Cloudflare. Это же относиться к подстановочным символам в DNS записях – такие записи не должны раскрыть истинный IP адрес сайта.

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

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

Онлайн сервис определения настоящего IP адреса сайта за Cloudflare

CloudFail реализован онлайн, его адрес: https://suip.biz/ru/?act=cloudfail

Пример отчёта: https://suip.biz/ru/?act=report&id=84f16c83f45bcd9a42a16197ee9c2089

Связанные статьи:

Report Page