欢迎回来!
如果您还没有读过前面的部分,在这里看到:
在 Mr. Robot 中,Elliot 似乎能够破解每个人的密码。对于任何试图破解密码的人来说,您都知道这并不容易。在没有GPU集群的情况下,对付长而复杂的密码是很费时费力的。
虽然字典攻击很容易,几分钟就能完成,但拥有字典词型密码的账户越来越少。现在,更多的用户已经明白要使用数字和特殊字符来令自己的密码变得更复杂,使之更难以被破解。
那么 Elliot 可以如何快速破解目标的密码?
最常用的密码
在尝试任何密码破解或者说任何黑客行为之前,先制定一个策略是必需的。
任何密码破解策略的第一步是先尝试最常见的密码。人类往往很少花心思和精力去创造独特的密码,并且,人类分享了地球上数十亿人共同的基因和思维模式,因此,相同的密码有可能年复一年地在多个平台上重复出现。从暗网中销售的数据堆中发现的数十亿个密码就能证明这点。
当然,那些常用的密码列表只涵盖30%的用户,不会对所有的账户都有效,下一步就是创建一个专门针对目标个人的自定义词表。至少有三种方法可以做到这一点:
使用Crunch字符模式创建一个自定义密码列表。
根据目标人的网页或推特feed创建一个自定义密码列表。
根据从社交媒体上收获的数据,创建一个自定义词表。
当人们输入密码时,他们通常会加入一些容易记住的单词、符号和数字,比如他们的生日、出生年份、狗的名字、孩子的生日、伴侣的生日……你懂的。为了证明这种倾向,去看看您的邮箱,看看很多人的邮箱地址最后的两个数字是他们的年龄、出生年份,或生日?您会惊讶于它的频率。您认为他们在挑选密码时会做得更好吗?
那么,关键是要创建一个针对目标人的密码列表,捕捉这种经常重复的行为。作为一个黑客,了解人类的心理和行为是您最好的工具之一。
来看看三个工具,它们将帮助您开发独特的和有针对性的词表,然后您可以在任何一个密码黑客工具中使用它。
在第一季第1集,Elliot 轻松破解了他的治疗师的密码。让我们以这个为例。
1、crunch
crunch 是一个能让您根据字符模式来制作密码列表的工具。如果您知道目标人的名字、其伴侣的名字、宠物的名字,就可以使用这些建立一个包括这些名字的密码列表,并添加额外的字符,这是用户经常做的事。
在 Elliot 的案例中,他从目标人 Krista 的 Facebook 页面上知道她是 Bob Dylan 的粉丝。他可以构建一个密码列表,其中包括以 “dylan “开头和结尾的密码并附加数字或字符。来看看 Elliot 会如何做这件事。
crunch 是内置在 Kali 中的,所以不需要下载或安装任何东西。只要在命令提示符下输入 crunch
kali > crunch
如您所见,crunch 不会在这里给出太多信息,而是将您引至其手册页。先去那里看看。
kali > man crunch
crunch 的手册页面非常多。向下滚动可以看到在 crunch 中使用通配符的选项。
滚动到底部可以找到许多示例。
有效使用 crunch 创建密码列表的关键是:(1) 定义最小和最大的密码大小,然后 (2) 确定模式。
从通配符列表中可以看到以下选项:
@ 将插入小写字符
,将插入大写字母
% 将插入数字
^ 将插入符号
Elliot 知道他的攻击目标喜欢鲍勃-迪伦,可能会在她的密码中使用这个偶像的名字。知道这一点后,Elliot 可能会用 “dylan” 这个词创建一个密码列表,然后在后面跟上四个数字(也许是她的生日?),他可以这样创建这个9个字符的密码列表:
kali > crunch 9 9 -t dylan%%%% -o kristacrunchlist.txt
从输出中可以看到,crunch 创建了一个列表,其中包含了 “dylan” 后面4个数字的所有可能性,并创建了一个10万字节的密码列表(10000个密码)。
当使用 crunch 时,您必须小心,不要要求它做太多。您需要更为具体的要求。例如,如果 Elliot 要求 crunch 生成一个以4个小写字母(@)开头的13个字符,后面跟着4个数字(%)的密码列表,crunch 会生成一个59GB的列表!这有点笨重,而且可能不是一个很有用的列表。
2、CeWL
CeWL是 Robin Wood 的自定义词表。这个简单而优雅的工具是一个Ruby脚本,它可以从目标人的网站或行业网站上抓取单词,收获符合一定标准的单词,使其成为潜在密码的一部分。要考虑包括单词长度。很少有人会围绕一个4个字母的单词建立一个安全的密码,对吧?要有策略。
这里的意思是,人们经常围绕着自己行业内常用的词语来构建密码。例如,网络安全行业内部的人可能会使用 “蜜罐”、”漏洞”、“利用” 等词语。你懂的。
人们认为这些专门的词汇不太可能出现在黑客的词表中。他们很可能是对的,但黑客可以弥补这个缺陷。只需从目标人的网站(或推特账号)上搜刮出这些专业词汇即可。
为了演示 Elliot 如何使用它,我们将以 Krista 和她的网站 www.kristas-office.com 为目标(不是一个真实的网站)。想法是从该网站上搜刮出可能是该行业特有的词汇。
首先看一下 cewl 帮助页面,以获取有关如何使用此工具的线索。
kali > cewl -h
如您所见,cewl 有很多选项,但是我们可以将该工具的句法简化为:
cewl [options] URL -o <output file>
使用 CeWL 的两个关键选项是深度和最小字长。深度选项告诉 CeWL 希望涉及目标网站多少子目录,最小值则指示该工具忽略小于一个最小长度的字。
为了让 Elliot 从 www.kristas-office.com 抓取这些潜在的密码,他可以输入;
kali > cewl -d 4 m 8 https://kristas-office.com -w psychwords
过了好一阵子,CeWL 完成了它的任务,建立了一个密码列表。要查看这个列表,我们可以简单的使用 cat、vim、more 或 less、以及 Leafpad 等文本处理程序,打开密码列表。
kali > cat psychwords
此外,我们还可以利用这个列表,在 crunch 中使用它来创建一些潜在的密码,使用字符模式。
3、 cupp
最后一个,也是最有效的密码词表创建工具是 cupp。cupp 将您通过开源技术收集到的个人信息,并根据常见的munging做法创建一个自定义词表。
与前两个工具不同的是,cupp 并没有安装在 Kali 上,也不在 Kali 库中。因此需要从 github 上获取,在 Mebus 的库那里。
kali > git clone https://github.com/ebus/cupp
下一步是导航到新的 cupp 目录。
kali > cd cupp
现在,我们通过输入以下内容启动 cupp 交互式控制台
kali > cupp.py -i
如上图所示,cupp进入交互模式,并开始问你关于目标的问题。Elliot 知道他的治疗师 Krista Gordon 的名字,并将其输入,然后 cupp 询问目标的生日。
Elliot 可以通过许多开源情报基本调查获得这些数据,如 Facebook、Twitter 和其他社交网站,也就是社交媒体情报,包括各种在线人员搜索。
Elliot 也知道目标人的 “男友” 叫 Michael,Michael 使用的昵称是 “Mike”。Elliot 还可以从开源情报技术中了解到目标人非常喜欢鲍勃-迪伦。当 cupp 询问我们是否要添加任何关键词时,可以添加这些信息。在这里输入 “Dylan”。
在问了几个问题之后,cupp 开始生成这个自定义词表。它的速度相当快,生成的3980个单词很容易管理。可以通过显示文件 krista.txt 来查看它们。
然后,它会继续根据目标人的姓名、昵称和出生日期来生成可能的密码。
Elliot 现在为他的治疗师 Krista 生成了一个定制的密码列表,可以在任何密码破解工具中使用。
最后一步
最后,Elliot 可以组合这三个列表,并使用 cat 和 (>) 创建潜在密码的组合列表。
kali > cat kristacrunchlist psychwords krista > kristapasswordlist
Elliot 现在将所有这些潜在的密码组合到一个密码列表中,可以在诸如 hashcat、THC-Hydra 或任何其他密码破解工具中使用它。⚪️
Mr. Robot Hacks, Part 7: How Elliot Hacks Everyone’s Password