• Stars
    star
    131
  • Rank 274,945 (Top 6 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created over 2 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

一个使用 Edns-Client-Subnet(ECS) 遍历智能CDN节点IP地址的工具

前言

前不久我遇到了一个关于获取CDN节点ip列表的问题:

如何快速获取一家CDN节点在全国的范围内的节点ip?

为了解决这个问题,我分析了智能DNS的工作原理。根据原理,我写出了一个使用 Edns-Client-Subnet(ECS) 伪造客户端ip用于遍历cdn节点ip的小工具。

之前为了获取多个地理位置的的CDN节点需要使用大量代理服务器去发起DNS查询。但是寻找合适的代理服务器非常困难。这个工具解决了这个问题。

该工具无需使用代理,只需要提供要模拟的客户端ip地址,就可以轻松获取对应ip地址地理位置的DNS解析结果。

cdnlookup

一个使用 Edns-Client-Subnet(ECS) 遍历智能DNS节点IP地址的工具

原理

智能DNS

CDN 为了让用户连接到地理位置更近的服务器,在DNS解析时使用了一种叫做智能DNS解析的操作。 CDN的权威DNS服务器会根据客户端IP地址来判断用户所在区域及运营商,来返回距离较近的节点。

早期,权威DNS服务器通常无法直接获取到客户端ip,只能获取到上级公共递归DNS服务器地址。

Edns Client Subnet(ECS)

ECS 是由Google提交的一份DNS扩展协议,主要作用是传递用户的IP地址给权威DNS服务器。

rfc7871 (2016 年 5 月)

遵循ECS标准的公共DNS,会将经遮罩脱敏后的客户端ip添加至DNS扩展区域( EDNS rfc6891)传递至权威DNS (IPV4 遮罩通常为/24 IPV6 为 /56)

这样权威DNS服务器就可以获取到模糊的客户端ip,这足以用于判断用户运营商和位置信息。

cdnlookup

这个工具会直接发送包含自定义IP的ECS数据的DNS请求,诱导NS服务器返回对应IP的解析结果。

经测试,国内大部分公共DNS都不支持自定义ECS。 谷歌DNS 8.8.8.8 可以正常使用

除了公共递归DNS,也可以直接将带有ECS数据的DNS请求发送到目标权威DNS服务器,获取解析结果。

使用

-d 域名  (默认 www.taobao.com)

-i 只输出IP地址列表

-ip 客户端ip

-r 请求重复轮数

-s DNS服务器地址 (默认 8.8.8.8:53)

-6 AAAA 查询 (IPV6)

自定义客户端ip

cdnlookup.exe -d www.taobao.com  -ip 1.2.3.4

219.147.75.XXX
219.147.75.XXX

使用内置实例ip列表 (内置列表可能会出现判断错误. 建议使用家宽ip段地址定位. )

cdnlookup.exe -d www.taobao.com

北京市 教育网
36.99.228.XXX
36.99.228.XXX
吉林 长春 移动
111.26.147.XXX
111.26.147.XXX
辽宁 沈阳 电信
59.47.225.XXX
59.47.225.XXX
......

IPV6 查询

cdnlookup.exe -d www.jd.com -6 -ip 240e:382:701:7700:600c:5c8:0000:0000

240e:c3:2800::26
240e:c3:2800::22
240e:95d:c02:200::3a

More Repositories

1

koko-moni

一个网络空间搜索引擎监控平台,可定时进行资产信息爬取,及时发现新增资产,本项目聚合了 Fofa、Hunter、Quake、Zoomeye 和 Threatbook 的数据源,并对获取到的数据进行去重与清洗
369
star
2

CVE-2022-39197-patch

CVE-2022-39197 漏洞补丁. CVE-2022-39197 Vulnerability Patch.
Java
266
star
3

PHPAuditGuideBook

《PHP代码审计入门指南》 这本指南包含了我在学习PHP代码审计过程中整理出的一些技巧和对漏洞的一些理解
243
star
4

mbtm

攻击流量模拟 用于迷惑蓝队 分散蓝队精力 混淆真实攻击流量
Python
189
star
5

CS_mock

模拟cobalt strike beacon上线包. Simulation cobalt strike beacon connection packet.
Python
80
star
6

yuque-crawl

语雀爬虫 可以保存整个语雀知识库为Markdown格式 (包含完整目录结构和索引)
Python
75
star
7

cve-2022-39197

cve-2022-39197 poc
Python
73
star
8

dnsc2

一个基于DNS隧道的简单C2
Go
51
star
9

Gepetto-ChatGPT

IDA plugin which queries OpenAI's ChatGPT model to speed up reverse-engineering
Python
46
star
10

GoNetCapture

不依赖驱动的跨平台抓包工具
Go
32
star
11

Palworld_Reverse_Note

Palworld SAVE Reverse Note / 幻兽帕鲁逆向笔记
32
star
12

NexusPHP_safe

NexusPHP 一个开源的PT程序 该分支修复了部分已知的安全漏洞 This Project NexusPHP is an open-sourced private tracker script written in PHP. This branch Fixed a number of known security vulnerabilities
PHP
26
star
13

cybertagger

高性能WEB指纹识别打标工具
Go
14
star
14

tcppc-go-fuzz

一个可以全端口捕获流量的简易蜜罐 tcppc: A simple honeypot to capture TCP/TLS/UDP payloads on ALL ports.
Go
11
star
15

imagepuller

可以从公开仓库直接拖取镜像的一个小工具 方便直接解包审计代码
Go
7
star
16

get_pcqq_sessionkey

获取PCQQ sessionkey Cheat Engine LUA 自动化脚本
Lua
6
star
17

ping2rce

Dockerfile
4
star
18

koko

网络空间测绘
3
star
19

rphpshell

一个使用反向HTTP连接的php webshell A php webshell using reverse HTTP connection
PHP
2
star
20

CVE

CVE
1
star