
Здравствуйте! В сегодняшней статье я поделюсь удивительными методами нахождения настоящего IP любого веб-сайта, защищенного файрволом (WAF).
Введение
WAFы часто используются для повышения безопасности, скрывая истинный IP-адрес веб-сайта, что сильно повышает уровень защиты, и может усложнить оценку безопасности и тестирование сайтов. Определив исходный IP-адрес, вы можете обойти эти защитные слои и оценить сервер напрямую (выявить уязвимости, эксплуатацию которых WAF или CDN блокируют).
Давайте изучим продвинутые методы выявления исходных IP-адресов при проведении тестирования безопасности.
WAF Reconnaissance
Первое, что вам всегда следует сделать, это проверить, есть ли у вашей цели файрвол. Существует несколько простых способов сделать это, начнем с команды ping. Она покажет полезную информацию об IP-адресе. Как вы можете видеть на скриншоте, IP-адрес указывает на сервер CloudFront, значит он находится за WAF.

Проверка через расширения
Вы можете использовать расширение Wappalyzer, чтобы проверить наличие WAF. Посетите веб-сайт и посмотрите, использует ли он CDN, такие как Cloudflare, Amazon CloudFront или Akamai. Как видно на скриншоте, он использует CDN Amazon CloudFront.

Инструмент WafWOOf
Для дополнительной проверки вы также можете использовать инструмент WafWOOf. Как видно на скриншоте, он определил Amazon CloudFront WAF.
wafw00f https://target.com

Теперь перейдем к поиску исходного IP
Метод №1 — Dnsrecon
Используйте инструмент DNSRecon для reverse DNS сканирования. Этот метод иногда раскрывает исходный IP (если сервер не защищен WAF).
dnsrecon -d
target.com

Метод №2 — Shodan Dorks
Следующее, что я рекомендую для поиска исходного IP — использовать Shodan. Тут, используя простой поиск, можно довольно просто найти множество утекших IP-адресов.
Ssl.cert.subject.CN
:"<DOMAIN>" 200

Использование Shodan CLI совместно с HTTPX предоставит вам IP-адреса с кодом состояния, заголовками и информацией об используемых технологиях (вы сможете посмотреть на заголовки, чтобы понять, какие IP-адреса действительно работают). Проверьте каждый IP, в случае успеха, вы увидите целевой сайт.
shodan search
Ssl.cert.subject.CN
:"<DOMAIN>" 200 --fields ip_str | httpx-toolkit -sc -title -server -td

Метод №3 — Censys
Еще один отличный инструмент для поиска IP — Censys. Просто вставьте вашу цель в строку поиска, и вы получите результаты с ipv4 и ipv6 адресами. Попробуйте искать IPv4 адреса, которые используют тот же SSL-сертификат или другие отпечатки, что и целевой сайт. Откройте их в браузере, чтобы проверить, тот ли это IP, что мы искали.

Метод №4 — Security Trails
SecurityTrails — это мощный инструмент для анализа истории IP адресов, который особенно полезен для поиска исходного IP-адреса веб-сайта. Просто введите имя веб-сайта в строку поиска и выберите “Historical Data” — вся история IP будет отображена. Открывайте эти адреса один за другим, чтобы получить напрямой доступ к цели.

Метод №5 — Fofa
Мы можем использовать Fofa, еще один отличный инструмент для поиска IP-адресов. Просто вставьте домен и нажмите на поиск. Будет много результатов. Отфильтруйте их по хэшу фавикона сайта, и вы получите более чистый результат.

Метод №6 — Zoomeye
ZoomEye — еще одна альтернатива Shodan. Введите домен и нажмите кнопку поиска. Затем отфильтруйте по хэшу фавикона. После этого отфильтруйте по IPv4. Снова проверьте, являются ли эти адресы исходными для цели или нет.

Метод №7 — Favicon Hash
У большинства сайтов есть уникальный фавикон (маленькая иконка на вкладке браузера). Этот значок имеет хэш, по которому можно найти другие похожие сервера (использующие такой значок). Сначала найдите URL фавикона цели на сайте favicons.teamtailor-cdn.com. Как только вы получите URL, найдите его хэш с помощью сайта favicon-hash.kmsec.uk. Теперь вы можете искать этот хэш в Shodan и Censys.


Метод №8 — viewdns.info
Вы также можете проверить историю IP-адресов сайта, используя сайт viewdns.info. Просто введите доменное имя, и вы увидите список IP-адресов. Вы можете проверить их один за другим, чтобы найти исходный IP.

Метод №9 — SPF записи
Еще один способ — проверить SPF запись домена. Просто скопируйте доменное имя, вставьте его в строку поиска и выберите SPF запись. Вы увидите все IP-адреса домена, которые могут потенциально указывать на исходный IP.

Метод №10 — VirusTotal
Еще один эффективный способ — использовать VirusTotal, отличный инструмент для обнаружения поддоменов и связанных IP-адресов. Я создал простую однострочную команду, чтобы собрать все IP-адреса с сайта вместе с заголовком и информацией о сервере.

Метод №11 — AlienVault
Теперь перейдем к следующему методу. Вы также можете использовать AlienVault, чтобы найти исходный IP веб-сайта. Я сделал однострочную команду: просто скопируйте эту команду, вставьте ее в терминал, измените имя домена и нажмите Enter. Вы увидите все IP-адреса сайта вместе с заголовком и информацией о сервере.

