[TOC]
0x00 Hackintosh forgot password
曾经以为哪个傻B会把自己密码忘记,然后现在不知道自己的密码傻X诞生了——虽然我不是忘记,我是根本不知道密码是啥
事情是这样的:同事要用我电脑,不想直接告诉他密码(我的所有电脑的密码都是这个),然后远程把密码改成 HelloWorld
告诉了他。反馈密码不对,自己试了下果然不对,试了原密码也是不对,瞬间懵逼。再试了N个(N>100)密码之后,成功试对2次之后仍然不知道密码是啥时(试对了也不知道刚用的是啥密码),绝望了。
冷静一下:设置新密码的时候我输入的并不是 HelloWorld
,而是中间某些字符变掉的一个字符串。
先说下环境:Hackintosh
, Clover
, macOS 10.14
, SSH
0x01 重置密码
启动电脑进入 Clover
界面,按 F3
显示所有启动项,找到 Boot Recovery from Recovery
按回车。如果没有意外会启动到一个安装系统时也会出现的选择语言的界面:
选择你熟悉的语言,然后下一步,进入那个熟悉的安装界面:
此时选择 Utilities
> Terminal
,打开终端(此时你也可以输入方法二的命令):
输入resetpassword
,一件可怕的事情发生了 —— 你可以直接在这个地方输入新的密码:
0x02 初始化电脑
启动电脑进入 Clover
界面,选择 Options
,在 Boot Args:
后添加 -s
,启动。这个时候会进入终端,而且是可怕的root账户,输入下面命令:
root# /sbin/fsck -y # 修复磁盘
root# /sbin/mount -uaw # 挂载磁盘
root# rm /var/db/.AppleSetupDone # 删除
root# reboot
重启之后会进入安装后的配置界面。这个时候创建一个新的管理员账户,登录这个新账户,在 System Preferences
> Users & Groups
找到之前忘记密码的账户,对其重置密码即可。
-s
: 单用户模式,不能正常进入系统时采用,脱离图形界面,以命令行方式进入
上述两个方法用了两次 可怕
。主要原因是别人可以在未经许可的情况下修改你账户的密码。若要解决这个问题请打开 FileVault
(上述两个方法成功的关键就是没有打开 FileVault
)。
0x03 Python
若你打开了 FileVault
,忘记了密码可以通过icloud账号或者恢复密钥来恢复密码,若这两样你都忘记了只能等死了吗?来我们试试Python
爆破一下。
前提是你开了
SSH
(System Preferences
>Sharing
>Remote Login
)
简单说原理:尝试所有可能的密码,SSH远程登录忘记密码的电脑,若登录成功,则密码正确。不逼逼,直接上代码:
#!/usr/bin python3
# coding:utf-8
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
def your_dict():
result = [
'HeoolWrold',
'HeoolWOrld',
'HelloWrlod',
'helloWrold',
'heoolWrold',
'..........',
'HelloWrold',
'helloWrold',
'heoolWorld'
]
return result
def login(i, password):
try:
ssh.connect("your.mac.ip.addr", 22, "your_username", password)
# stdin, stdout, stderr = ssh.exec_command("pwd")
# print(stdout.read())
ssh.close()
except Exception as e:
print(str(i) + ": " + password + ", " + str(e))
ssh.close()
return False
print(password)
return True
if __name__ == '__main__':
result = your_dict()
index = 0
for pwd in result:
index += 1
if login(index, pwd):
print("Success: " + pwd)
exit(0)
Python天下第一!