(環(huán)境有限,無圖)
文章來源 i春秋
手動查殺病毒流程
手動查殺病毒木馬有一套“固定”的流程總結如下:
①排查可疑進程。因為病毒往往會創(chuàng)建出來一個或者多個進程,因此我們需要分辨出哪些進程是由病毒所創(chuàng)建,然后刪除可疑進程。
②檢查啟動項。病毒為了實現自啟動,會采用一些方法將自己添加到啟動項中,從而實現自啟動,所以我們需要把啟動項中的病毒清除。
③刪除病毒,在上一步的檢查啟動項中,我們就能夠確定病毒主體的位置,這樣就可以順藤摸瓜,從根本上刪除病毒文件。
④修復被病毒破壞的文件。這一步一般來說無法直接通過純手工完成,需利用相應的軟件,不是我們討論的重點。
第一步、排查可疑的進程
開始實驗:先截圖任務管理器,
然后運行熊貓燒香后
找到命令提示符,輸入tasklist這個命令,然后回車,看到現在運行的所有進程
把現在的進程和之前的對比。
會發(fā)現多出了的程序
那么。就可以認為這個就是由病毒所創(chuàng)建出來的進程
使用:taskkill這個命令
在命令后面加上:/f(說明強制刪除)
然后在/f后面跟上/im(文件的鏡像)和它的pid值
如:taskkill/f/im 1548 然后回車
已成功終止掉pid為1548的進程
第二步、檢查啟動項
找到運行,輸入:msconfig
找到菜單上的啟動,然后可以看到
spoclsv這個啟動項,這個程序的本體在
:windows\system32\drivers\里面
然后也可以看到它在注冊表中看見了一個鍵值,也是他的位置。
在運行中,輸入:regedit打開注冊表。然后看著它的鍵值,找到它的位置,就可以看到一個名為:svcshare的這個名稱,
然后在系統(tǒng)配置里面取消spoclsv的啟動項
然后選擇確定!
然后再刷新一下注冊表就可以看到spoclsv的啟動項已經沒有了。
第三步、刪除病毒
剛剛已經通過啟動項知道了病毒的位置
打開命令提示符
輸入它的位置
:windows\system32\driver( 回車)
接著輸入:dir spoclsv.exe看下它是否存在
存在后,然后接著刪除
使用:del /f(強制刪除)+病毒的名稱
del/f spoclsv.exe (回車)
在用dir spoclsv.exe查看一下
已經刪除!
但事實上,這個病毒不單單將自身復制到
dtivers目錄下,它還將自己復制到每個盤的根目錄下!還可以通過dir看下
沒有發(fā)現病毒,是因為病毒隱藏起來了!
輸入dir/ah(a代表屬性,h代表隱藏)這個命令是要顯示屬性為隱藏的文件,回車
就可以看到隱藏的程序,要注意的是
:autorun.inf(這個是病毒的自啟動)
:setup.exe(這個也是病毒的本體程序)
輸入:del/ah/f autorunq.inf(回車)
(因為程序是隱藏的,所以+/at)
在查看下:dir/at(已經沒有autorun了)
也可以用命令來刪除隱藏的文件
輸入:attrib -s -r -h setup.exe
(-s -r -h→先削掉它的系統(tǒng)屬性,再削掉它的只讀屬性,再削掉他的隱藏屬性)
然后再跟單這個文件的名稱(回車)
在輸入:dir/at看下,文件已經隱藏了
在輸入:dir查看,就可以在正常屬性中看到setup.exe了
輸入:del/f setup.exe 直接刪除
1.tasklist:現在運行的進程
2.taskkill/f/im 1548 :強制刪除文件鏡像的pid值。pid(1548)值可更改
3.msconfig:啟動項
4.regedit:注冊表
5.dir:查看 dir/ah:查看隱藏的進程 6.del/f+(文件的名稱):強制刪除 7.del/ah/f+(文件的名稱):強制刪除隱藏的文件
8.attrib -s -r -h+(文件名) (把隱藏的文件顯示為正常)
第二節(jié)、熊貓燒香之行為分析-學習筆記
分析目的:編寫出病毒的專殺程序
實驗工具:process Monitor(監(jiān)控病毒)
實驗文件:setup.exe
1.打開軟件,找到篩選器(Filter),調制為
:process Name;接著輸入病毒名稱,開始監(jiān)控;
發(fā)現病毒行為:
1.創(chuàng)建了名為:spcolsv.exe的進程,路徑為:c:\windows\system32\drivers
2.在命令行的情況下,用net share命令解除系統(tǒng)命令的共享
3.刪除安全軟件的注冊表中的啟動項
4.在注冊表的 CurrentVersion\Run下的
創(chuàng)建了svcshare的一個啟動項
5.修改注冊表中的Advanced;使得隱藏的文件無法通過普通的操作而顯現出來
6.將自身隱藏拷貝到根目錄下的:
setup.exe中;并且創(chuàng)建autorun.inf的病毒自啟動
7.在某些目錄中創(chuàng)建Desktop_.ini隱藏文件
8.不斷的局域網發(fā)起連接
不斷的向外發(fā)包。
注冊表的監(jiān)控:
打開篩選器.輸入:Operation;
在第三個空接著找到:RegSetValue
文件的監(jiān)控:
打開篩選器,找到:Operation
第三個空接著找到:CreateFile
監(jiān)控病毒:
打開篩選器,找到
rocess Name
第三個空填:病毒名稱
查看病毒在注冊表中刪除了那些鍵值:
打開篩選器,找到:Operation
第三個空:RegDeletValue(刪除鍵值)
查看病毒添加了那些鍵值:
打開篩選器,找到:Operation
第三個空:RegSetValue
第三節(jié)、熊貓燒香之專殺工具的編寫
專殺工具的功能:
1.檢查系統(tǒng)中的進程,將病毒進程結束掉,并將該進程在硬盤中隱藏的文件刪除掉。
2.全盤檢查病毒創(chuàng)建的文件,并刪除,這里需要修改病毒文件的屬性,并根據校驗值來判定病毒文件。
3.修復病毒對注冊表的更改,將病毒從自啟動項中刪除掉,以及修復文件的隱藏顯示注冊表項。
此前已經知道熊貓燒香病毒的行為,現在主要針對五條
:1.我們在查殺病毒的技術中有種方法類似于特征碼查殺法,它并不從病毒內提取特征碼,而是計算病毒的散列值,利用散列值就可以在查殺的過程中計算每個文件的散列,然后進行比較,這種方法簡單易于實現,一般在病毒剛被發(fā)現的時候,在逆向分析前來使用,常見的計算散列的算法有:MD5、SHAE、CRC32等。這次我們用CRC32算法來計算病毒程序的散列值。
2.程序一共有兩個參數,一個是指向緩沖區(qū)的指針,另一個是緩沖區(qū)的長度。首先將病毒文件全部讀入到這個緩沖區(qū)里面,然后用CRC32函數來計算程序的散列值。通過散列值的計算我們就能生成專門針對于這個病毒程序的一個指紋特征,那么我們在我們的系統(tǒng)中,搜索這個病毒文件的時候,我們就可以根據它所計算的指紋特征進行匹配,一旦匹配成功了我們就可以確定匹配的這個程序就是我們所要刪除的病毒程序。
3.查找進程:首先對系統(tǒng)中的進程拍一個快照,然后使用Process32First和Process32Next這兩個api函數進行不斷的循環(huán)查找(事實上有些
惡意代碼也會使用這三個東西來查找當前進程中的情況,這里我們在編寫編寫專殺工具也要查找進程中是否存在者病毒的進程,一旦查找到,下一步我們就將它刪除掉)
4.提升權限:權限提升之后,當前的進程就可以訪問一些受限的系統(tǒng)資源。提升權限用三個api函數來實現,OpenProcessToken、LookupPrivilegeValue和AdjustTokenPrivileges(有些病毒程序也會使用這個提升權限的函數,從而訪問一些受限制的系統(tǒng)資源)
5.查找并且刪除病毒所創(chuàng)建出來的一些文件:通過前面的分析我們知道這個病毒會在所有盤符的根目錄的下面創(chuàng)建名為Desktop_.ini這樣一個文件,我們要將其刪除:
(1)遍歷整個磁盤的文件,使用FindFirstFile和FindNextFile
(2)去除相關文件的屬性,因為這個病毒創(chuàng)建的文件會自動的加上隱藏,系統(tǒng)和制度這幾個屬性,因此我們應該先用一段代碼把屬性去除,然后再用DeleteFile把它刪除掉
此外,我們要在整個程序之前定義一個CString類型的名為csTxt這樣的一個全局變量,用于將查殺的結果輸出到我們所寫的專殺工具的界面
主程序編寫實際上就是對一鍵查殺這個按鈕的事件進行程序的編寫:
(1)結束內存中的spoclsv.exe的這個進程并刪除病毒程序的本身,首先用上面編寫的查找進程的函數FindTargetProcess查找spoclsv.exe這個進程
(2)先提升權限,然后打開并嘗試結束病毒進程,用OpenProcess打開進程,打開成功之后使用TerminateProcess把病毒進程結束掉的操作。
(3)查找磁盤中是否也存在名為spoclsv.exe的病毒文件,因為前面我們知道熊貓燒香病毒會在我們的系統(tǒng)中創(chuàng)建spoclsv.exe這個程序。首先我們要獲取系統(tǒng)目錄,然后在系統(tǒng)目錄的drivers目錄下找到病毒程序,檢查病毒是否存在,若存在打開病毒程序->獲取病毒的大小->在內存中分配一塊和病毒文件大小相同的空間->把這個病毒程序讀取到內存中。
(4)利用CRC32算法來計算這個程序是否為我們的病毒程序,為了避免有些正常程序和病毒程序名字一樣而不嚴謹,一旦校驗值和散列值驗證成功,首先依舊是去除熊貓燒香文件的隱藏、系統(tǒng)、只讀屬性利用dwFileAttributes函數->調用DeleteFile將spoclsv.exe徹底刪除。
(5)刪除每個盤符下的setup.exe、sutorun.inf、Desktop_.ini這三個文件:使用GetLogicalDriveStrings獲取字符串類型驅動器列表(這個函數的返回值會返回當前所有函數的驅動器的字符盤符,每個驅動器會以四個字符進行返回值進行保存,如C盤為C:\0)->使用字符串拷貝函數將文件名與盤符連接起來->驗證autorun.inf、setup.exe是否存在->存在的話用CRC32算法計算出它的散列值,當校驗值和散列值驗證成功,依舊是要先去除文件的屬性->調用DeleteFile刪除setup.exe和autorun.inf程序(依舊要先去除文件的屬性)。
(6)因為前面調用GetLogicalDriveStrings每個驅動器會占用四個字符的空間,所以我們要加上四就到了下一個盤符的空間了。
(7)修復注冊表的相關內容,前面我們已經知道熊貓燒香病毒會在CurrentVersion\Run下面創(chuàng)建一個鍵值實現病毒的自啟動。所以我們首先查找這個自啟動是否存在,若存在我們就先把它刪除掉。
(8)修復文件的隱藏顯示,其實就是將CheckedValue的值設置為1。
更多建議: