4000多万密码字典!
密码字典:黑客必备工具
在黑客的世界里,优秀的黑客都有自己独立的密码字典。今天我将分享一篇关于密码字典的文章。这个话题可能会触及到一些人的痛点,因为很多人没有自己的密码字典,每次需要使用时都只能找一些网上的字典,或者使用工具自带的字典,或者干脆放弃。那么我们先来看看都有哪些地方需要使用密码字典呢?
- DNS枚举子域名:我们之前已经讲过这个知识,通过枚举子域名可以得到更多的攻击路径。
- 应用层枚举:比如SMB枚举、RDP枚举、VNC枚举、SSH枚举等。
- Web站点登录爆破:尽管现在很多网站都加入了验证码,但仍有可能被图形识别技术攻破。
- Hash爆破:可以提前下载好彩虹表,是最快的哈希爆破方法。
- 特殊的需要密码的程序:比如勒索软件等。
其实,开始我用的词是“字典”,但后来想想,这个词用得太大了。现在的扫描器也都是基于字典+判断来得出结果的。比如我之前自己写的一个小工具,用来扫描网站备份(拿自己的小工具举例有点自恋),还有一些著名工具如御剑工具,它的执行程序目录中就有自己的字典。
在Burpsuite中,有一个独特的Intruder模块,我觉得它非常完美地运用了字典。关于这个模块,我们之后再详细讨论。而Kali自带了一些密码字典,如/usr/share/wordlist
、/usr/share/wfuzz/wordlist
、/usr/share/seclists
(已被去除)等。
可以看出,/usr/share/wordlist
目录下除了一个51M的压缩包rockyou.txt.gz外,其他都是一些链接,这些链接指向一些著名软件的字典。/usr/share/wfuzz/wordlist
目录则是专门为fuzzing而设计的,按照类别分配了文件夹,包括通用型、注入型、压力测试型、漏洞检测型、网络服务器型等。如果想查看XSS的字典,可以去/usr/share/seclists
目录(新版本的Kali已经去除了这个目录)。
还有一个强大的工具是Crunch,它可以按照规则生成字典,几乎可以自定义。在社会工程学中,如果使用通用型字典的话,成功率会很低,这时就需要基于个人信息生成专属的密码字典。Cupp是一个很好的工具,可以按照个人信息生成密码字典。Cupp(Common User Password Profiler)并没有集成在Kali中,需要我们自己下载。使用时,可以克隆该工具并按照提示填写相关信息。
另外,还有一个工具cewl,可以根据网站信息生成字典。例如,使用cewl 1.1.1.1 -m 3 -d 3 -e -c -v -w a.txt
命令,其中-m
表示最小单词长度,-d
表示爬网深度(多少层URL),-e
表示收集包含电子邮件地址的信息,-c
表示按照每个单词出现的次数进行整理。此外,cewl还支持基本和摘要身份认证,支持代理,以及用户密码变型。
有时候,人们会对一些密码进行单个字母的变化,变化规则如下,这时就需要我们手动去尝试或者制作字典:
- 末尾增加数字串
- 字母大小写变化
- 字母与符号互相转换
- 字母与数字互相转换
接下来,我将重点介绍一套我整理出的优秀密码字典,我认为它非常出色。这个字典是我从之前各大公司泄漏的数据库中总结出来的,包括新浪微博、天涯、网易邮箱、7k7k等十几个公司的总共60G数据库。我花费了整整一天的时间,提取并去重了这些数据库中的密码部分。可以说,这份字典中的每一个密码都是真实存在的(当然,其中可能包括你的密码)。
这个字典一共包含了40409179条不重复的密码,文件大小为423M(基于Mac平台,其他平台可能略有差异)。如果仅仅通过比较字典大小来评判一个字典的好坏,可能会有所偏颇。现在很多字典中还包含了类似"a"、"ab"等这类字符,但如今的网站管理员几乎不会使用这种低端字典了,大多数应用程序也不允许使用这种密码。如果你碰巧遇到目标使用这种一两个字符作为密码的情况,那么建议你换一个目标,因为这样的目标没有意义。
这个字典只包含密码,没有用户名。字典有两份,一份是分散为14个文件的字典,因为很多工具可能无法直接读取巨大的字典;另一份就是前面提到的那个,