构建属于自己的恶意软件特征库
引自 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 @阿里云安全#鸟哥谈安全#系列,转载请注明出处。
                    
                
                
            
        
浙公网安备 33010602011771号