作者:C1em0
邮箱:[email protected]
此篇文章是利用office的DDE漏洞模拟钓鱼的后续篇,作为来到先知社区的第一篇文章吧。前一篇发布在《安全客》上,传送门
在上一篇文章“Powershell Empire绕过AV实现远控”中介绍了以powershell作为攻击平台的empire利用前些天曝光的office无宏命令漏洞进行钓鱼攻击,绕过杀软对目标靶机进行远控的例子。事后在继续对实验中恶意代码绕过方式进行进一步思考时有了一点新的理解,接下来将在文章中写明。此篇文章依旧围绕着powershell与杀软的猫捉老鼠的故事进行。
从cmd到powershell
学计算机的都应该听说过DOS。dos与cmd很简单又很容易搞混的两个东西。通俗的来讲,dos本来就是一个操作系统,而cmd就只是个应用程序,它是dos的一个实现而已。cmd能实现的命令dos也可以,但是dos能实现的未必在cmd上能实现。作为一直专注于GUI操作系统开发的微软来说,cmd显得并不是那么重要。但是在服务器中一种好的shell是一个能提升管理人员效率的好东西。举例来讲,如果我们要在win系列计算机中创建一个账户,只需要点击鼠标,然后输入账户就可以轻松花费五分钟创建一个新账户,但是要是创建更多的账户,或者更多复杂的操作。系统管理员所要花费的时间就会更长,人性化的GUI操作系统,遇到了瓶颈。尽管微软尝试着用VBScript来配合着弥补这样的缺陷,但是仍旧不能完美地解决这个问题。在这样的背景下,powershell应运而生。关于powershell我就不多赘言,但你要理解它其实为一门脚本语言。
有非PE文件,肯定是有PE文件。什么是PE(Portable Executable)呢?PE文件是一种windows系统 下的可执行文件,具体的文件类型有exe
、dll
、ocx
、sys
、com
,这些都属于传统的PE文件。win系统可以直接或者间接执行。
现在看看非PE文件,其主要分三大类:
上述的PE文件在我们平时的使用率最高的文件,自然杀软在进行恶意文件的查杀方面重点就在PE文件上。上一篇文章中我已经介绍过用exe格式的木马进行测试,杀软不负众望,一个不漏的地对其进行了木马隔离。我们可能听过可以dll注入进行反弹shell,但是作为PE文件,dll恶意文件的效果如何呢?这里我们试验下。
和往常一样,生成一个恶意的payload1.dll文件。然后放入有杀软的主机。然后在写一个payload1.bat的文件,内容如下:
此文件的目的就是让系统调用rundll.exe这个程序执行我们的恶意payload1.dll文件,从而达到反弹shell的目的。但是如何让受害者在毫无戒心的情况下执行bat文件呢?我这里使用了rar可生成自解压压缩包的功能,并且将bat文件设为自动执行,这样就可以让受害者在点击压缩包的一瞬间执行我们的恶意dll文件
最后生成自解压压缩包。如图:
我本以为这样就可以巧妙地绕过杀软和用户,但是并不是。这个压缩包在生成后不久就被杀软查杀。这种方法显然不行,也证明杀软在PE文件内容上的检测已经是很强并且可靠的。那么对于非PE文件呢?
一样的,我们先生成一个含有恶意powershell代码的bat文件试一试。
以文本方式打开,我们可以看到base64加密的恶意代码,然后将其拖入目标机。这时杀软报毒了
看来对于非PE文件的内容检测也是很严格的。
但是我们再来回顾下无宏office命令执行漏洞的恶意代码,也许我们有新的发现
在我看来,这段恶意利用代码其实可以拆分成两个区域:一是office的DDE协议漏洞的区域,它的主要功能是从word直接调用cmd.exe。二是后面的powershell正常的命令区,这个区域属于psl的正常语法,是psl解释器要解释的东西。而我们真正的恶意代码却在世界的另一端----网站上。所以其能绕过杀软的检测,成功反弹shell。那既然这样,我们是不是可以举一反三?
于是,我们将psl区的代码写入一个bat文件中,然后直接双击执行。注意,这个bat文件并没有恶意代码,只有恶意的链接。你猜结果会怎样?
成功侦听,最后故技重施。
通过实验可以看出,我们的杀软已经很强悍了,对于恶意代码基本上都可以识别出来,但是对于这种恶意钓鱼链接依旧不敏感。如果以后杀软可以对于钓鱼链接能够很好识别,那就更棒了。