0%

译:网站追踪-Cloudflare与Cloudflair的对抗

原文地址:https://nixintel.info/osint/website-attribution-cloudflare-v-cloudflair/

文章原名:Website Attribution – Cloudflare v Cloudflair

作者: Nixintel

长时间以来,我一直想写一个关于WHOIS的消亡与调查员在确定隐藏在层层混淆与迷雾后非法网站的运营与所有者时面临困难的文章。没有所谓的完美解决方案,但有很多方法可以帮助网站所有权的鉴别,尤其是在与其他信息链结合后。

任何试图调查可疑网站的人无疑都会在某个时候遇到 Cloudflare 。(我必须强调一下,Cloudflare是一家合法且有用的服务商,它的海量网络资源为网站提供了对DDOS以及其他安全威胁的防护。)用DNSLyticsCentralOps等服务查询托管于Cloudflare的任何域名,你得到的只是Cloudflare服务器的IP地址和无关信息。你无法看到谁是域名的真正主人,或它的真实IP地址是什么。

使用Cloudflair

Christophe Tafani-Dereeper制作的Cloudflair是一款强大的工具,可用于探索隐藏在Cloudflare后的恶意域。其工作原理基于域的SSL证书,每个使用HTTPS的域都有一个唯一的SSL安全证书,通过在互联网上查找证书来确定目标真实IP地址。它还能识别使用同一证书的其他IP地址,无论这些IP地址是否隐藏在Cloudflare后。

假如我运营了一个犯罪网站**www.humantrafficking.org*并使用Cloudflare进行保护,任何进行DNS逆向或WHOIS查询的人只能看到Cloudflare的信息,关于我的域名的真实信息被隐藏了起来。尽管我的真实IP地址是 45.64.244.13 并且我的真实网络主机是 Evildude Web Enterprises,但呈现给调查员的 IP 地址将类似于104.28.13.49(一个真实的 Cloudflare IP)。

尽管如此,类似Censys的网络爬虫将记录其遇到的每一个SLL证书的详细信息和相关的IP地址。这意味着,尽管人们浏览我的邪恶网站或者进行WHOIS/DNS查找只会找到Cloudflare IP 104.28.13.49,Censys也将收录真实的IP地址45.64.244.13,并记录同一域的相同SSL证书链接到两个IP的事实。换句话说,只要网站的真实 IP 地址对 Internet 可见,Censys 就能够找到并记录它,尽管有 Cloudflare。Cloudflair只需获取你感兴趣的域名的详细信息,然后使用Censys进行检查,并显示与特定域名相关的所有IP地址,无论它们是否在Cloudflare后面。在作者的博客上有关于这一切如何运作的更详细的解释。

安装并运行Cloudflair

Cloudflair在Linux环境下运行最佳,因为其预装了Python。可以通过命令行安装或直接从Docker镜像运行。但我发现,在使用命令行运行时,存在一些Python库冲突和问题,但使用Docker镜像容易的多,因此我建议使用Docker镜像。虽然我对于Docker的使用并不熟练,但我发现Cloudflair运行的很流畅,使用上也很直接。我的标准OSINT环境在Linux Mint 19.1上,并且运行 Cloudflair非常顺利。

Step 1

Censys.io创建一个免费账户,你需要在账户页面获取API KEY与API SERCET以运行程序。

Step 2

克隆Cloudflair Github 存储库

1
$ git clone https://github.com/christophetd/cloudflair.git

Step 3

安装Docker(如果没有安装的话)

1
$ sudo apt install docker.io

Step 4

如果这是第一次安装Docker,当尝试以非root用户身份运行命令时可能会遇到问题。确保所使用的帐户属于docker组。进行这些更改后,需要注销并重新登录。

1
$ sudo useradd -aG docker myusername

(在Mint/Ubuntu系统中你需要切换到root用户执行命令。使用sudo -i命令切换,并在执行后切换回原用户)

Step 5

运行以下命令,将目标域名添加到命令末尾。确保添加 Censys AAPI KEY与API SERCET以供其工作:

1
$ docker run --rm -e CENSYS_API_ID=xxxxxxxxxxx -e CENSYS_API_SECRET=xxxxxxxxxxx christophetd/cloudflair evilwebsite.org

第一次运行此命令时,需要下载 Docker 映像。输出将如下所示(从作者的 GitHub 页面复制)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
[*] The target appears to be behind CloudFlare.
[*] Looking for certificates matching "myvulnerable.site" using Censys
[*] 75 certificates matching "myvulnerable.site" found.
[*] Looking for IPv4 hosts presenting these certificates...
[*] 10 IPv4 hosts presenting a certificate issued to "myvulnerable.site" were found.
- 51.194.77.1
- 223.172.21.75
- 18.136.111.24
- 127.200.220.231
- 177.67.208.72
- 137.67.239.174
- 182.102.141.194
- 8.154.231.164
- 37.184.84.44
- 78.25.205.83

[*] Retrieving target homepage at https://myvulnerable.site

[*] Testing candidate origin servers
- 51.194.77.1
- 223.172.21.75
- 18.136.111.24
responded with an unexpected HTTP status code 404
- 127.200.220.231
timed out after 3 seconds
- 177.67.208.72
- 137.67.239.174
- 182.102.141.194
- 8.154.231.164
- 37.184.84.44
- 78.25.205.83

[*] Found 2 likely origin servers of myvulnerable.site!
- 177.67.208.72 (HTML content identical to myvulnerable.site)
- 182.102.141.194 (HTML content identical to myvulnerable.site)

现在你已经可以绕过Cloudflare,通过获取到的真实IP来进行你的探索!

Step 6

为避免每次都输入冗长的 Docker 命令,请在 bashrc 文件中创建以下别名:

1
$ nano ~/.bashrc

并在 .bashrc 中添加以下内容:

1
alias cloudflair='docker run --rm -e CENSYS_API_ID=xxxxxxxxxxx -e CENSYS_API_SECRET=xxxxxxxxxxx christophetd/cloudflair'

保存并退出nano,退出并重启终端应用更改。

现在你只需要输入:

1
$cloudflair mytargetwebsite.com

*除非另有说明,否则本文中的所有 IP 地址都是虚构的。