Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CF-Hero — CF-Hero — это инструмент разведки, который использует несколько источников данных для обнаружения исходных IP-адресов веб-приложений, защищённых Cloudflare. | Kitploit
Инструменты/GitHubGitHub/musana/cf-hero
OSINT (Разведка открытых источников)РазведкаСбор информацииОбход WAFТестирование на ПроникновениеПеречисление ПоддоменовПодмена Цифрового ОтпечаткаАнализ DNS
GitHubmusana/cf-hero

CF-Hero

CF-Hero — это инструмент разведки, который использует несколько источников данных для обнаружения исходных IP-адресов веб-приложений, защищённых Cloudflare.

Репозиторий
2.6k252112 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CF-Hero

CF-Hero

Что это? • Возможности • Предыстория • Установка • Использование • Запуск cf-hero • ZoomEye (Спонсор) • Планы

Что это?

CF-Hero — это комплексный инструмент разведки, разработанный для обнаружения реальных IP-адресов веб-приложений, защищённых Cloudflare. Он выполняет сбор информации из нескольких источников с помощью различных методов.

DNS-разведка

  • Текущие DNS-записи (A, TXT)
  • Анализ исторических DNS-данных
  • Обнаружение связанных доменов

Источники информации

  • Поисковая система ZoomEye
  • Поисковая система Censys
  • Поисковая система Shodan
  • Исторические записи SecurityTrails
  • Активное перечисление DNS
  • Корреляция связанных доменов

Инструмент анализирует данные из этих источников, чтобы выявить потенциальные исходные IP-адреса целей, защищённых Cloudflare. Он проверяет результаты с помощью анализа ответов, чтобы минимизировать ложные срабатывания.

простая блок-схема инструмента```

┌──────────┐
│ │ ┌─────────┐
│ Domain │───────►│ Check A │
│ │ │ Records │
└──────────┘ └────┬────┘
│
┌──────────────────┘
│
▼
┌─────────────┐
│Is it behind │ YES
│ CloudFlare │────────────────────────────────────────┐
└─────────────┘ │
│ │
│ │
│ ▼
│ ┌──────────────────────────┐
│ │ Check the domain from │
│ ┌─────────────────│ various sources │───────────────────┐
│ │ └──────────────────────────┘ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ ▼ ▼ ▼ ▼
│ ┌────────────────┐ ┌─────────────┐ ┌───────────┐ ┌─────────────┐
│ │ Historical DNS │ │ Current DNS │ ┌─┤ OSINT │ │ Sub/domains │
│ ┌──│ Records │ ┌─│ Records │ │ └───────────┘ ┌─│ │
│ │ └────────────────┘ │ └─────────────┘ │ ┌─────────┐ │ └─────────────┘
│ │ ┌──────────────┐ │ ┌───────────┐ ├──►│ ZoomEye │ │ ┌─────────────┐
│ ├───►│SecurityTrails│ ├──►│ TXT │ │ └─────────┘ │ │ sub(domains)│
│ │ └──────────────┘ │ └───────────┘ │ ┌─────────┐ └──►│ used by the │
│ │ ┌──────────────┐ │ ┌───────────┐ ├──►│ Shodan │ │ same company│
│ │ └───►│Completedns │ └──►│ A │ │ └─────────┘ └─────────────┘ │ │ │ └──────────────┘ └───────────┘ │ ┌─────────┐ │ │ │ └──►│ Censys │ │ │ │ └─────────┘ │ │ │ │ │ │ │ │ └────────────────────────────────────────────┬────────────────────────────────────────────┘ │ │
NO │ │
│ │ │ │ │ ▼ │ ┌──────────────────────────────────────┐ │ │ Establish direct HTTP connections to │ │ │ each discovered IP address │ │ └──────────────────────────────────────┘ │ │ │ │ │ │ │ ▼ │ ┌─────────────────────────────┐ │ │ Compare the HTML title with │ │ │ the target's title │ │ └─────────────────────────────┘ │ │ │ │ │ │ │ ▼ │ ┌─────────────────────┐ │ │ │ YES │ │ Are they the same ? │─────────────────────┐ │ │ │ │ │ └─────────────────────┘ ▼ │ │ ┌───────────────┐ │ │NO │ Real IP found │ │ │ └───────┬───────┘ │ ▼ │ │ ┌──────────┐ │ └───────────────────────────────────────────►│ FINISH │◄───────────────────────────┘ └──────────┘

root@kitploit:~
# Возможности
### Возможности

- DNS-разведка
  - Проверяет текущие DNS-записи (A, TXT)
  - Извлекает домены за Cloudflare
  - Извлекает домены не за Cloudflare
  - HTML-заголовок, указанный пользователем (на случай, если CF блокирует вас)
  - Умная подсветка

- Сторонние разведданные
  - Интеграция с ZoomEye
  - Интеграция с Censys
  - Интеграция с Shodan
  - Интеграция с SecurityTrails
  - Обратный поиск по IP для связанных доменов

- Расширенные возможности
  - Поддержка пользовательских JA3-отпечатков
  - Возможности параллельного сканирования
  - Поддержка стандартного ввода (конвейера)
  - Сравнение HTML-заголовков для проверки
  - Поддержка прокси
  - Настройка пользовательского User-Agent

# Контекст
## Текущие DNS-записи
Давайте рассмотрим сценарий с некорректными DNS-настройками.

Как вы можете видеть, обычный DNS-запрос возвращает IP-адрес домена. Например, musana.net находится за Cloudflare (CF), но иногда у домена есть несколько A-записей, и некоторые из них могут не соответствовать IP-адресам, связанным с CF. (Этот вывод DNS является лишь наглядным примером и может не отражать точный ответ DNS для musana.net.)```
;; ANSWER SECTION:
musana.net.	300	IN	A	104.16.42.102
musana.net.	300	IN	A	104.16.43.102
musana.net.	300	IN	A	123.45.67.89 (Real IP exposed)
musana.net.	300	IN	A	123.45.76.98 (Real IP exposed)

