更新日志:
- 2015-4-2 修复了在Linux系统下进度条输出混乱的bug,填充空格以清空原始输出
渗透测试时,前期的信息收集包括主机(服务)发现。 子域名暴力枚举是十分常用的主机查找手段。
我写了一个改进的小脚本,用于暴力枚举子域名,它的改进在于:
- 用小字典递归地发现三级域名,四级域名、五级域名等不容易被探测到的域名
- 字典较为全面,小字典就包括3万多条,大字典多达8万条
- 默认使用114DNS、百度DNS、阿里DNS这几个快速又可靠的公共DNS进行查询,可随时修改配置文件添加你认为可靠的DNS服务器
- 自动筛选泛解析的域名,当前规则是: 超过10个域名指向同一IP,则此后发现的其他指向该IP的域名将被丢弃
- 整体速度还过得去,在我的PC上,每秒稳定扫描100到200个域名(10个线程)
以下是我扫描baidu.com得到的结果,共发现1521个域名,能找到不少内网域名和IP,效果还是非常不错的。
它甚至可以发现这样的域名: data.test.noah.baidu.com [10.36.166.17] 未经改进的工具通常是探测不到这个域名的。
扫描其他几家公司,情况一样,可以发现不少内网域名、IP(段)、甚至是十分隐蔽的后台。
这就是不做private DNS 和 public DNS隔离的坏处啊,内网的相关拓扑和服务轻易暴露给黑客了。
https://www.lijiejie.com/wp-content/uploads/2015/04/baidu.com_.txt
youku.com tudou.com letv.com renren.com tencent.com
下载脚本: https://github.com/lijiejie/subDomainsBrute
请先安装依赖的dnspython,在install目录下。
如果你有什么意见、改进,请反馈,谢谢
附运行时截图一张: