病毒查殺

2018-05-16 17:17 更新

(環(huán)境有限,無圖)

文章來源 i春秋

手動(dòng)查殺病毒流程

手動(dòng)查殺病毒木馬有一套“固定”的流程總結(jié)如下:


①排查可疑進(jìn)程。因?yàn)椴《就鶗?huì)創(chuàng)建出來一個(gè)或者多個(gè)進(jìn)程,因此我們需要分辨出哪些進(jìn)程是由病毒所創(chuàng)建,然后刪除可疑進(jìn)程。


②檢查啟動(dòng)項(xiàng)。病毒為了實(shí)現(xiàn)自啟動(dòng),會(huì)采用一些方法將自己添加到啟動(dòng)項(xiàng)中,從而實(shí)現(xiàn)自啟動(dòng),所以我們需要把啟動(dòng)項(xiàng)中的病毒清除。


③刪除病毒,在上一步的檢查啟動(dòng)項(xiàng)中,我們就能夠確定病毒主體的位置,這樣就可以順藤摸瓜,從根本上刪除病毒文件。


④修復(fù)被病毒破壞的文件。這一步一般來說無法直接通過純手工完成,需利用相應(yīng)的軟件,不是我們討論的重點(diǎn)。


第一步、排查可疑的進(jìn)程


開始實(shí)驗(yàn):先截圖任務(wù)管理器,


然后運(yùn)行熊貓燒香后


找到命令提示符,輸入tasklist這個(gè)命令,然后回車,看到現(xiàn)在運(yùn)行的所有進(jìn)程


把現(xiàn)在的進(jìn)程和之前的對(duì)比。


會(huì)發(fā)現(xiàn)多出了的程序


那么。就可以認(rèn)為這個(gè)就是由病毒所創(chuàng)建出來的進(jìn)程


使用:taskkill這個(gè)命令


在命令后面加上:/f(說明強(qiáng)制刪除)


然后在/f后面跟上/im(文件的鏡像)和它的pid值


如:taskkill/f/im 1548 然后回車


已成功終止掉pid為1548的進(jìn)程



第二步、檢查啟動(dòng)項(xiàng)


找到運(yùn)行,輸入:msconfig


找到菜單上的啟動(dòng),然后可以看到


spoclsv這個(gè)啟動(dòng)項(xiàng),這個(gè)程序的本體在


:windows\system32\drivers\里面


然后也可以看到它在注冊(cè)表中看見了一個(gè)鍵值,也是他的位置。


在運(yùn)行中,輸入:regedit打開注冊(cè)表。然后看著它的鍵值,找到它的位置,就可以看到一個(gè)名為:svcshare的這個(gè)名稱,


然后在系統(tǒng)配置里面取消spoclsv的啟動(dòng)項(xiàng)


然后選擇確定!


然后再刷新一下注冊(cè)表就可以看到spoclsv的啟動(dòng)項(xiàng)已經(jīng)沒有了。



第三步、刪除病毒


剛剛已經(jīng)通過啟動(dòng)項(xiàng)知道了病毒的位置


打開命令提示符


輸入它的位置


:windows\system32\driver( 回車)


接著輸入:dir spoclsv.exe看下它是否存在


存在后,然后接著刪除


使用:del /f(強(qiáng)制刪除)+病毒的名稱


del/f spoclsv.exe (回車)


在用dir spoclsv.exe查看一下


已經(jīng)刪除!


但事實(shí)上,這個(gè)病毒不單單將自身復(fù)制到


dtivers目錄下,它還將自己復(fù)制到每個(gè)盤的根目錄下!還可以通過dir看下


