Syborg
Syborg是一款DNS子域名递归枚举工具,它的扫描模式既非主动,也非完全被动的。该工具可以直接构造一个域名,然后通过指定的DNS服务器查询该域名。
Syborg配备了一个断路规避系统,这个系统的灵感来自于@Tomnomnom的ettu项目。
当你使用其他类似工具来执行子域名枚举任务时,大多数工具都会被动查询类似virustotal、crtsh或censys之类的公共记录。但Syborg所采用的枚举技术速度非常快,并且能够在最短的时间内帮助研究人员查找出尽可能多的域名。
但是,仍然有很多域名是这些公共记录中不会包含或者涉及到的。为了查找出这些域名,Syborg能够跟域名服务器进行交互,并根据对DNS服务器进行递归爆破查询,直到查询队列为空为止。
工作机制
从一开始,如果一个DNS域名的查询结果记录为0条,那么你可能会收到一条NXDOMAIN错误:
host four.tomnomnom.uk
Host four.tomnomnom.uk not found: 3(NXDOMAIN)
你可能也注意到了,有的时候你可能收到的是一个空响应:
host three.tomnomnom.uk
后面这种情况的不同之处就在于,返回的记录中可能会包含另一个域名名称,而这个域名会以你查询的域名作为后缀:
host one.two.three.tomnomnom.uk
one.two.three.tomnomnom.uk has address 46.101.59.42
相应信息中的这种差异可以帮助我们避免在递归DNS爆破中避免出现断路的情况,也就是那种查询到了尽头的情况:
echo -e "www\none\ntwo\nthree" | ettu tomnomnom.uk
one.two.three.tomnomnom.uk
Syborg可以将所有的这些功能以简单的并发和递归结合运行。
工具依赖
1、Python 3.x(建议)
2、Python 2.x(未测试)
工具安装
广大研究人员可以使用下列命令将项目代码克隆至本地:
git clone https://github.com/MilindPurswani/Syborg.git
接下来,运行下列命令完成依赖组件的解析:
pip3 install -r requirements.txt
工具使用
python3 syborg.py yahoo.com
运行之后,Syborg可能会达到一个较高的CPU使用率,如果你在你的VPS上运行Syborg的话,钱包可能就顶不住了。因此,为了限制资源消耗,我们可以使用一款名叫Cpulimit的工具:
cpulimit -l 50 -p $(pgrep python3)
该工具的下载命令如下:
sudo apt install cpulimit
如需获取更加完整的工具使用方式,请点击【这里】获取。
项目地址
Syborg:【GitHub传送门】
* 参考来源:MilindPurswani,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM