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

contente
traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

Действие: Block

traduzindo...

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

traduzindo...

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

traduzindo...

server {

traduzindo...

 listen 80 default_server;

traduzindo...

traduzindo...

 server_name _;

traduzindo...

traduzindo...

 return 404;

traduzindo...

traduzindo...

}

traduzindo...

traduzindo...

Для 443 порта:

traduzindo...

traduzindo...

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

traduzindo...

traduzindo...

 return 404;

traduzindo...

traduzindo...

}

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

 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.

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

 6. Censys, Shodan, SecurityTrails

traduzindo...

 7. Отправить сообщение на несуществующий адрес. К примеру отправляем письмо на random@domain.com. Если нам повезет, то придет письмо с ошибкой доставки сообщения и там может оказаться адрес сервера

traduzindo...

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

traduzindo...

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

traduzindo...

subfinder -d domain.com

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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|(\*\.)"

traduzindo...

traduzindo...

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

traduzindo...

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

traduzindo...

#!/usr/bin/perl

traduzindo...

use strict;

traduzindo...

use warnings;

traduzindo...

use Time::HiRes qw(time);

traduzindo...

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

traduzindo...

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

traduzindo...

my @ip_list = <$fh>;

traduzindo...

close($fh);

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

foreach my $ip (@ip_list) {

traduzindo...

**  chomp $ip;**

traduzindo...

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

traduzindo...

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

traduzindo...

**  eval {**

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

**      next;**

traduzindo...

**    }**

traduzindo...

**    print $result;**

traduzindo...

**  };**

traduzindo...

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

traduzindo...

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

traduzindo...

**  }**

traduzindo...

}

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

***

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

  Цена: 1000$

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

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

traduzindo...

​Вывод:

traduzindo...

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

traduzindo...