更新日志:
- 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隔离的坏处啊,内网的相关拓扑和服务轻易暴露给黑客了。
http://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目录下。
如果你有什么意见、改进,请反馈,谢谢
附运行时截图一张:
lijiejie好牛X啊,能写自动扫域名然后,在扫描出端口的脚本吗
端口和服务探测的脚本已有了,后面我修改下考虑发出来,让大家试试。
顶
早点发出来吧 一直用你这个2级域名爆破 不错 更深层次的都能搞出来 速度快 我还外加了一个PKAV团队的字典在你那个TXT文件里面 速度不错
菜鸟不会运行啊 怎么安装啊 :D:domadnspython-1.12.0>python setup.pyusage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] …] or: setup.py –help [cmd1 cmd2 …] or: setup.py –help-commands or: setup.py cmd –help
python setup.py install
感谢 李劼杰 牛 为小菜 的耐心解答,谢谢!
我操李姐姐好牛逼,你缺男朋友吗?
做个按ip排序以及区域传送漏洞检测+google + aizhan 接口
[…] 【原文:subDomainsBrute — 改进渗透测试时暴力枚举子域名的python脚本 作者:lijiejie】 […]
能不能时时保存,windows下怎么停止扫描呢
请问安装之后如何加载字典查询二级域名等 求解!
File “subDomainsBrute.py”, line 26 outfile = target + ‘.txt’ if not output else output; self.outfile = open(outfile, ‘w’) # won’t close manually请问会提示这个是什么原因,少了什么东西么?
猜测是windows下创建文件失败,检查文件名中是否有非法字符。 你粘贴的只是出错行,但具体出错原因没附上。
我是在linux上运行的,错误原因是invalid syntax我在Windows上运行时提示ImportError: No module named lib.consle_width,我下载了那个文件,但是不知道怎么关联起来…
李学长,我是工大的学弟,仰慕学长大名,想和学长换友链。如果可以,能不能去http://wangbaiyuan.cn/friendlink 回应一下啊
你的博客写得很棒,目前我只加了几个同学,暂时就不交换了。 但有时间仍然会关注你的博客。
好的!学长你的博客好棒,非常崇拜你!
为什么我扫百度只有190个,而你的有1521个…是字典问题?
安装的时候老是错误提示:Writing D:ruanjianpythonLibsite-packagesdnspython-1.12.0-py2.7.egg-inf
没有看到你贴error no,检查是不是权限不足? 需要管理员才能安装成功
great~ works smoothly
姐姐。。。DependenciesFirst you need install dnspython to do DNS query这。。英文是不是应该变成 need to install ?
谢谢啊,后续有机会我再更正一下。
running installrunning buildrunning build_pyerror: package directory ‘dns’ does not exist少文件?难道我少下了?
找到原因了。。。。一直是/setup.py install应该是sudo python setup.py install
为什么在windows下运行有很多错误提示呀我安装的是 3.3版本 dnspython 也安装了的
不好意思美女,搞定了 好像是win我安了版本太高了 在linux下搞定了默认的2.6.6版本ok了
哈哈哈你说谁是美女。。。
running installrunning buildrunning build_pyerror: package directory ‘dns’ does not exist什么情况?
您好 请问 您知道htpwdScan 里面的err= “” suc=“ ”后面的参数如何才能准确选择么 谢谢
姐姐还是不知道如何使用 能附上完整的命令吗
姐姐为什么我扫描就打不开其他网站了 需要360断网修复才能行
大神你好,我目前在写一个脚本,想调用你的这个subdomainbrute来进行子域名爆破,然后将结果通过awvs进行扫描。请问如果我想通过模块的方式调用,应该怎么做呢?
ctrl+c 无法停止啊!~
房主 来一个安装dnspython模块&爆破脚本使用教程可好?
看过李学长的脚本,真的很棒,扫subdomain很强,但我想请教一下,如何扫描txt文件里面的一些特定域名?谢谢了。
线程数是1的时候,会提示:
Exception in thread 0 (most likely raised during interpreter shutdown):
请问下这是为什么啊,谢谢了
main thread先于子线程退出了,谢谢反馈,稍后看看
新手完全不懂怎么在linux下安装运行整个挖掘脚本,好痛苦啊~求指教
[…] 【原文:subDomainsBrute — 改进渗透测试时暴力枚举子域名的python脚本 作者:lijiejie】 […]
一用就掉线 默认线程一样掉线。猫和路由器受不了
您好 这个报错怎么回事 受累看一眼
python subDomainsBrute.py -full qq.com
Traceback (most recent call last):
File “subDomainsBrute.py”, line 9, in
import gevent
ImportError: No module named gevent
pip install dnspython gevent
环境安装有py27和py36现在发现gevent装到了py36的lib下 如何重新安装到py27目录下 请指教 谢谢
Requirement already satisfied: dnspython in c:\python36\lib\site-packages
Requirement already satisfied: gevent in c:\python36\lib\site-packages
Requirement already satisfied: greenlet>=0.4.10 in c:\python36\lib\site-packages
(from gevent)
已解决 谢谢
还有一个问题 问的我都不好意思了。。。
E:\工具\subDomainsBrute-master>python subDomainsBrute.py -full 360.com
[+] Validate DNS servers …
[+] Check DNS Server 223.5.5.5 Found 4
[+] Found 4 available DNS Servers in total
[+] Load next level subs …
[+] Load sub names …
[ERROR] Names file not exists: ull
–full