子域枚举工具,异步dns包,使用pcap 1秒扫描160万个子域
ksubdomain是一款基于无状态子域名爆破的工具,
支持在Windows/Linux/Mac上使用,它会很快的进行DNS爆破,在Mac和Windows上理论最大发包速度在30w/s,linux上为160w/s的速度。
总的来说,ksubdomain能爆破/验证域名,并且快和准确。
无状态连接是指无需关心TCPUDP协议状态,不占用系统协议 资源,忘记syn,ack,fin,timewait ,不进行会话组包。在实现上也有可能需要把必要的信息存放在数据包本身中。如13年曾以44分钟扫描完全部互联网zmap,之后出现的massscan,都使用了这种无状态技术,扫描速度比以往任何工具都有质的提升,后者更是提出了3分钟扫完互联网的极速。
zmap/masscan都是基于tcp协议来扫描端口的(虽然它们也有udp扫描模块),相比它们,基于无状态来进行DNS爆破更加容易,我们只需要发送一个udp包,等待DNS服务器的应即可。
目前大部分开源的域名爆破工具都是基于系统socket发包,不仅会占用系统网络,让系统网络阻塞且速度始终会有限制。
ksubdomain使用pcap发包和接收数据,会直接将数据包发送至网卡,不经过系统,使速度大大提升。
ksubdomain提供了一个-test参数,使用它可以测试本地最大发包数,使用ksubdomain -test
在Mac下的运行结果,每秒30w左右
可靠性
类似masscan,这么大的发包速度意味着丢包也会非常严重,ksubdomain有丢包重发机制(这样意味着速度会减小,但比普通的DNS爆破快很多),会保证每个包都收到DNS服务器的回复,漏报的可能性很小。
特性和Tips
无状态爆破,有失败重发机制,速度极快
中文帮助,-h会看到中文帮助
两种模式,枚举模式和验证模式,枚举模式内置10w字典
将网络参数简化为了-b参数,输入你的网络下载速度如-b 5m,将会自动限制网卡发包速度。
可以使用./ksubdomain test来测试本地最大发包数
获取网卡改为了全自动并可以根据配置文件读取。
会有一个时时的进度条,依次显示成功/发送/队列/接收/失败/耗时 信息。
不同规模的数据,调整 --retry --timeout参数即可获得最优效果
当--retry为-1,将会一直重试直到所有成功。
支持爆破ns记录
安装
下载二进制 https://github.com/boy-hack/ksubdomain/releases
安装libpcap环境
Windows 下载npcap驱动,winpcap驱动有人反馈无效
Linux 已经静态编译打包libpcap,无需其他操作
MacOS 自带libpcap,无需其他操作
执行
快速安装
需要go 1.17以上版本并安装libpcap环境,运行以下命令
go install -v github.com/boy-hack/ksubdomain/cmd/ksubdomain@latest
详情看github
常用命令
使用内置字典爆破
ksubdomain -d seebug.org
使用字典爆破域名
ksubdomain -d seebug.org -f subdomains.dict
字典里都是域名,可使用验证模式
ksubdomain -f dns.txt -verify
爆破三级域名
ksubdomain -d seebug.org -l 2
通过管道爆破
echo "seebug.org"|ksubdomain
通过管道验证域名
echo "paper.seebug.org"|ksubdomain -verify
仅使用网络API接口获取域名
ksubdomain -d seebug.org -api
完整模式,先使用网络API,在此基础使用内置字典进行爆破
ksubdomain -d seebug.org -full
视频演示:https://asciinema.org/a/356138
下载地址:https://github.com/boy-hack/ksubdomain
原ksubdomain :https://github.com/knownsec/ksubdomain |