沒有發(fā)現(xiàn)病毒,是因?yàn)椴《倦[藏起來了!


輸入dir/ah(a代表屬性,h代表隱藏)這個(gè)命令是要顯示屬性為隱藏的文件,回車


就可以看到隱藏的程序,要注意的是


:autorun.inf(這個(gè)是病毒的自啟動(dòng))


:setup.exe(這個(gè)也是病毒的本體程序)


輸入:del/ah/f autorunq.inf(回車)


(因?yàn)槌绦蚴请[藏的,所以+/at)


在查看下:dir/at(已經(jīng)沒有autorun了)


也可以用命令來刪除隱藏的文件


輸入:attrib -s -r -h setup.exe


(-s -r -h→先削掉它的系統(tǒng)屬性,再削掉它的只讀屬性,再削掉他的隱藏屬性)


然后再跟單這個(gè)文件的名稱(回車)


在輸入:dir/at看下,文件已經(jīng)隱藏了


在輸入:dir查看,就可以在正常屬性中看到setup.exe了


輸入:del/f setup.exe    直接刪除


1.tasklist:現(xiàn)在運(yùn)行的進(jìn)程

 

2.taskkill/f/im 1548 :強(qiáng)制刪除文件鏡像的pid值。pid(1548)值可更改


3.msconfig:啟動(dòng)項(xiàng)   


4.regedit:注冊(cè)表     


5.dir:查看      dir/ah:查看隱藏的進(jìn)程      6.del/f+(文件的名稱):強(qiáng)制刪除     7.del/ah/f+(文件的名稱):強(qiáng)制刪除隱藏的文件      


8.attrib -s -r -h+(文件名) (把隱藏的文件顯示為正常)



第二節(jié)、熊貓燒香之行為分析-學(xué)習(xí)筆記


分析目的:編寫出病毒的專殺程序


實(shí)驗(yàn)工具:process Monitor(監(jiān)控病毒)


實(shí)驗(yàn)文件:setup.exe


1.打開軟件,找到篩選器(Filter),調(diào)制為


:process Name;接著輸入病毒名稱,開始監(jiān)控;


發(fā)現(xiàn)病毒行為:


1.創(chuàng)建了名為:spcolsv.exe的進(jìn)程,路徑為:c:\windows\system32\drivers


2.在命令行的情況下,用net share命令解除系統(tǒng)命令的共享


3.刪除安全軟件的注冊(cè)表中的啟動(dòng)項(xiàng)


4.在注冊(cè)表的 CurrentVersion\Run下的


創(chuàng)建了svcshare的一個(gè)啟動(dòng)項(xiàng)


5.修改注冊(cè)表中的Advanced;使得隱藏的文件無法通過普通的操作而顯現(xiàn)出來


6.將自身隱藏拷貝到根目錄下的:


setup.exe中;并且創(chuàng)建autorun.inf的病毒自啟動(dòng)


7.在某些目錄中創(chuàng)建Desktop_.ini隱藏文件


8.不斷的局域網(wǎng)發(fā)起連接


不斷的向外發(fā)包。


注冊(cè)表的監(jiān)控:


打開篩選器.輸入:Operation;


在第三個(gè)空接著找到:RegSetValue


文件的監(jiān)控:


打開篩選器,找到:Operation


第三個(gè)空接著找到:CreateFile


監(jiān)控病毒:


打開篩選器,找到

rocess Name


第三個(gè)空填:病毒名稱


查看病毒在注冊(cè)表中刪除了那些鍵值:


打開篩選器,找到:Operation


第三個(gè)空:RegDeletValue(刪除鍵值)


查看病毒添加了那些鍵值:


打開篩選器,找到:Operation


第三個(gè)空:RegSetValue


第三節(jié)、熊貓燒香之專殺工具的編寫

專殺工具的功能:


1.檢查系統(tǒng)中的進(jìn)程,將病毒進(jìn)程結(jié)束掉,并將該進(jìn)程在硬盤中隱藏的文件刪除掉。


2.全盤檢查病毒創(chuàng)建的文件,并刪除,這里需要修改病毒文件的屬性,并根據(jù)校驗(yàn)值來判定病毒文件。


3.修復(fù)病毒對(duì)注冊(cè)表的更改,將病毒從自啟動(dòng)項(xiàng)中刪除掉,以及修復(fù)文件的隱藏顯示注冊(cè)表項(xiàng)。


此前已經(jīng)知道熊貓燒香病毒的行為,現(xiàn)在主要針對(duì)五條


:1.我們?cè)诓闅⒉《镜募夹g(shù)中有種方法類似于特征碼查殺法,它并不從病毒內(nèi)提取特征碼,而是計(jì)算病毒的散列值,利用散列值就可以在查殺的過程中計(jì)算每個(gè)文件的散列,然后進(jìn)行比較,這種方法簡(jiǎn)單易于實(shí)現(xiàn),一般在病毒剛被發(fā)現(xiàn)的時(shí)候,在逆向分析前來使用,常見的計(jì)算散列的算法有:MD5、SHAE、CRC32等。這次我們用CRC32算法來計(jì)算病毒程序的散列值。


2.程序一共有兩個(gè)參數(shù),一個(gè)是指向緩沖區(qū)的指針,另一個(gè)是緩沖區(qū)的長(zhǎng)度。首先將病毒文件全部讀入到這個(gè)緩沖區(qū)里面,然后用CRC32函數(shù)來計(jì)算程序的散列值。通過散列值的計(jì)算我們就能生成專門針對(duì)于這個(gè)病毒程序的一個(gè)指紋特征,那么我們?cè)谖覀兊南到y(tǒng)中,搜索這個(gè)病毒文件的時(shí)候,我們就可以根據(jù)它所計(jì)算的指紋特征進(jìn)行匹配,一旦匹配成功了我們就可以確定匹配的這個(gè)程序就是我們所要?jiǎng)h除的病毒程序。


3.查找進(jìn)程:首先對(duì)系統(tǒng)中的進(jìn)程拍一個(gè)快照,然后使用Process32First和Process32Next這兩個(gè)api函數(shù)進(jìn)行不斷的循環(huán)查找(事實(shí)上有些

惡意代碼

也會(huì)使用這三個(gè)東西來查找當(dāng)前進(jìn)程中的情況,這里我們?cè)诰帉懢帉憣⒐ぞ咭惨檎疫M(jìn)程中是否存在者病毒的進(jìn)程,一旦查找到,下一步我們就將它刪除掉)