Другой случай связан с TXT-записями. Иногда домен находится за CF, но реальный IP-адрес домена может использоваться в TXT-записях. CF-Hero проверяет все TXT-записи, затем извлекает все IP-адреса и, наконец, пытается подключиться к найденному IP-адресу через HTTP.

Допустим, у нас есть DNS TXT-записи. Как видно из TXT-записей, в них есть SPF-запись. Некоторые компании могут размещать собственный почтовый сервер, и TXT-записи могут содержать IP-адрес, который указывает на целевой домен.

Как вы можете видеть в следующем ответе DNS, SPF-запись содержит некоторые IP-адреса. Cf-Hero также проверяет их.``` ;; ANSWER SECTION: musana.net. 115 IN TXT "1password-site-verification=LROK6G5XFJG5NF76TE2FBTABUA" musana.net. 115 IN TXT "5fG-7tA-G4V" musana.net. 115 IN TXT "MS=ms16524910" musana.net. 115 IN TXT "OSSRH-74956" musana.net. 115 IN TXT "docker-verification=6910d334-a3fc-419c-89ac-57668af5bf0d" musana.net. 115 IN TXT "docusign=4c6d27bb-572e-4fd4-896c-81bfb0af0aa1" musana.net. 115 IN TXT "shopify-verification-code=1Ww5VsPpkIf32cJ5PdDHdguRk22K2R" musana.net. 115 IN TXT "shopify-verification-code=NM243t2faQbaJs8SRFMSEQAc4J9UQf" musana.net. 115 IN TXT "v=spf1 include:_spf.google.com include:cust-spf.exacttarget.com include:amazonses.com include:mail.zendesk.com include:servers.mcsv.net include:spf.mailjet.com ip4:216.74.162.13 ip4:216.74.162.14 ip4:153.95.95.86 ip4:18.197.36.5 -all"

root@kitploit:~
## OSINT

OSINT — ещё один способ найти реальный IP-адрес любого домена, который находится за CF. Существует множество специализированных поисковых систем для специальных целей. Shodan и Censys — две из них. Они предоставляют более детальную и техническую информацию. Эти поисковые системы непрерывно сканируют весь интернет, обнаруживают новые активы, а также отслеживают и логируют изменения активов. Когда домен, который не находится за CF, появляется, оба этих движка могут залогировать реальный IP-адрес домена. Через некоторое время, если домен окажется за Cloudflare, его IP можно будет найти с помощью этих поисковых систем.

CF-Hero также проверяет censys и shodan. (Обратите внимание, что при использовании этих сервисов у вас есть некоторые ограничения из-за квоты API.)


## (Суб)домены
Другой трюк — техника (суб)доменов. На самом деле это не обязательно должен быть субдомен, это может быть и домен. Ключевой момент здесь: домены должны принадлежать одной компании.

Допустим, у нас есть 2 домена. Один из них находится за CF, а другой — нет. В этом случае вы подключаетесь к домену, который не находится за CF, а затем меняете заголовок Host на домен, который находится за CF. Если вы получите ответ приложения, которое находится за CF, поздравляю, вы обошли CF. Теперь вы можете обращаться к веб-приложению напрямую по IP. (и, конечно, это также зависит от конфигурации)


Рассмотрим подробнее```

