免杀新姿势:利用线程将恶意代码注入到内存中【转】

通过注入线程,我们可以绕过杀软。在这个环境下,我的meterpreter payload通过TID为4268的线程注入到PID为2492的进程,名叫mspaint.exe中。

就像你在上图看到,当产生meterpreter 会话进程之后会在受害机中产生mspaint.exe进程。同时也可以发现TID为4268的线程开始地址为0X0。如果你结束掉TID 4268的线程,那么meterpreter会话就会立马结束。

 实验二:测试ESET-Nod3210.1.204.0版本

实验二:测试ESET-Nod3210.1.204.0版本

下图中你可以看到,ESET已经更新到了最近版本”20170516”,不过并没有什么用,我同样将meterpreter攻击载荷通过TID 3932线程注入到了PID为3168的notepad进程中。

实验三:测试Kaspersky v17版本

实验三:测试Kaspersky v17版本

同样,Kaspersky已经是最新版本v17.0.0.611,漏洞库为”20170516”。不过同样被绕过了。meterpreter通过TID 2932线程注入到了PID为1200进程中.

实验3-1:Kaspersky internet security v17漏洞库05182017版本

同样被绕过了,即使杀毒软件显示:您的电脑正在被保护。

那么如何检测这种攻击呢?

那么如何检测这种攻击呢?

我自己写了一个软件”Meterpreter_Payload_Detection.exe”,它会在内存识别meterpreter签名,进而发现后门,然后清除。

在下图中你可后门发现绕过ESET-Nod32杀毒软件之后,会被Meterpreter_Payload_Detection.exe拦截。所以个人感觉杀毒软件在内存扫描这一方面做的不是很完备。

上图中,你可以在我软件的界面找到注入到内存的进程,即PID为2116的进程,以及TID为2820的线程。

红颜色字体展示了在内存中扫描签名,当然这也许不是最好的方法检测恶意软件,但是到现在为止,这个工具针对内存检测做的比现有的杀毒软件要好。

此条目发表在未分类, 经验技术分类目录。将固定链接加入收藏夹。