更新日志:
- 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目录下。
如果你有什么意见、改进,请反馈,谢谢
附运行时截图一张:
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 接口
能不能时时保存,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下安装运行整个挖掘脚本,好痛苦啊~求指教
一用就掉线 默认线程一样掉线。猫和路由器受不了
您好 这个报错怎么回事 受累看一眼
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
mac os x系统,不知道咋回事 希望解答
➜ subDomainsBrute git:(master) ✗ ./subDomainsBrute.py baidu.com –full
Traceback (most recent call last):
File “./subDomainsBrute.py”, line 10, in
import gevent
ImportError: No module named gevent
G:\Github\subDomainsBrute>subDomainsBrute.py waitalone.cn
[+] Validate DNS servers
[+] Server 8.8.4.4 Found 0
[+] 0 available DNS Servers found in total
[ERROR] No DNS Servers available!
一直是这种[ERROR] No DNS Servers available! 不知道为什么。 windows和linux都是这样。
不知道你这扫描域名是否存活是怎么做的,速度确实很快,但是我用相同的字典,用aquatone(太慢)比较,subDomainsBrute只能扫出几个域名,aquatone能扫出八十多个。我的执行命令是python subDomainsBrute.py xxx.com,请问再网络或者配置方面有没有其他要注意的?
能否给我一个例子,我这边正好做一些优化。 工具有相当长时间没有更新了 🙂
你好,我发现一个问题,公司网址和家里网址两种情况去扫子域名,家里网址得到的子域名很少,公司的比较多,不知道是什么问题
感谢,抽空排查一下。 不太确定是不是timeout的设置太小引起的
root@xxxx:/opt/Web_tools/subDomainsBrute# python subDomainsBrute.py meicloud.com –full
SubDomainsBrute v1.2
https://github.com/lijiejie/subDomainsBrute
[+] Validate DNS servers
[+] Server 182.254.116.116 Found 4
[+] 4 DNS Servers found
[+] Run wildcard test
any-sub.meicloud.com 202.104.30.197
# 想问下在跑这个域名时程序中断的原因。
这个域名存在泛解析, 都是解析到 202.104.30.197 的
我想问下
File “subDomainsBrute.py”, line 206
print ‘any-sub.%s\t%s’ % (domain.ljust(30), ips)
^
SyntaxError: invalid syntax
这个怎么解决呢 大哥
增加一个排除泛解析ip的功能吧,比如某个大量泛解析到1.1.1.1,设置后所有解析指向1.1.1.1的子域名都不显示,像dnsmap这种都有类似功能
感谢, DNS泛解析在新版本是有检查的。 你可以找个测试下
wildcard_test(domain, level=1)
你好,我感觉这个函数并没有实际意义,不知道设计这个函数的作用是什么?
我也有相同的疑问?️
lijiejie,你好,能否告诉我运行的python版本是多少呢?我在win上运行一直报错,目前我试过2.7和3.8的版本
python2.7 应该是可以的。 有什么错误,可以反馈一下
想问一下最适合的版本是多少?我的版本3.8报错。
File “subDomainsBrute.py”, line 206
print ‘any-sub.%s\t%s’ % (domain.ljust(30), ips)
^
SyntaxError: invalid syntax
3.7.7也同样报错
print ‘any-sub.%s\t%s’ % (domain.ljust(30), ips)
SyntaxError: invalid syntax
Hi 目前需要使用 Python2.7
您好,您可以知道如何改造为批量扫描或者再python中引用subdomainsbrute么?
搞定了
解决了就好 🙂