--> TCP --> blog.musana.net [123.45.67.89] ---> HTTPs -------------\
                                                                    \
--> TCP --> api.musana.net [123.67.45.98] ----> HTTPs -----------\   \ 
                                                                  \   \
--> TCP --> test.musana.net [123.89.44.88] ---> HTTPs -------------\   \
                                                                    \___\____________________
--> TCP --> tools.musana.net [123.44.55.66] --> HTTPs -------------> | GET / HTTP/2          |
                                                                     | Host: musana.net      | ====> Check & Compare Responses
--> TCP --> admin.musana.net [33.44.123.45] --> HTTPs -------------->|_______________________|
                                                                          /    /
--> TCP --> ... [...] ------------------------> HTTPs ------------------>/    /
                                                                        /    /
--> TCP --> ... [...] ------------------------> HTTPs ---------------->/    /
                                                                      /    /
--> TCP --> random-test.com [55.44.11.33] ----> HTTPs -------------->/    /
                                                                         /
--> TCP --> fsubsidiary.net [66.77.22.123] ---> HTTPs ----------------->/


Исторические DNS-записи

Сервисы исторических DNS-записей пытаются обнаружить все домены в Интернете и записывать изменения в DNS-записях этих доменов.Наиболее известным из этих сервисов является securitytrails. Если домен опубликован в интернете с его реальным IP-адресом, бот этого сервиса может записать его реальный IP-адрес; после этого, если домен размещён за cloudflare, реальные IP-адреса можно узнать с помощью этих сервисов. Таким образом, мы можем найти реальный IP-адрес домена, который в прошлом публиковался с реальным IP-адресом.

Для исторических DNS-записей используется сервис security trails. Вы можете выполнить это сканирование с помощью параметра -securitytrails после ввода API-ключа в файле cf-hero.yaml.

Инструкция по установке

cf-hero требует go1.18 для успешной установки. Выполните следующую команду для установки.``` go install -v github.com/musana/cf-hero/cmd/cf-hero@latest

root@kitploit:~
# Использование```


        ____         __
  _____/ __/        / /_  ___  _________
 / ___/ /__  ___   / __ \/ _ \/ ___/ __ \
/ /__/ ___/ (___) / / / /  __/ /  / /_/ /
\___/_/          /_/ /_/\___/_/   \____/

                                @musana
_____________________________________________

Unmask the origin IPs of Cloudflare-protected domains

Usage:
  cf-hero [flags]

Flags:
GENERAL OPTIONS:
   -w int         Worker count (default 16)
   -f string      Input file containing list of host/domain
   -v             Enable verbose output
   -title string  Specify HTML title to match (skip fetching from Cloudflare domain)

PRINT OPTIONS:
   -cf      Print domains behind Cloudflare
   -non-cf  Print domains not behind Cloudflare

SOURCES:
   -censys          Include Censys in scanning
   -securitytrails  Include SecurityTrails historical DNS records in scanning
   -shodan          Include Shodan historical DNS records in scanning
   -zoomeye         Include Zoomeye in scanning
   -dl string       Domain list for sub/domain scanning
   -td string       Target domain for sub/domain scanning

