Поиск IP за Cloudflare и другим CDN

内容

​Используйте полученные знания в этичных целях

Cloudflare - компания, которая предоставляет услуги CDN, защиту против DDOS и т.д. Проще говоря, клауд помогает снизить нагрузку и подменить IP адрес, защитить от DDOS атак, перенаправлять весь трафик на https, то есть благодаря сертификату можно подключить платежку и много других функций. Именно поэтому популярность клауда с каждым годом растет. Можно ориентироваться на статистику wappalyzer. 

Темы, которые рассмотрены:

 1. Кратко. Как настроить Cloudflare

 2. Способы нахождения IP за клаудом

 3. Готовое решение для поиска по SSL

Прежде, чем искать IP важно понимать, что делает клауд и как его настраивает администратор, чтобы примерно понимать, где админ может допустить ошибку.

Кратко, как это работает:

 1. Администратор регистрирует учетку на cloudflare.com

 2. Указывает доменку и выбирает бесплатный или платный тариф. В основном отличия платного тарифа заключаются в том, что можно добавить всего-лишь 3 правила. То есть функционал обрезан, если администратор решит сэкономить, то это скажется на безопасности его ресурса. 

 3. Меняет NS сервера домена

 4. Устанавливает SSL сертификат

 5. Настраивает необходимые правила. Например переадресацию с http --> https

 6. Настраивает WAF. Если администратор подходит к делу с головой, то он не только заблокирует OWASP top 10, но и сомнительный трафик. Как он может заблокировать crawl и парсинг? Сделать проверку, если на сайт ломятся с http и ipv6, то запросить капчу и редиректнуть на https. Ipv6 практически не распространены среди обычных юзеров, обычно они дешевые и поэтому часто используют под парс и другие сомнительные телодвижения. По статистике, свыше 98% общего мирового интернет-трафика приходится на протоколы IPv4, хотя у IPv6 немало преимуществ. Далее админ может запретить низкий http протокол. Поведенческие боты преимущественно используют протокол HTTP/1 и HTTP/1.1. Ну и напоследок может создать фильтр, чтобы доступ к ресурсу был только с определенной страны. Пример правила: (ip.geoip.country ne "RU")

Действие: Block

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

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

server {

 listen 80 default_server;

 server_name _;

 return 404;

}

Для 443 порта:

if ($host != "domain.com") {

 return 404;

}

Создаст белые списки:

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

 2. Добавление уникального идентификатора из запроса в белый список. CDN будет отправлять уникальный id на сервер

 3. Добавление скрытого хоста. Длинная комбинация букв и цифр, котооая будет известна только CDN.

     2.Найти IP за клаудом - это настоящая проблема. Есть множество способов, как его заполучить. Но прежде нужно сделать базовую разведку:

 1. Узнать диапазон айпи/CIDR

 2. Сервисы, которые работают на сервере

 3. DNS записи. Основные типы записей: A - ipv4, AAAA - ipv6, MX - mail, PTR - доменное имя для IP, CNAME - эта запись является псевдонимом. Администратор может использовать CNAME, как алиас. Например example.com CNAME exam.com. Для распределения нагрузки между серверами например: www.exam.com CNAME server.exam.com, server2.exam.com, SOA - содержит конфиденциальную информацию, например емейл администратора, серийный номер и т.д., ns(name server) - определяет авторитетные серверы имен для домена. Авторитетные серверы имен - это серверы, которые используются для разрешения запросов к именам хостов и определения того, какие IP-адреса следует использовать для доступа к данному серверу., TXT - текстовые данные. Внимательно изучите все DNS записи . Простые записи A, AAA, CNAME или MX могут послужить источником исходного IP.

 4. Информация о веб сервере. Утилита whatweb может помочь в этом вопросе

 5. Информация о vhosts. Вид хостинга, при котором множество веб-сайтов расположено на одном веб-сервере.

