构建属于自己的恶意软件特征库

引自 http://blog.sina.com.cn/s/blog_e8e60bc00102vjz9.html

感谢 阿里云安全 的分享

 

 

0x00 简介

最近研究了一些开源的杀毒引擎,总结了一下利用ClamAV(www.clamav.net)来打造属于自己的恶意软件分析特征库。特征库主要包括HASH匹配、文件内容特征库、逻辑特征库、二进制特征码(SHELLCODE)、ASCII特征码。

 

0x01 ClamAV部署

1.       实验环境

所有实验均在Kali Linux V1.0.9操作系统上。

2.       安装clamav

apt-get install clamav

3.       其他环境

其他环境请参考如下URL: http://www.clamav.net/doc/install.html

 

0x02 ClamAV恶意软件特征库

1.       特征库位置

特征库默认安装位置在/usr/lib/clamav/目录下,main.cvd即是主要特征库,daily.cvd则是每日增量式更新的特征码库。

构建属于自己的恶意软件特征库

2.       解压特征库

root@kali:/var/lib/clamav# sigtool -u ./main.cvd

构建属于自己的恶意软件特征库

3.       特征库解释

后缀名称

包含内容

main.ndb

十六进制特征码

main.mdb

Windows PE恶意软件文件的MD5哈希值

main.hdb

已知的恶意软件文件的MD5哈希值

 

0x03 构造属于自己的恶意软件特征库

   下面利用一个免杀木马来构造一个特征库。我们利用clamav发现我们自己编译的木马是没有被发现的。

构建属于自己的恶意软件特征库

1.       构造MD5库

a)       生成md5哈希库

sigtool --md5 update.exe >test.hdb


构建属于自己的恶意软件特征库

 

b)       利用test.hdb来查杀

clamscan -d test.hdb update.exe

构建属于自己的恶意软件特征库

2.       构造PE头信息特征库

a)       生成PE头信息签名的工具

wget http://hexacorn.com/d/PESectionExtractor.pl

b)       查看PE签名

构建属于自己的恶意软件特征库

c)       生成PE头信息签名

sigtool --mdb *.dat >pebase.mdb


构建属于自己的恶意软件特征库

 

d)       利用生成的签名进行检查

clamscan -d pebase.mdb update.exe

构建属于自己的恶意软件特征库

3.       构建文件内容特征库

a)       查找特征码

首先利用IDA PRO来查看恶意软件的特征码。

构建属于自己的恶意软件特征库

b)       转换成十六进制

构建属于自己的恶意软件特征库


c)       利用十六进制特征码构建特征库

在构建特征库之前先看一下可扩展的特征码格式:

SigName:Target:Offset:Hex

字段

含义

SigName

特征码唯一描述的名字

Target

0(任意文件类型)

1(Windows PE可执行文件)

2(对象链接和嵌入OLE)

3(标准化的HTML)

4(Email文件)

5(图像文件)

6(Linux ELF文件)

7(标准化的ASCII文件)

Offset

文件中的偏移量

Hex

十六进制匹配

下面我们构造特征码:

echo 'Malwareupdate:1:*:636d642e657865'>custom.ndb

 

我们查杀一下:

构建属于自己的恶意软件特征库


0x04 参考文献

http://infosec4breakfast.blogspot.com/2013/06/fun-with-clamav.html

https://github.com/vrtadmin/clamav-devel/raw/master/docs/signatures.pdf

文章来自:@cnbird2008 @阿里云安全#鸟哥谈安全#系列,转载请注明出处。

posted @ 2018-10-19 17:42  sane_gao  阅读(1791)  评论(0编辑  收藏  举报