在我们针对某个目标进行信息收集时,获取二级域名可能是我们最重要的环节,公司越大,使用的多级域名越多,收集到域名之后,想要做端口扫描话,直接针对域名做扫描吗?
当然不是,因为同一个 IP 可能被配置了多个域名,直接针对域名做端口扫描也不是不可以,就是会做很多重复的工作,所以要先将这些域名解析成 IP 地址,然后进行去重,这样能够大大节约端口扫描的时间。
当我们有百万个域名需要解析 IP 地址,该怎么办?当然是用工具啦,有代码编写能力的,可以自实现批量解析 IP 地址的工作,如果没有编程基础,可以使用开源免费的工具,今天就来给大家分享一款解析 DNS 记录的工具 dnsx:
https://github.com/projectdiscovery/dnsx
该项目由 go 语言编写,首先你需要安装好 go 的编译环境,然后安装很简单:
go get -v github.com/projectdiscovery/dnsx/cmd/dnsx
安装完成之后,会在 go 的目录下生成一个可以运行的 exe 文件,你可以将该文件放在任意 windows 服务器上使用,使用如下命令查看帮助信息:
dnsx -h
我们可以将域名列表保存在一个文件中,比如 dns.txt,然后使用命令:
dnsx -l dns.txt -resp -a
上面的命令是查询域名的 A 记录,你也可以查询多种记录,比如 A, AAAA, CNAME, PTR, NS, MX, TXT, SOA 记录,很简单,很方便吧?
如果是自己实现域名解析的话,用 python 脚本也比较简单,核心的代码如下:
代码语言:javascript复制s = socket.gethostbyname(domain)
结合 python 的多线程技术,就可以实现快速针对目标域名列表进行域名解析了。
除了这两种方式,还可以直接使用 Linux 的命令:
cat domains.txt | xargs -n1 host | grep "has address" | cut -d" " -f4 | sort -u > ips.txt
会写脚本的情况下,这个目标很容易实现,不会写也没关系,会用开源免费的工具一样可以达到效果。
最后,作为一名专业的渗透测试工作者,编写脚本的能力是必不可少的,既要会用优秀的安全工具,还要知道工具的实现原理,并且还能自己编写相关功能,可以在未来实际的工作中,提高工作效率。
最近几天信安之路在进行公益SRC漏洞挖掘实战的训练计划,引导学员进行实战演练,零基础会用工具的情况下就可以挖到漏洞,这是本次训练计划的目标,通过此次训练之后,可以独立完成针对目标的通用测试,首先成为一名脚本小子,详情请看《公益 SRC 漏洞挖掘实战 | 零基础实战课程》