引自 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 @阿里雲安全#鳥哥談安全#系列,轉載請注明出處。