HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Этичный хакинг или пентестинг
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 19.10.2023, 22:56
Местный
Новичок
Регистрация: 07.07.2023
Сообщений: 0
С нами: 1504446

Репутация: 0
По умолчанию



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

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



Темы, которые рассмотрены:
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. Для распределения нагрузки между серверами например: 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:сюдахэш или используем готовое решение Favicon Hasher далее сайт нам предложит перейти в Censes/Shodan/Zoomeye

6. Censys, Shodan, SecurityTrails

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

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

Код:


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



По сути ничего полезного тут не оказалось.
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 Все диапазоны IP адресов 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

Perl:


Код:
#!/usr/bin/perl
use
strict
;
use
warnings
;
use
Time
:
:
HiRes
qw(time)
;
# Чтение IP из файла
open
(
my
$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: $@"
;
}
}
По сути все готово

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



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





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





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.