Вот основные из них о которых вы уже скорее всего знаете:

 1. Брут поддоменов. Можно попробовать побрутить поддомены, если повезет, то вы добудете айпи сервера. 

 2. Просмотр ssl сертификата

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

 4. Просмотр исходников сайта на наличие айпи в тэгах html или в js скриптах

 5. MurmurHash. Вычисляем hash favicon'a и ищем https://www.shodan.io/search/report?query=http.favicon.hash:сюдахэш

 6. Censys, Shodan, SecurityTrails

 7. Отправить сообщение на несуществующий адрес. К примеру отправляем письмо на [email protected]. Если нам повезет, то придет письмо с ошибкой доставки сообщения и там может оказаться адрес сервера

Теперь некоторые способы попробуем на практике. 

1. Попробуем просканировать тестовый ресурс на поддомены

subfinder -d domain.com

К сожалению нашлось только domain.com и www.domain.com

2. Посмотрим dns записи. Можно это делать через nslookup и другие утилиты, но смысла нет, если уже все продумали за нас и есть готовый веб ресурс, который сразу выдаст записи

клац xseo и вводим сюда доменку

По сути ничего полезного тут не оказалось.

3. Теперь включаем голову. Вспоминаем из чего состоит IPv4

Адрес IPv4 — это 32-битный адрес, который идентифицирует устройство в сети. Он состоит из 4 групп цифр (октетов) по 3 цифры в каждой.

IPv4 идентифицирует сеть и отдельный хост в сети. Вот пример IPv4-адреса: 185.107.80.231.

256.256.256.256 = 256^4 = 4 лярда + ipv4 доступно, если просканить на открытый 443 порт, то у вас на руках останется более 45 миллионов ipv4. Теперь вдумайтесь какая мощность нужна, чтобы к таргету получить ip. Не рационально сразу гнать все эти 45 миллионов - это долго и дорого. 

Как говорил один важный человек., чем больше мы знаем информации о жертве, тем легче ее взломать.

Обращайте внимание на социальные сети прикрепленные к ресурсу:

Чем больше информации мы узнаем о стране и городе, тем лучше. Большая вероятность, если админ живет в стране N, то он и будет пользоваться услугами хостеров N. Если это так, то мы сильно сэкономим ресурсы. 

Допустим, если мы определили, что сайт принадлежит итальянцу, то для быстрой проверки мы можем откинуть США, Китай и все другие страны, кроме Италии. Уже будет явно не 45 миллионов ipv4:443. А если мы узнаем еще и город, то проверка будет максимально быстро выполняться.

Находим ip range по городу Clifton - клац

5.62.114.0-5.62.114.255 в таком вот формате. Сканим на 443 открытый порт

**sudo masscan -iL iprange.txt --open-only **

​Теперь у нас есть ip:443 с открытым портом города Clifton. Теперь остается достать доменки из этих сертов. Я уже по сути все сделал за вас. 

openssl s_client -connect ip:443 2>&1 | grep -E "target.com"

или если вы хотите выводить все доменки, то используйте regex

openssl s_client -connect ip:443 2>&1 | grep -E "\b(?:https?://)?(?:www\.)?([a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*\.[a-zA-Z]{2,})\b|(\*\.)"

В CN как раз и лежит наша доменка. 

Вот скрипт на perl, который автоматизирует процесс поиска нужного ssl для target.com

#!/usr/bin/perl

use strict;

use warnings;

use Time::HiRes qw(time);

# Чтение IP из файла

open(my $fh, '<', 'ip') or die "Не удалось открыть файл 'ip': $!";

my @ip_list = <$fh>;

close($fh);

# Команда для выполнения (замените target.com на ваш)

my $command = q{cat ip | xargs -P 10 -I {} sh -c 'openssl s_client -connect {} 2>&1 | grep -E "CN = target.com" && echo {}'};

# Выполнение команды для каждого IP

foreach my $ip (@ip_list) {

**  chomp $ip;**

**  my $command_with_ip = $command . " -connect $ip";**

**  print "Выполнение команды для IP: $ip\n";**

**  eval {**

**    local $SIG{ALRM} = sub { die "timeout\n" };**

**    alarm 5; # Установка таймера на 5 секунд**

**    my $start_time = time();**

**    my $result = `$command_with_ip`;**

**    my $end_time = time();**

**    alarm 0; # Сброс таймера**

**    my $elapsed_time = $end_time - $start_time;**

**    print "Результат для IP: $ip\n";**

**    if ($elapsed_time >= 5) {**

**      print "Нет отклика более 5 секунд. Переход к следующей итерации\n";**

**      next;**

**    }**

**    print $result;**

**  };**

**  if ($@ && $@ !~ /timeout/) {**

**    die "Произошла ошибка при выполнении команды для IP $ip: $@";**

**  }**

}