CONFIGURATION:
   -hm string   HTTP method. (default "GET")
   -ja3 string  JA3 String (default "772,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,18-10-16-23-45-35-5-11-13-65281-0-51-43-17513-27,29-23-24,0")
   -ua string   HTTP User-Agent (default "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/113.0")
   -px string   HTTP proxy URL



Запуск CF-Hero

Самая базовая команда запуска. По умолчанию она проверяет записи A и TXT.```

cat domains.txt | cf-hero

root@kitploit:~
или вы можете передать ему параметр "f".```
# cf-hero -f domains.txt

Используйте параметр zoomeye, чтобы включить ZoomEye в сканирование```

cat domain.txt | cf-hero -zoomeye

root@kitploit:~
Используйте параметр **censys**, чтобы включить Censys в сканирование.```
# cat domain.txt | cf-hero -censys

Используйте параметр shodan, чтобы включить Shodan в сканирование.```

cat domain.txt | cf-hero -shodan

root@kitploit:~
Используйте параметр **securitytrails**, чтобы включить SecurityTrails в сканирование.```
# cat domain.txt | cf-hero -securitytrails

Используйте параметры -td и -dl, чтобы попытаться найти IP-адрес целевого домена, используя список доменов или поддоменов, которые не находятся за Cloudflare. Указывая с помощью параметра -dl IP-адреса в блоках, где вы определили действующие IP-адреса, используемые облачной или локальной инфраструктурой цели, вы можете найти реальный IP-адрес целевого домена.```

cf-hero -td https://musana.net -dl sub_domainlist.txt

root@kitploit:~
чтобы получить домены за CF```
# cf-hero -f domains.txt -cf

чтобы получить домены, не находящиеся за CF```

cf-hero -f domains.txt -non-cf

root@kitploit:~
другие опции (кастомный ja3, прокси, воркер, user agent)```
# cf-hero -d https://musana.net -ua "Mozilla" -w 32 -ja3 "771,22..." -px "http://127.0.0.1:8080"

создайте файл cf-hero.yaml в каталоге $HOME/.config/ чтобы установить ключ API```

touch ~/.config/cf-hero.yaml

// content of YAML file should be like;

zoomeye:

  • "api_key_here" # ZoomEye API v2 key (sent in the API-KEY header) securitytrails:
  • "api_key_here" shodan:
  • "api_key_here" # standard Shodan API key (the /dns/domain endpoint requires a paid Membership) censys:
  • "censys_pat_here" # Censys Platform Personal Access Token (PAT)
  • "organization_id_here" # optional: Censys Organization ID, required for paid plans
root@kitploit:~
> **Примечание о Censys:** теперь CF-Hero использует [Censys Platform API](https://docs.censys.com/reference/get-started)
> (устаревший API `search.censys.io` будет отключён в 2026 году). Создайте персональный токен доступа (PAT)
> в консоли Censys Platform и укажите его первым значением `censys`. Если ваш аккаунт на платном
> тарифе, добавьте ID вашей организации (отображается на странице API Access) вторым значением — без него API
> возвращает права уровня Free-tier и может не выдать результатов (HTTP 403).

## Скриншоты

- Умная подсветка: жёлтым выделяются IP-адреса, не относящиеся к Cloudflare; они будут только проверяться.   
- Параметр title можно задать, если первый запрос блокируется Cloudflare (заголовок будет 'Just a moment...'). Если параметр title не задан, HTML-заголовок извлекается автоматически.
  
<p align="left">
  <img src="https://assets.kitploit.com/production/public/readmes/49199/e80b0d75e679cf55e02181d2af808f95830912a200c11a7c30427223bd7099cf.png">
</p>

<p align="left">
  <img src="https://assets.kitploit.com/production/public/readmes/49199/71d5a3a4afae8732b7a7f945260bf65cdd5b28599adc9677d601c9977a84bf0f.png">
</p>

## 🏆 Спонсорство  
Этот проект с гордостью поддерживается [ZoomEye](https://www.zoomeye.ai).  

<p height="100" align="left">
  <a href="https://www.zoomeye.ai"><img height="100" src="https://www.zoomeye.ai/static/logo-CVnk4X2t.svg"></a>
</p>

## В планах
- поиск по favicon
- интеграция с viewdns
Скачать инструмент