Комбинирование VirusTotal и AlienVault с помощью bash-скрипта
Я создал bash-скрипт, который получает уникальные IP-адреса из VirusTotal и AlienVault и удаляет дубликаты. Просто введите эту bash-команду с доменом, для которого вам нужен IP-адрес, и нажмите Enter. Вы увидите все уникальные IP-адреса из обоих источников, а также сохраните результат в txt-файле. Далее используйте httpx, и он покажет всю информацию об IP-адресах с заголовками и информацией о серверах.
#!/bin/bash
# API keys (replace with your own keys)
VT_API_KEY="<api_key>"
# Function to fetch IP addresses from VirusTotal
fetch_vt_ips() {
local domain=$1
curl -s "
https://www.virustotal.com/vtapi/v2/domain/report?domain=$domain&apikey=$VT_API_KEY
" \
| jq -r '.. | .ip_address? // empty' \
| grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}'
}
# Function to fetch IP addresses from AlienVault
fetch_otx_ips() {
local domain=$1
curl -s "
https://otx.alienvault.com/api/v1/indicators/hostname/$domain/url_list?limit=500&page=1
" \
| jq -r '.url_list[]?.result?.urlworker?.ip // empty' \
| grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}'
}
# Check if domain is provided
if [ -z "$1" ]; then
echo "Usage: $0 <domain_name_or_url>"
exit 1
fi
DOMAIN=$1
OUTPUT_FILE="${DOMAIN}_ips.txt"
# Get IPs from both sources, remove duplicates, and save to file
echo "Collecting IP addresses for: $DOMAIN"
{
fetch_vt_ips $DOMAIN
fetch_otx_ips $DOMAIN
} | sort -u | tee "$OUTPUT_FILE"
echo "-------------------------"
echo "IP addresses saved to: $OUTPUT_FILE"
Финальная проверка
Для окончательной проверки вы можете добавить оригинальный IP-адрес (который вы нашли) в файл /etc/hosts с его доменным именем и сохранить изменения. Затем выполните поиск по домену в браузере, он должен загрузить сайт с соответствующим IP. Вы также можете использовать команду ping, чтобы проверить IP resolving.

Используйте nmap, чтобы проверить сертификат и узнать, соответствует ли он доменному имени сайта или нет.

Если вы найдете исходный IP и откроете его в браузере, то сможете обойти защиту WAF.

Заметка: даже если вы нашли IP который перенаправляет на основной сайт, это не означает, что это оригинальный IP. IP может быть связан с основным доменом через DNS, даже если, фактически, он не хостит сайт. Многие CDN или WAF предназначены для перенаправления трафика на основной домен, скрывая реальный IP. Таким образом, IP, к которому вы получили доступ, может принадлежать CDN или WAF, а не back-end серверу.
Чтобы протестировать сайт в Burpsuite, скопируйте IP-адрес в оба поля, указанных на скриншоте. Таким образом, вы получите результаты в обход WAF. С этого момента вы сможете легко тестировать любые уязвимости на сайте.

Советы для Bug Bounty Hunters
Если вы нашли оригинальный IP, не спешите сообщать об этом. Исследуйте его на наличие уязвимостей, таких как SQL-инъекции и XSS. Поскольку на оригинальном IP нет WAF, шансы найти баги увеличиваются. Надеюсь, все эти методы помогут вам в охоте за багами.
Вывод
Нахождение оригинального IP веб-сайта является ключом к обходу WAF и CDN для более глубокого тестирования безопасности. Этот гайд охватывает инструменты, такие как Shodan, Censys и VirusTotal, а также методы, такие как поиск favicon хешей и проверка SPF. Я надеюсь, что эти советы помогут вам в bug bounty или других областях кибербезопасности.
Вы также можете посмотреть эту методологию на моем YouTube канале: https://www.youtube.com/watch?v=R3hmZpkvCmc
Отказ от ответственности: Этот контент предназначен только для законных исследований и образовательных целей. Всегда получайте разрешение от владельца домена и следуйте местным законам.
Еще больше познавательного контента в Telegram-канале — Life-Hack - Хакер
Комментарии (4)
Mitch
13.08.2025 19:08Меня заинтересовало слово "любого" заголовке, я и подумал, да ну ладно, как??
Оказалось любого- никак. Многих, как то можно, да, где не парились особо скрыть IP.Все в статье звучит норм, кроме совета в браузере открывать найденный IP, не надо так,
без хоста можно получить совсем другой сайт, даже если IP реально нашли.
Потом и нормальный совет есть, в hosts IP прописывать.
Альтернатива, можно в curl использовать опцию чтоб резолвить домен на нужный IP. Ну и тогда еще юзер агента надо ставить на всякий случай браузерного.
Например:curl --user-agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" --resolve habr.com:443:178.248.237.68
https://habr.com
JBFW
13.08.2025 19:08Ну вот, а потом некоторые будут ссылаться на рост количества пользователей Хрома на 64битной Windows 10 - по данным счётчиков вебзапросов
ia_alpatov
13.08.2025 19:08Однажды надо было собрать номера машин определённой модели из определённого региона, есть сайт с поиском по всем нужным данным, но за Cloudflare и очень помог этот сервис, где есть история сканов.
JBFW
Хм, технология не раскрыта.
В целом статья сводится к набору "заклинаний", каждое из которых может теоретически вызвать демона или превратить свинец в золото - но может и не превратить, и не вызвать.
А как, почему именно так, как это работает технически - не раскрыто.
Ну и наконец, найдете вы его: сидит себе "сайт на сервере", но реально там бекенда нет, потому что там просто nginx, который обращается куда-то