По сути все готово:)

   3.Теперь время поискать готовые решения на тематических форумах

Человек продает такое же решение только за 1000$, но сейчас у него проходит скидка и он продает за 500$ :DDDDDDDD 

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

Описание его товара

Что нового в 1.2? 

- Новый дизайн Web-панели

- Добавление новой конфигурации через браузер

- Редактирование IP адресов через браузер

- Фикс бага с SNI протоколом (софт не дописывал домен в client-hello)

***

  Продается софт, который находит реальные айпи адреса серверов, на которых стоят сайты, подключенные к Cloudflare и другим CDN.

Вероятность нахождения не 100%, если владелец сайта правильно настроил свой сервер, то отыскать его реальный ip невозможно (Но как правило большинство забивают на это и айпи находится).

Не связано с DNS, поднятием истории домена и паблик базами)

Реальный ip localbitcoins.com был найден за 2 дня на сервере средней мощности.

  Для работы необходим сервер с мощным процессором, хорошим интернет-каналом. Хостинг должен разрешать скан.

Можно использовать несколько серверов одновременно и сканить с них централизованно.

  Присутствует Web-панель (с 1.1 версии), удобная настройка параметров сканирования, статистика, логи, возможность сканить сразу с нескольких серверов, мультиязычность.

Также, с 1.2 версии была полностью переработа Web-панель (самый первый скриншот), теперь все действия производятся не вручную путем редактирования файлов конфигураций а через браузер, что очень удобно.

  Всего 2 способа поиска, поддерживается многопоточность. Имеется возможность искать несколько сайтов одновременно, присутствует файл конфигурации. Результаты сохраняются в txt. 

Софт работает на windows и linux, однако на linux скорость поиска гораздо быстрее.

  Цена: 1000$

       500$ вместе с исходниками

  В планах оптимизировать скорость, добавить новые алгоритмы поиска, реализовать предварительный поиск по базам и сервисам и многое другое. Цена будет повышена при следующем обновлении!

Всем, кто купил по текущей цене все будущие обновления будут выдаваться бесплатно. Софт без привязок и прочего мусора, код не обфуцирован)

Человек после оплаты прислал мне архив

Вот содержимое:

Крч у него просто есть веб морда, через screen запускаем scanner и web panel, импортируем бд mysql, устанавливаем нужные библиотеки, подгружаем ip:443 и добавляем таргеты. 

2 режима работы. По http, как он сказал мне не работает, т.к много мусора будет лететь.

Софт по каким-то причинам не принимает сразу 45kk ip:443 из-за этого пришлось разбить по 1,3kk

Есть также баги, например проверит 1 файл с айпишниками, а к следующему не перейдет. 

Можно выбрать количество потоков. 

В целом идея хорошая, но проект очень сырой. Не понятно какие сервера приобрести, чтобы скорость была приличная. На моем rdp скан в 200 потоков бы занял для 1 таргета более месяца)))) Крч, для меня софт оказался бесполезным, у меня нет таких ресурсов.

​Вывод:

Неправильная настройка DNS приводит к раскрытию настоящего IP сайта. Есть множество способов, как найти IP за CDN, я рассказал лишь про самые основные. Важно использовать эти методы с осторожностью и в соответствии с законодательством, чтобы не нарушить приватность и безопасность пользователей

总结
Cloudflare предоставляет услуги CDN и защиту от DDoS, что снижает нагрузку и защищает IP-адреса. Популярность компании растет благодаря простоте настройки и множеству функций, таких как SSL-сертификаты и правила переадресации. Однако администраторы должны быть внимательны, чтобы избежать ошибок. Статья описывает методы нахождения IP-адресов за Cloudflare, включая анализ DNS-записей и использование утилит для сбора информации. Также рассматриваются способы защиты от прямого доступа к сайту по IP, такие как создание белых списков и настройка серверов для блокировки нежелательного трафика.