# 绕过CDN，获得真实IP

###### 1-判断是否有CDN？

![image-20250107135523229](C:\Users\Yoga 370\AppData\Roaming\Typora\typora-user-images\image-20250107135523229.png)

```
--用脚本判断：python domain_ip_finder.py -d lakaffagroup.com
--用谷歌shodan插件判断
```

![image-20250107131917988](C:\Users\Yoga 370\AppData\Roaming\Typora\typora-user-images\image-20250107131917988.png)

###### 2-如果存在CDN ,先寻找子域名

```
--通过谷歌搜索site:www.example.com 来搜索相关域名的子域名
--通过fofa，输入www.example.com来搜索相关的子域名
原因：很多时候，子域名不会用cdn，能获得的子域名越多，能找到真实IP的几乎就越大
```

###### 3-https://x.threatbook.cn微步在线先搜索一波

![image-20250107132215978](C:\Users\Yoga 370\AppData\Roaming\Typora\typora-user-images\image-20250107132215978.png)

###### 4-https://search.censys.io/搜索一波

![image-20250107132607205](C:\Users\Yoga 370\AppData\Roaming\Typora\typora-user-images\image-20250107132607205.png)

###### 5-viewDNS.info搜索一波

![image-20250107133016402](C:\Users\Yoga 370\AppData\Roaming\Typora\typora-user-images\image-20250107133016402.png)

###### 6-securitytrials.com搜索一波

![image-20250107133407355](C:\Users\Yoga 370\AppData\Roaming\Typora\typora-user-images\image-20250107133407355.png)

###### 7-https://sitereport.netcraft.com/?url搜索一波

![image-20250107133733625](C:\Users\Yoga 370\AppData\Roaming\Typora\typora-user-images\image-20250107133733625.png)

###### 8-SSl证书来查询

```
原理：
    假如你在 xyz123boot.com 上托管了一个服务，原始服务器 IP 是 136.23.63.44。 而 CloudFlare 则会为你提供 DDoS 保护，Web 应用程序防火墙和其他一些安全服务，以保护你的服务免受攻击。为此，你的 Web 服务器就必须支持 SSL 并具有证书，此时 CloudFlare 与你的服务器之间的通信，就像你和 CloudFlare 之间的通信一样，会被加密（即没有灵活的 SSL 存在）。这看起来很安全，但问题是，当你在端口 443（https://136.23.63.44:443）上直接连接到IP时，SSL证书就会被暴露。
    此时，如果攻击者扫描 0.0.0.0/0，即整个互联网，他们就可以在端口 443 上获取在 xyz123boot.com 上的有效证书，进而获取提供给你的 Web 服务器 IP。
    目前 https://search.censys.io/工具就能实现对整个互联网的扫描，Censys 是一款用以搜索联网设备信息的新型搜索引擎，安全专家可以使用它来评估他们实现方案的安全性，而黑客则可以使用它作为前期侦查攻击目标、收集目标信息的强大利器。Censys 搜索引擎能够扫描整个互联网，Censys 每天都会扫描 IPv4 地址空间，以搜索所有联网设备并收集相关的信息，并返回一份有关资源（如设备、网站和证书）配置和部署信息的总体报告。
    而攻击者唯一需要做的就是把上面用文字描述的搜索词翻译成实际的搜索查询参数。
    xyz123boot.com 证书的搜索查询参数为：parsed.names：xyz123boot.com
    只显示有效证书的查询参数为：tags.raw：trusted
    攻击者可以在 Censys 上实现多个参数的组合，这可以通过使用简单的布尔逻辑来完成。
    组合后的搜索参数为：parsed.names: xyz123boot.com and tags.raw: trusted
```

###### 9-脚本ssl_cert_finder.py

```
脚本会：
    获取目标域名的SSL证书
    提取证书的详细信息（包括指纹、有效期等）
    使用证书的SHA256指纹在Censys上搜索相关IP
    显示找到的所有相关IP地址及其开放的端口
```

![image-20250107140228972](C:\Users\Yoga 370\AppData\Roaming\Typora\typora-user-images\image-20250107140228972.png)

```
脚本现在可以成功获取SSL证书的详细信息了。从结果我们可以看到：

证书基本信息：
版本：2
序列号：A6DCDA75B9118811111C1412C3743B72
签名算法：ecdsa-with-SHA256
有效期：
开始时间：2024-12-18
结束时间：2025-03-18
证书主体信息：
CN (Common Name): lakaffagroup.com
证书颁发者信息：
国家 (C): US
组织 (O): Google Trust Services
CN: WE1
证书指纹：
SHA256: 1be303696960f2e6497877ea889ef22f1d443b2d38042f89288bd6670325538c
主题备用名称 (SAN)：
lakaffagroup.com
*.lakaffagroup.com

你可以使用这个证书指纹在 Censys 网站上手动搜索相关IP：
访问 Censys Search
在搜索框中输入：parsed.fingerprint_sha256: 1be303696960f2e6497877ea889ef22f1d443b2d38042f89288bd6670325538c
```

###### 10-网站邮件订阅查找

```
RSS 邮件订阅，很多网站都自带 sendmail，会发邮件给我们，此时查看邮件源码里面就会包含服务器的真实 IP 了。
```

###### 11-用zmap扫描全网

```
用 Zmap 扫全网
需要找 xiaix.me 网站的真实 IP，我们首先从 apnic 获取 IP 段，然后使用 Zmap 的 banner-grab 扫描出来 80 端口开放的主机进行 banner 抓取，最后在 http-req 中的 Host 写 xiaix.me。
```

```
用zmap_http_scanner.py脚本完成
```

###### 12-F5 LTM解码

```
F5 LTM 解码法
当服务器使用 F5 LTM 做负载均衡时，通过对 set-cookie 关键字的解码真实 ip 也可被获取，例如：Set-Cookie: BIGipServerpool_8.29_8030=487098378.24095.0000，先把第一小节的十进制数即 487098378 取出来，然后将其转为十六进制数 1d08880a，接着从后至前，以此取四位数出来，也就是 0a.88.08.1d，最后依次把他们转为十进制数 10.136.8.29，也就是最后的真实 ip。
```

```
使用方法：

	分析网站并自动提取Cookie：
		python f5_cookie_decoder.py example.com
	直接解码Cookie值：
		python f5_cookie_decoder.py "BIGipServerpool_name=487098378.24095.0000" --cookie

脚本的主要功能：
Cookie解码：
    提取数字部分（487098378）
    转换为16进制（1d08880a）
    从后向前分组（0a.88.08.1d）
    转换为IP（10.136.8.29）
URL分析：
    自动获取网站响应头
    提取所有F5 LTM相关的Cookie
    解码并显示结果
错误处理：
    SSL证书验证忽略
    超时处理
    友好的错误提示
美化输出：
    使用表格显示结果
    彩色输出
    清晰的结果展示
```

