5 способов обойти CDN
Dmirty Zemlyakov (@zema_notes)Дисклеймер: статья написана исключительно для образовательных целей. Эксплуатация написанного в статье для неправомерных целей не поддерживается автором.
WAF... Сколько потерянных багов в этих трёх буквах. Всё больше сервисов используют средства защиты, предоставляемые поставщиками услуг, скрывая реальные IP-адреса своих серверов. В этой статье я поделюсь всеми известными мне способами найти настоящий IP-адрес сервера, скрытого за различными CDN по типу CloudFlare.
Поиск при помощи Shodan/Censys (1-ый вариант)
Многие переводят уже запущенные проекты на CloudFlare/CloudFront, не настраивая HTTP-сервер и фаерволл. Некоторые сервисы продолжают отдавать SSL сертификаты при прямом запросе на них.
Исходя из этого, можно найти нужный нам сервис по SSL-сертификату. Для этого выполним один из следующих запросов:
1) Shodan - ssl.cert.subject.cn:example.com
2) Censys - services.tls.certificates.chain.subject_dn:example.com
Данные запросы нам выведут список серверов, возвращающих сертификат для домена example.com и его поддоменов.
Поиск при помощи Shodan/Censys (2-ой вариант)
Выше мы рассмотрели вариант, позволяющий найти сервис по уже существующему сертификату. Возможно, сертификата не было, так как тот же cloudflare даёт возможность не настраивать у себя на сервере сертификат. Тогда на помощь может прийти 2-ой вариант.
Если не был настроен фаерволл, стоит попытаться найти HTTP сервер, который возвращает заголовок главной странице при запросе на него.
Вот запросы для всё тех же поисковиков:
1) Shodan - http.title:"example"
2) Censys - services.http.response.html_title: "example"
В результате выполнения поисковых запросов, нам вернётся список http серверов, что возвращают страницу по прямому запросу, содержащие "example" в своём заголовке.
Поддомены
Так как интернет имеет огромные масштабы, не стоит исключать того, что какой-то из поддоменов не скрыт за CDN, несмотря на различные предупреждения. Попробуйте перебрать поддомены или найти их в открытых источниках. Для этого я рекомендую следующие сервисы: VirusTotal, crt.sh, c99, а также утилиты: Sublist3r, Theharvester.
Попытайтесь найти поддомены, которые не обращаются к CDN и заменить домен в заголовке Host.
История DNS записей
Окей, администратор сайта смог настроить сервер так, чтобы сервер не возвращал ни страницы, ни сертификата при запросе, но может возникнуть вопрос: а точно ли сервис всегда использовал CDN/WAF?
Мы можем воспользоваться различными сервисами, которые сохраняют историю A и AAA записей для домена. Примеры таких - https://virustotal.com/, https://viewdns.info/iphistory/ и https://www.whoisxmlapi.com/. Вбиваем необходимый домен и ищем IP-адреса, которые не являются CDN.
Что делать с ними дальше? - отправлять запросы на эти IP-адреса, добавляя заголовок "Host: example.com".
Открылась нужная страница? Поздравляю! С вероятностью 99% вы нашли настоящий IP-адрес сервиса.
Почта
Данный вариант в наши дни очень редко срабатывает, так как многие используют отдельные сервера для писем, а также различные сервисы рассылок, такие как MailGun, SendPulse и т.п., но всё же такой вариант отметать сразу не стоит.
Для этого необходимо сделать так, чтобы на нашу почту пришло письмо от сервиса. Например, письмо с подтверждением регистрации.
Открываем оригинал письма и ищем строку, содержащую "Received: from". С небольшой вероятностью там может быть IP-адрес почтового сервера компании.
Вот и всё, это были все способы, которыми я хотел поделиться с вами.
Спасибо за прочтение <3
https://t.me/zema_notes