Linux如何手動分析病毒樣本
Linux如何手動分析病毒樣本
歡迎大家來到學習啦,本文教你Linux六大誤區(qū),歡迎大家閱讀。
原理:利用md5值的不同進行文件的對比。
操作背景:
XP安裝光盤;
病毒樣本;
U盤;
Ubuntu 7.10 LiveCD
所需的幾個對比md5和轉化二進制文件格式的程序
操作過程:
1. 全盤格式化,同時安裝Windows(也可采用ghost回去,但是一定注意其他磁盤可能的病毒感染)
2. 在剛裝好的Windows下,導出注冊表。將導出文件放入C盤根目錄下。這里我命名為1.reg
3. 進入Ubuntu系統(tǒng),注意,進入前f2選擇簡體中文模式
4. 掛載C盤:
mkdir /mnt/hdd1 (生產系統(tǒng)C盤掛載點)
mount -t ntfs -o iocharset=cp936 /dev/hdd1 /mnt/hdd1 (將系統(tǒng)C盤掛載到/mnt/hdd1下,注意文件格式和設備號視具體情況而定)
5. 掛載U盤:
mkdir /mnt/usb (生成U盤掛載點)
mount -t vfat /dev/sda1 /mnt/usb (將U盤掛載到/mnt/usb下,同樣注意文件格式和設備號)
6. 將導出的注冊表信息放入U盤:
假設U盤上已經有test目錄,同時,在test目錄下有parse.sh,parseWinReg,ShowList 三個程序
cp /mnt/hdd1/1.reg /mnt/usb/test (將導出注冊表拷貝至/mnt/usb/test目錄下)
cd /mnt/usb/test (進入U盤test 目錄)
./parseWinReg 1.reg origreg (將導出注冊表進行格式轉換,生成origreg)
7. 計算C盤所有文件md5值:
rm /mnt/hdd1/pagefile.sys (這個文件太大影響計算速度,刪除)
/mnt/usb/test/parse.sh /mnt/hdd1/ > /mnt/usb/origfile (計算磁盤文件md5值,并將結果導出至U盤test目錄下origfile)
8. 重新進入Windows,同時,激發(fā)病毒文件
注意:先將病毒文件放入磁盤,拔掉U盤,拔掉網線,再激發(fā)!
9. 重復3,4,5,6,7步驟
mkdir /mnt/hdd1
mount -t ntfs -o iocharset=cp936 /dev/hdd1 /mnt/hdd1
mkdir /mnt/usb
mount -t vfat /dev/sda1 /mnt/usb
cp /mnt/hdd1/2.reg /mnt/usb/test (這里假設導出的注冊表是2.reg)
cd /mnt/usb/test
./parseWinReg 2.reg newreg
rm /mnt/hdd1/pagefile.sys
/mnt/usb/test/parse.sh /mnt/hdd1/ > /mnt/usb/newfile
10. 至此,我們得到了原始的系統(tǒng)信息:origreg, origfile,中病毒之后的信息:newreg, newfile
11. 比較文件不同之處:diff -Nur origfile newfile > filediff
12. 比較注冊表不同之處:diff -Nur origreg newreg > regdiff
13. 分析filediff 和 regdiff,得到結論
分析小技巧:
一般情況下前面出現+的就是病毒釋放的,-就是有過改動的(感染的),如果是md5值是成雙成對出現(一個+和一個-),那那一行一般不是,如果前面沒有任何標記,那說明也不是。咱們把沒用的刪除,只留下有單個+或者單個-的,最好看文件路徑,即得到了病毒的產生文件或者是感染文件。