4.提升權(quán)限:權(quán)限提升之后,當(dāng)前的進(jìn)程就可以訪問一些受限的系統(tǒng)資源。提升權(quán)限用三個(gè)api函數(shù)來實(shí)現(xiàn),OpenProcessToken、LookupPrivilegeValue和AdjustTokenPrivileges(有些病毒程序也會(huì)使用這個(gè)提升權(quán)限的函數(shù),從而訪問一些受限制的系統(tǒng)資源)


5.查找并且刪除病毒所創(chuàng)建出來的一些文件:通過前面的分析我們知道這個(gè)病毒會(huì)在所有盤符的根目錄的下面創(chuàng)建名為Desktop_.ini這樣一個(gè)文件,我們要將其刪除:


(1)遍歷整個(gè)磁盤的文件,使用FindFirstFile和FindNextFile


(2)去除相關(guān)文件的屬性,因?yàn)檫@個(gè)病毒創(chuàng)建的文件會(huì)自動(dòng)的加上隱藏,系統(tǒng)和制度這幾個(gè)屬性,因此我們應(yīng)該先用一段代碼把屬性去除,然后再用DeleteFile把它刪除掉

此外,我們要在整個(gè)程序之前定義一個(gè)CString類型的名為csTxt這樣的一個(gè)全局變量,用于將查殺的結(jié)果輸出到我們所寫的專殺工具的界面

主程序編寫實(shí)際上就是對(duì)一鍵查殺這個(gè)按鈕的事件進(jìn)行程序的編寫:


(1)結(jié)束內(nèi)存中的spoclsv.exe的這個(gè)進(jìn)程并刪除病毒程序的本身,首先用上面編寫的查找進(jìn)程的函數(shù)FindTargetProcess查找spoclsv.exe這個(gè)進(jìn)程


(2)先提升權(quán)限,然后打開并嘗試結(jié)束病毒進(jìn)程,用OpenProcess打開進(jìn)程,打開成功之后使用TerminateProcess把病毒進(jìn)程結(jié)束掉的操作。

(3)查找磁盤中是否也存在名為spoclsv.exe的病毒文件,因?yàn)榍懊嫖覀冎佬茇垷悴《緯?huì)在我們的系統(tǒng)中創(chuàng)建spoclsv.exe這個(gè)程序。首先我們要獲取系統(tǒng)目錄,然后在系統(tǒng)目錄的drivers目錄下找到病毒程序,檢查病毒是否存在,若存在打開病毒程序->獲取病毒的大小->在內(nèi)存中分配一塊和病毒文件大小相同的空間->把這個(gè)病毒程序讀取到內(nèi)存中。


(4)利用CRC32算法來計(jì)算這個(gè)程序是否為我們的病毒程序,為了避免有些正常程序和病毒程序名字一樣而不嚴(yán)謹(jǐn),一旦校驗(yàn)值和散列值驗(yàn)證成功,首先依舊是去除熊貓燒香文件的隱藏、系統(tǒng)、只讀屬性利用dwFileAttributes函數(shù)->調(diào)用DeleteFile將spoclsv.exe徹底刪除。


(5)刪除每個(gè)盤符下的setup.exe、sutorun.inf、Desktop_.ini這三個(gè)文件:使用GetLogicalDriveStrings獲取字符串類型驅(qū)動(dòng)器列表(這個(gè)函數(shù)的返回值會(huì)返回當(dāng)前所有函數(shù)的驅(qū)動(dòng)器的字符盤符,每個(gè)驅(qū)動(dòng)器會(huì)以四個(gè)字符進(jìn)行返回值進(jìn)行保存,如C盤為C:\0)->使用字符串拷貝函數(shù)將文件名與盤符連接起來->驗(yàn)證autorun.inf、setup.exe是否存在->存在的話用CRC32算法計(jì)算出它的散列值,當(dāng)校驗(yàn)值和散列值驗(yàn)證成功,依舊是要先去除文件的屬性->調(diào)用DeleteFile刪除setup.exe和autorun.inf程序(依舊要先去除文件的屬性)。


(6)因?yàn)榍懊嬲{(diào)用GetLogicalDriveStrings每個(gè)驅(qū)動(dòng)器會(huì)占用四個(gè)字符的空間,所以我們要加上四就到了下一個(gè)盤符的空間了。


(7)修復(fù)注冊(cè)表的相關(guān)內(nèi)容,前面我們已經(jīng)知道熊貓燒香病毒會(huì)在CurrentVersion\Run下面創(chuàng)建一個(gè)鍵值實(shí)現(xiàn)病毒的自啟動(dòng)。所以我們首先查找這個(gè)自啟動(dòng)是否存在,若存在我們就先把它刪除掉。


(8)修復(fù)文件的隱藏顯示,其實(shí)就是將CheckedValue的值設(shè)置為1。

 


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)