Поиск IP за Cloudflare и другими CDN для чайников

1697731184731.png

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



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

Темы, которые рассмотрены:
1. Кратко. Как настроить Cloudflare
2. Способы нахождения IP за клаудом
3. Готовое решение для поиска по SSL

Анализируем клауд и предполагаем как его настроил администратор, чтобы искать мисконфиги

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

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.

Найти IP за клаудом - это настоящая проблема. Делаем базовую разведку:


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

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

3. DNS записи. Основные типы записей: A - ipv4, AAAA - ipv6, MX - mail, PTR - доменное имя для IP, CNAME - эта запись является псевдонимом. Администратор может использовать CNAME, как алиас. Например example.com CNAME 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:сюдахэш или используем готовое решение далее сайт нам предложит перейти в Censes/Shodan/Zoomeye

6. Censys, Shodan, SecurityTrails

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



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

1. Попробуем просканировать тестовый ресурс на поддомены
Код:
subfinder -d domain.com
К сожалению нашлось только domain.com и
2. Посмотрим dns записи. Можно это делать через nslookup и другие утилиты, но смысла нет, если уже все продумали за нас и есть готовый веб ресурс, который сразу выдаст записи
вводим сюда доменку
1697733203160.png

По сути ничего полезного тут не оказалось.
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 миллионов - это долго и дорого.
Как говорил один важный человек., чем больше мы знаем информации о жертве, тем легче ее взломать.
Обращайте внимание на социальные сети прикрепленные к ресурсу:
1697734642549.png

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

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

1697735651560.png

Находим 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|(\*\.)"
1697737070690.png

1697736670261.png

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

Вот скрипт на perl, который автоматизирует процесс поиска нужного ssl для target.com
Perl:
#!/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: $@";
    }
}
По сути все готово:)

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

1697739940454.png

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

Что нового в 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$ вместе с исходниками




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

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

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

Вот содержимое:
1697740412432.png

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

2 режима работы. По http, как он сказал мне не работает, т.к много мусора будет лететь.
Софт по каким-то причинам не принимает сразу 45kk ip:443 из-за этого пришлось разбить по 1,3kk
1697740652067.png

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

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

Вывод:

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

Вложения

  • 1697734711880.png
    1697734711880.png
    787 байт · Просмотры: 294
  • 1697740305153.png
    1697740305153.png
    17,4 КБ · Просмотры: 299
Последнее редактирование:

puer

New member
25.12.2023
1
0
BIT
9
Есть еще вариант использования dns history org для поиска старых записей домена
 

rvlr

Member
20.04.2023
21
0
BIT
59
никак не получилось. Какие существуют сейчас варианты для нахождения Ip за cloudflare?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!