← 返回首页

CF-Hero:获取受Cloudflare保护的网站的真实IP地址

作者:whoami
发布时间:2025-05-18 17:09:58
浏览:3553    评论:0

CF-Hero:获取受Cloudflare保护的网站的真实IP地址

2025-05-18 17:09:58 0 3553

CF-Hero

Github:https://github.com/musana/CF-Hero

CF-Hero是什么?

CF-Hero 是一款综合侦察工具,用于发现受 Cloudflare 保护的网络应用程序的真实 IP 地址。它通过多种方法进行多源情报搜集。

DNS 侦查

Intelligence Sources

该工具分析这些来源的数据,以识别 Cloudflare 保护目标的潜在来源 IP 地址。它通过响应分析来验证结果,以尽量减少误报。

功能

功能

背景

当前 DNS 记录

让我们来看看一些 DNS 设置错误的用例。

如您所见,普通 DNS 查询会返回域名的 IP 地址。例如,musana.net 位于 Cloudflare (CF) 后面,但有时该域名有多个 A 记录,其中一些可能与 CF 关联的 IP 地址不对应。(此 DNS 输出仅为示例,可能不代表 musana.net 的确切 DNS 答案)。

;; 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 后面,但 TXT 记录中可能使用了域名的真实 IP。CF-Hero 会检查所有 TXT 记录,然后提取所有 IP 地址,最后尝试连接通过 HTTP 找到的 IP。

假设我们有类似的 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"

OSINT

OSINT 是另一种查找任何 CF 域名真实 IP 的技术。有许多专门的搜索引擎用于特殊目的。Shodan 和 Censys 就是其中的两个。它们提供更详细的技术信息。 这些搜索引擎持续扫描整个互联网,发现新的资产或监控和记录资产的变化。当一个不在 CF 后面的域名出现时,这些引擎的机器人可以记录该域名的真实 IP。过一段时间后,如果域名被 Cloudflare 托管,就可以通过这些搜索引擎找到其 IP。

CF-Hero 还会检查 censys 和 shodan。(请注意,使用这些服务时,由于 API 配额的限制,会有一些限制)。

(子)域名

另一种技巧是(子)域名技术。事实上,它不一定是子域,也可以是域。关键在于:域名应属于同一家公司。

比方说,我们有 2 个域名。其中一个在 CF 后面,而另一个不在 CF 后面。在这种情况下,您可以连接到不在 CF 后面的域,然后将主机标头更改为在 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 记录变化。如果一个域名以其真实 IP 地址发布在互联网上,这些服务的机器人就可以记录其真实 IP 地址,之后如果域名被 cloudflare 收录,真实 IP 地址就可以通过这些服务找到。因此,我们可以找到过去曾广播过真实 IP 地址的域名的真实 IP 地址。

它使用安全跟踪服务查找历史 DNS 记录。在 cf-hero.yaml 文件中输入 API 密钥后,可以使用 -securitytrails 参数执行扫描。

安装说明

cf-hero 需要 go1.18 才能成功安装。运行以下命令进行安装。

go install -v github.com/musana/cf-hero/cmd/cf-hero@latest

用法


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

                                @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

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

SOURCES:
   -censys          Include Censys in scanning
   -securitytrails  Include SecurityTrails historical DNS records in scanning
   -shodan          Include Shodan historical DNS records 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

或者你也可以给它传递 “f ”参数。

# cf-hero -f domains.txt

使用 censys 参数将 Shodan 包括在扫描中

# cat domain.txt | cf-hero -censys

使用 shodan 参数将 Shodan 包含到扫描中

# cat domain.txt | cf-hero -shodan

使用 securitytrails 参数将 Shodan 包含到扫描中

# cat domain.txt | cf-hero -securitytrails

使用 -td 和 -dl 参数,尝试利用不在 Cloudflare 后面的域或子域列表查找目标域的 IP 地址。在使用 -dl 参数确定了目标云或内部基础架构使用的实时 IP 地址的区块中指定 IP 地址,即可找到目标域的真实 IP 地址

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

获取 CF 后面的域名

# cf-hero -f domains.txt -cf

获取不在 CF 后面的域名

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

其他选项(自定义 ja3、代理、工作者、用户代理)

# cf-hero -d https://musana.net -ua "Mozilla" -w 32 -ja3 "771,22..." -px "http://127.0.0.1:8080"

在 $HOME/.config/ 目录下创建 cf-hero.yaml 文件,设置 censys API 密钥

# touch ~/.config/cf-hero.yaml

// content of YAML file should be like;

securitytrails:
  - "api_key_here"
shodan:
  - "api_key_here"
censys:
  - "api_key_here"
类别 开源工具

关于作者

whoami119篇文章187篇回复

勤快的搬运工。