第一篇:個人分享木馬病毒查殺總結
一、前言
《病毒木馬查殺》系列以真實的病毒木馬(或統稱為惡意程序)為研究對象,通過現有的技術手段對其分析,總結出它的惡意行為,進而制定出相應的應對方法(如編寫專殺工具),對其徹底查殺。當然,本系列更多地是討論如何應對某一個特定的病毒,而不涉及廣義的殺毒軟件的編寫。因為如今殺軟的原理非常復雜,并不是一個人就能夠完成的,加之我個人水平有限,因此不會涉及殺軟編寫的問題。不過,我會在以后的文章中在理論層面對此進行分析。
在本系列的文章中,對于某一個病毒或木馬,我可能會從以下三個方面進行查殺:手動查殺、監測惡意行為編寫專殺工具或通過逆向分析其反匯編代碼進行徹底查殺。這幾種方式通過對病毒的不斷深入分析,從而更有效地對抗惡意程序。需要說明的是,手動查殺病毒是比較粗淺的,難以徹底清除病毒,但是有些時候卻是快速而有效的。而通過行為對惡意程序進行監測,雖說比手動查殺的效果要好很多,但是有些時候往往也會有些遺漏。所以其實最好的還是通過逆向分析來了解惡意程序,只是這樣往往耗時較多。希望本系列的文章能夠起到科普作用,讓大家打消對病毒木馬的恐懼感,使得每一位讀者都能成為反病毒的專家。
二、病毒分析方法
一般來說,除非是感染型病毒,否則是不需要對病毒進行逆向分析的,只需要對病毒進行行為分析就可以編寫專殺工具。而如果是感染型病毒,由于需要修復被病毒感染的文件,那么就不能僅僅簡單地分析病毒的行為,而必須對病毒進行逆向分析,從而修復被病毒所感染的文件。因此,實際中的分析方法有以下兩種:
1、行為分析。惡意程序為了達到目的,都有自己的一些特殊的行為,這些特殊的行為是正常的應用程序所沒有的。比如把自己復制到系統目錄下,或把自己添加進啟動項,或把自己的某個DLL文件注入到其它進程中去……這些行為都不是正常的行為。我們拿到一個病毒樣本后,通常就是將病毒復制到虛擬機中,然后打開監控工具,比如Process Monitor。將各種準備工作做好以后,在虛擬機中把病毒運行起來,看病毒對注冊表、對文件進行了哪些操作,連接了哪個IP地址、創建了哪些進程等。通過觀察這一系列的操作,就可以寫一個程序。只要把它創建的進程結束掉,把它寫入注冊表的內容刪除掉,把新建的文件刪除掉,就等于把這個病毒殺掉了。這也是手動查殺病毒所慣用的方法。當然,這整個過程不會像說起來那么容易。
2、逆向分析。當惡意程序感染了可執行文件之后,所感染的內容是無法通過行為監控工具發現的。而病毒對可執行文件的感染,有可能是通過PE文件結構中的節與節之間的縫隙來存放病毒代碼,也可能是添加一個新節來存放病毒代碼。無論是哪種方式,都需要通過逆向的手段進行分析。常用的逆向分析工具有OllyDbg、IDA Pro以及WinDBG。
三、病毒查殺方法
病毒的查殺方法有很多種,在網絡安全知識日益普及的今天,在各大殺軟公司大力宣傳的今天,想必大部分網絡安全愛好者對于病毒查殺技術都有一定的了解。當今常見的主流病毒查殺技術有特征碼查殺、啟發式查殺、虛擬機查殺和主動防御等。
1、特征碼查殺。特征碼查殺是殺軟廠商查殺病毒的一種較為原始的方法。它是通過從病毒體內提取病毒特征碼,從而識別病毒。但是這種方法只能查殺已知病毒,對于未知病毒則無能為力。
2、啟發式查殺。靜態地通過一系列“帶權規則組合”對文件進行判定,如果計算出的值高于某個界限則被認為是病毒,否則不認為是病毒。啟發式查殺可以相對有效地識別出病毒,但是往往也會出現誤報的情況。
3、虛擬機查殺。在內存中虛擬一個運行環境用于病毒的運行,根據其行為或釋放出的已知病毒特征碼,來判斷其是否為病毒程序。這個技術用來應對加殼和加密的病毒比較有效,因為這兩類病毒在執行時最終還是要自身脫殼和解密的,這樣,殺軟可以在其現出原形之后進行查殺。
4、主動防御?;诔绦蛐袨樽灾鞣治雠袛嗟膶崟r防護技術,不以病毒的特征碼作為判斷病毒的依據,而是從最原始的病毒定義出發,直接將程序的行為作為判斷病毒的依據。主動防御是用軟件自動實現了反病毒工程師分析判斷病毒的過程,解決了傳統安全軟件無法防御未知惡意軟件的弊端,從技術上實現了對木馬和病毒的主動防御。
四、環境的配置
我們所有的病毒分析工作都會在虛擬機中進行,因此安裝虛擬機是一個必須的步驟。虛擬機也是一個軟件,用于模擬計算機的硬件系統,在虛擬機中可以安裝操作系統,之后可以安裝各種各樣的應用程序,這與真實的計算機是沒有區別的。在虛擬機中的操作完全不會對我們真實的系統產生影響。但是這里要特別說明的是,某些特別強的病毒能夠繞出虛擬機,進而感染我們真實的系統。這種情況可能是因為我們的虛擬機中存在漏洞,而病毒正好利用了這個漏洞。因此一定要選擇最新版本的虛擬機軟件。除了對病毒進行分析需要使用虛擬機外,在進行雙機調試系統內核時(比如使用WinDBG),往往也是要借助于虛擬機的。常用的虛擬機有VMware和Oracle公司的VM VirtualBox。我個人最喜歡使用VMware,因為它的功能非常強大,而且基本上所有的教程都會以這款軟件作為講解對象。但是Vmware在我的系統中總是會出現莫名的問題,所以在我的實驗環境中,我選擇使用開源且免費的VirtualBox。我的VirtualBox采用的是4.3.12版,虛擬機中安裝的操作系統為Windows XP Professional SP3,為其虛擬1個處理器,1GB內存、10GB硬盤空間與128M顯存。而我的真實系統采用的是Windows 8.1(64位),使用Intel Core i5-3230M 2.60GHz的CPU,4GB內存。如無特別說明,本系列所有的實驗都會在這個配置中完成。這里還需要說一下系統的備份,因為在分析病毒程序時,我們的虛擬系統或多或少地會被病毒所破壞,而備份功能則可以將系統很好地恢復到被破壞前的狀態。在VirtualBox中,可以在“控制”菜單下選擇“生成備份”,輸入備份名稱后保存。這樣,以后如果想還原系統,可以選擇“恢復備份”,至此,我們的實驗環境基本配置完畢。
一、前言
作為本系列研究的開始,我選擇“熊貓燒香”這個病毒為研究對象。之所以選擇這一款病毒,主要是因為它具有一定的代表性。一方面它當時造成了極大的影響,使得無論是不是計算機從業人員,都對其有所耳聞;另一方面是因為這款病毒并沒有多高深的技術,即便是在當時來講,其所采用的技術手段也是很一般的,利用我們目前掌握的知識,足夠將其剖析。因此,我相信從這個病毒入手,會讓從前沒有接觸過病毒研究的讀者打消對病毒的恐懼心理,在整個學習的過程中開個好頭。
本篇文章先研究如何對“熊貓燒香”進行手動查殺。這里所說的手動查殺,主要是指不通過編寫代碼的方式對病毒進行查殺。說白了,基本上就是通過鼠標的指指點點,有時再利用幾條DOS命令就能夠實現殺毒的工作。但是不可否認的是,采用這種方法是非常粗淺的,往往不能夠將病毒徹底查殺干凈,但是從學習手動查殺病毒起步,有助于我們更好地理解反病毒的工作,從而為以后更加深入的討論打下基礎。需要說明的是,手動查殺病毒并不代表在什么軟件都不使用的前提下對病毒進行查殺,其實利用一些專業的分析軟件對于我們的查殺病毒的還是很有幫助的,這些工具我會在對不同的病毒的研究中進行講解。另外,出于安全考慮,我的所有研究文章,都不會給大家提供病毒樣本,請大家自行上網尋找,我只會給出我所使用的病毒樣本的基本信息。
二、手動查殺病毒流程
手動查殺病毒木馬有一套“固定”的流程,總結如下:
1、排查可疑進程。因為病毒往往會創建出來一個或者多個進程,因此我們需要分辨出哪些進程是由病毒所創建,然后刪除可疑進程。
2、檢查啟動項。病毒為了實現自啟動,會采用一些方法將自己添加到啟動項中,從而實現自啟動,所以我們需要把啟動項中的病毒清除。
3、刪除病毒。在*步的檢查啟動項中,我們就能夠確定病毒主體的位置,這樣就可以順藤摸瓜,從根本上刪除病毒文件。
4、修復被病毒破壞的文件。這一步一般來說無法直接通過純手工完成,需利用相應的軟件,不是我們討論的重點。
三、查殺病毒
我這里研究的“熊貓燒香”病毒樣本的基本信息如下: MD5碼:87551e33d517442424e586d25a9f8522,Sha-1碼:cbbab396803685d5de593259c9b2fe4b0d967bc7 文件大?。?9KB 大家在網上搜索到的病毒樣本可能與我的不同,但是基本上都是大同小異的,查殺的核心思想還是一樣的。
這里我將病毒樣本拷貝到之前配置好的虛擬機中(注意要備份),首先打開“任務管理器”查看一下當前進程:因為我的虛擬機系統中沒有安裝任何軟件,是很純凈的,所以一共有18個進程(包含任務管理器進程),可以認為這18個進程是系統所必須的。有時我們就需要這樣的一個純凈系統,來與疑似中毒的系統進行進程的對比操作。然后我們運行病毒,再次嘗試打開“任務管理器”,發現它剛打開就立刻被關閉了,說明病毒已經對我們的系統產生了影響,而這第一個影響就是使得“任務管理器”無法打開。不過沒關系,我們可以在cmd中利用“tasklist”命令進行查看:通過對比可見這里多出了一個名為spoclsv.exe的進程,那么我們可以通過命令“taskkill /f /im 1820”(強制刪除PID值為1820的文件映像),從而將這個進程結束掉:這時就可以發現“任務管理器”可以被打開了,說明我們工作的第一步是成功的。然后需要對啟動項進行排查,可以在“運行”中輸入“msconfig”:
這里很快就能夠鎖定“spoclsv.exe”這一項,我們首先需要記下其文件位置: C:WINDOWSsystem32driversspoclsv.exe 然后是注冊表位置:
HKCUSOFTWAREMicrosoftWindowsCurrentVersionRun 然后將這個啟動項前面的對勾取消,來到注冊表相應的位置,將Run中的“spoclsv.exe”刪除,并且刪除病毒文件本體:
以上工作完畢后,重啟系統,再次打開“任務管理器”,可以被正常打開,說明我們的工作是成功的。然后打開“我的電腦”,用鼠標右鍵點擊一下各個盤符(我的系統只有C盤):我們在手動查殺病毒的時候,就應該養成一個習慣,那就是使用右鍵來打開盤符,而不是通過雙擊左鍵的方式。在這里我們可以看到,鼠標右鍵菜單中多出來了一個“Auto”項,那么很明顯C盤中存在autorun.inf的文件??梢栽赾md中查看一下:因為我已經確定C盤中存在autorun.inf文件,而使用dir命令卻沒有看到,說明它應該是被隱藏了,所以這里要使用“dir /ah”(查看屬性為隱藏的文件和文件夾)命令。而我們也確實發現了autorun.inf與setup.exe這兩個可疑文件(因為正常文件是不需要隱藏的,特別是EXE文件更加不需要隱藏自己,所以這個setup.exe屬于可疑文件)。因為這兩個可疑程序的屬性是隱藏的,所以這里可以先去掉其隱藏屬性,然后再進行刪除:
重啟系統后,所有手動查殺病毒的工作完畢,我們的系統就又恢復正常了。
四、小結
事實上,“熊貓燒香”對于我們的電腦的危害遠不止于此,只是說在不使用任何輔助工具的前提下,我們能做的基本上就是這些了。對于“熊貓燒香”病毒的手動查殺部分就到這里,在以后對于別的病毒的研究中,由于它們比“熊貓”要強大,我們不得不使用一些專業工具作為輔助。也希望大家能夠親自去嘗試,勤動手,由這里開始,不再懼怕病毒。
一、前言
為了分析“熊貓燒香”病毒的行為,我這里使用的是Process Monitor v3.10版。
行為分析的目的,是為了編寫出病毒的專殺程序。當然,由于現實環境的種種限制,可能無法發現病毒的所有行為,這些我都會在文章中進行說明。
二、對“熊貓燒香.exe”進程樹的監控分析
這里我將病毒和Process Monitor v3.10復制到之前配置好的虛擬機中,并做好備份。然后先打開Process Monitor,在篩選條件中將“熊貓燒香.exe”加入到篩選器的“Process Name”中,然后運行病毒,首先可以查看一下進程樹: 圖①
在進程樹中可以發現,“熊貓燒香.exe”衍生出了“spoclsv.exe”。衍生出的進程又打開了兩次“cmd.exe”。第一次運行的命令是“cmd.exe /c net share C$ /del /y”,它的意思是在命令行模式下刪除C盤的網絡共享,執行完后關閉cmd.exe。因為我的系統只有一個C盤,因此有理由相信,這個病毒應該是會關閉系統中所有的盤的網絡共享。第二次運行的命令是“cmd.exe /c net share admin$ /del /y”,這里取消的是系統根目錄的共享。那么由此就可以總結出病毒的兩點行為:
病毒行為1:病毒本身創建了名為“spoclsv.exe”的進程,該進程文件的路徑為“C:WINDOWSsystem32driversspoclsv.exe”。
病毒行為2:在命令行模式下使用net share命令來取消系統中的共享。
三、對“熊貓燒香.exe”注冊表監控分析
對于注冊表的監控,我們發現只有一項需要注意: 注冊表的這個位置主要用于隨機數種子的生成,僅僅依靠這條信息是無法推測病毒的行為的,所以可以認為“熊貓燒香.exe”對于注冊表沒有什么實質的影響。
四、對“熊貓燒香.exe”文件監控分析
對于文件的監控,也只有一條需要注意:創建文件
可見,“熊貓燒香.exe”在“C:WINDOWSsystem32drivers”中創建了“spoclsv.exe”,其它再無可疑操作,那么可以認為,這個病毒真正的破壞部分是由“spoclsv.exe”實現的,那么接下來的工作就是專門監控這個進程。
五、對“spoclsv.exe”注冊表監控分析 這里需要將進程名為“spoclsv.exe”的進程加入篩選器進行分析。一般來說,病毒所產生的操作會比較多,所以我這里為了便于討論,我每次只會列出幾項操作進行顯示,其它的操作就由篩選器排除掉。首先可以查看一下“Reg*Value”這個操作:
可見病毒程序將當時幾乎所有的安全類工具的自啟動項給刪除了,就有: 病毒行為3:刪除安全類軟件在注冊表中的啟動項。然后只保留“Reg*Key”與“RegSetValue”
可見,病毒程序為自身創建了自啟動項,使得每次啟動計算機就會執行自身,則有:
病毒行為4:在注冊表“HKCUSoftwareMicrosoftWindowsCurrentVersionRun”中創建“svcshare”,用于在開機時啟動位于“C:WINDOWSsystem32driversspoclsv.exe”的病毒程序。對注冊表的這個位置進行設置,能夠實現文件的隱藏。此處進行設置后,即便在“文件夾選項”中選擇“顯示所有文件和文件夾”,也無法顯示隱藏文件,則有:
病毒行為5:修改注冊表,使得隱藏文件無法通過普通的設置進行顯示,該位置為:HKLMSOFTWAREMicrosoftWindowsCurrentVersionExplorerAdvancedFolderHiddenSHOWALL,病毒將CheckedValue的鍵值設置為了0。至此,注冊表部分就基本分析完畢了。
六、對“spoclsv.exe”文件監控分析
文件的監控,主要看的是病毒是否將自己復制到其他目錄,或者創建刪除了哪些文件等,監控如下所示:
圖二在圖中可以看到,病毒文件在“C:WINDOWSsystem32drivers”中創建了“spoclsv.exe”這個文件,在C盤根目錄下創建了“setup.exe”與“autorun.inf”,并且在一些目錄中創建了“Desktop_.ini”這個文件。由于創建這些文件之后就對注冊表的SHOWALL項進行了設置,使得隱藏文件無法顯示,那么有理由相信,所創建出來的這些文件的屬性都是“隱藏”的,于是有:
病毒行為6:將自身拷貝到根目錄,并命名為“setup.exe”,同時創建“autorun.inf”用于病毒的啟動,這兩個文件的屬性都是“隱藏”。
病毒行為7:在一些目錄中創建名為“Desktop_.ini”的隱藏文件。
七、對“spoclsv.exe”網絡監控分析
現在只進行網絡監控,來查看病毒是否有聯網動作:從監控結果可以看到,病毒會向“124.16.31.148”發送并接收信息,并不斷嘗試連接“10.0.2.X”即局域網中的其它計算機,于是有:
病毒行為8:向外發包,連接局域網中其他機器。
八、小結
至此,我們已總結出病毒的8點行為,在分析的過程中,我基本上是一語帶過,主要是因為病毒比較簡單,加上它在Process Monitor面前也是無所遁形。但是請大家注意,以上8點不代表就是病毒的所有行為,因為更加詳細的結論是要通過逆向分析才能得出的。而通過上述的分析結果,我們就可以著手專殺工具的編寫了,這將會在*文章中詳述。
一、前言
為了分析“熊貓燒香”病毒的行為,我這里使用的是Process Monitor v3.10版。
行為分析的目的,是為了編寫出病毒的專殺程序。當然,由于現實環境的種種限制,可能無法發現病毒的所有行為,這些我都會在文章中進行說明。
二、對“熊貓燒香.exe”進程樹的監控分析
這里我將病毒和Process Monitor v3.10復制到之前配置好的虛擬機中,并做好備份。然后先打開Process Monitor,在篩選條件中將“熊貓燒香.exe”加入到篩選器的“Process Name”中,然后運行病毒,在進程樹中可以發現,“熊貓燒香.exe”衍生出了“spoclsv.exe”。衍生出的進程又打開了兩次“cmd.exe”。第一次運行的命令是“cmd.exe /c net share C$ /del /y”,它的意思是在命令行模式下刪除C盤的網絡共享,執行完后關閉cmd.exe。因為我的系統只有一個C盤,因此有理由相信,這個病毒應該是會關閉系統中所有的盤的網絡共享。第二次運行的命令是“cmd.exe /c net share admin$ /del /y”,這里取消的是系統根目錄的共享。那么由此就可以總結出病毒的兩點行為:
病毒行為1:病毒本身創建了名為“spoclsv.exe”的進程,該進程文件的路徑為“C:WINDOWSsystem32driversspoclsv.exe”。
病毒行為2:在命令行模式下使用net share命令來取消系統中的共享。
三、對“熊貓燒香.exe”注冊表監控分析
對于注冊表的監控,我們發現只有一項需要注意,對注冊表的寫入 注冊表的這個位置主要用于隨機數種子的生成,僅僅依靠這條信息是無法推測病毒的行為的,所以可以認為“熊貓燒香.exe”對于注冊表沒有什么實質的影響。
四、對“熊貓燒香.exe”文件監控分析
對于文件的監控,也只有一條需要注意: 創建文件
可見,“熊貓燒香.exe”在“C:WINDOWSsystem32drivers”中創建了“spoclsv.exe”,其它再無可疑操作,那么可以認為,這個病毒真正的破壞部分是由“spoclsv.exe”實現的,那么接下來的工作就是專門監控這個進程。
五、對“spoclsv.exe”注冊表監控分析
這里需要將進程名為“spoclsv.exe”的進程加入篩選器進行分析。一般來說,病毒所產生的操作會比較多,所以我這里為了便于討論,我每次只會列出幾項操作進行顯示,其它的操作就由篩選器排除掉。首先可以查看一下“Reg*V
可見病毒程序將當時幾乎所有的安全類工具的自啟動項給刪除了,就有: 病毒行為3:刪除安全類軟件在注冊表中的啟動項。然后只保留“Reg*Key”與“RegSetValue”進行分析:
可見,病毒程序為自身創建了自啟動項,使得每次啟動計算機就會執行自身,則有:
病毒行為4:在注冊表“HKCUSoftwareMicrosoftWindowsCurrentVersionRun”中創建“svcshare”,用于在開機時啟動位于“C:WINDOWSsystem32driversspoclsv.exe”的病毒程序。接下來還有
對注冊表的這個位置進行設置,能夠實現文件的隱藏。此處進行設置后,即便在“文件夾選項”中選擇“顯示所有文件和文件夾”,也無法顯示隱藏文件,則有:
病毒行為5:修改注冊表,使得隱藏文件無法通過普通的設置進行顯示,該位置為:HKLMSOFTWAREMicrosoftWindowsCurrentVersionExplorerAdvancedFolderHiddenSHOWALL,病毒將CheckedValue的鍵值設置為了0。至此,注冊表部分就基本分析完畢了。
六、對“spoclsv.exe”文件監控分析
文件的監控,主要看的是病毒是否將自己復制到其他目錄,或者創建刪除了哪些文件等,監控如下所示:
在圖中可以看到,病毒文件在“C:WINDOWSsystem32drivers”中創建了“spoclsv.exe”這個文件,在C盤根目錄下創建了“setup.exe”與“autorun.inf”,并且在一些目錄中創建了“Desktop_.ini”這個文件。由于創建這些文件之后就對注冊表的SHOWALL項進行了設置,使得隱藏文件無法顯示,那么有理由相信,所創建出來的這些文件的屬性都是“隱藏”的,于是有:
病毒行為6:將自身拷貝到根目錄,并命名為“setup.exe”,同時創建“autorun.inf”用于病毒的啟動,這兩個文件的屬性都是“隱藏”。
病毒行為7:在一些目錄中創建名為“Desktop_.ini”的隱藏文件。
七、對“spoclsv.exe”網絡監控分析
現在只進行網絡監控,來查看病毒是否有聯網動作:
從監控結果可以看到,病毒會向“124.16.31.148”發送并接收信息,并不斷嘗試連接“10.0.2.X”即局域網中的其它計算機,于是有:
病毒行為8:向外發包,連接局域網中其他機器。
八、小結
至此,我們已總結出病毒的8點行為,在分析的過程中,我基本上是一語帶過,主要是因為病毒比較簡單,加上它在Process Monitor面前也是無所遁形。但是請大家注意,以上8點不代表就是病毒的所有行為,因為更加詳細的結論是要通過逆向分析才能得出的。而通過上述的分析結果,我們就可以著手專殺工具的編寫了,這將會在*文章中詳述。
一、前言
對病毒進行逆向分析,可以徹底弄清楚病毒的行為,從而采取更有效的針對手段。為了節省篇幅,在這里我不打算將“熊貓燒香”進行徹底的分析,只會講解一些比較重要的部分,大家只要掌握了這些思想,那么就可以處理很多的惡意程序了。一般來說,對病毒的靜態分析,我們采用的工具是IDA Pro,動態分析則采用OllyDbg。由于后者會使病毒實際運行起來,所以為了安全起見,最好在虛擬機中操作。另外,在實際分析過程中,我們可能還需要一些輔助工具,比如偵殼或脫殼程序等。為了簡單起見,這次研究的“熊貓燒香”程序并沒有加殼,但是以后我們會討論如何應對加殼或采用了其它保護手段的病毒。
二、查殼操作
逆向分析的第一步就是用查殼工具對目標程序進行查殼操作。由Delphi所編寫的代碼與VC++所編寫的代碼有所不同,最明顯的兩點區別如下:
1、函數調用時參數的傳遞不完全用棧,而是主要用寄存器,即Delphi編譯器默認以register方式傳遞函數參數。這一點與VC編譯的程序完全不同。Delphi一般將第一個參數放入eax寄存器,第二個參數放入edx,第三個參數放入ecx寄存器,其余參數按照與VC程序類似的方式壓棧。
2、棧上給局部變量分配空間的時候,棧是向下增長的,而棧上的數組、字符串、結構體等卻是向上增長的。理解這一點可以幫助識別棧上的變量。對病毒樣本進行了簡單的偵測之后,就確定了分析的方向,那么接下來就需要使用反匯編工具進行分
三、“熊貓燒香”的初步分析 這里我使用IDA Pro載入病毒樣這里最開始的兩個*調用的都是名為sub_403C98的函數,IDA Pro已經將其中第二個*上方的字符分析出來了,是一段作者感言信息。所以有理由相信,第一個*上方應該也是一段字符串,這里可以結合OD來查看一下:可見,第一個*上方的字符串就是“***武*漢*男*生*感*染*下*載*者***”,可以理解為是病毒作者信息,那么接下來就有必要分析一下病毒程序利用這兩段字符串究竟做了什么。也就是進入*的內部,即sub_403C98去研究一下:
[mw_shl_code=asm,true]CODE:00403C98 sub_403C98 proc near;CODE XREF: sub_403ED4+8j CODE:00403C98;sub_403F18+6j...CODE:00403C98 test edx, edx;對edx 進行驗證,這里的test相當于and,不同的是test只進行比較,而不會將結果保存;在edx中。由于edx保存的是病毒作者所編寫的一段字符串,因此這里的結果一定是非0的。
CODE:00403C9A jz short loc_403CC0;由于*條語句的結果是非0的,因此這條跳轉語句并不會被執行到。CODE:00403C9C mov ecx, [edx-8];利用OD進行動態分析可知,[edx-8]是將edx-8這個地址中的值取出來,賦給ecx,那么賦值
;完以后,ecx的值為0x0FFFFFFFF。CODE:00403C9F inc ecx;ecx自增1,那么ecx的值就變為了0x0,注意這個自增的運算會使得ZF的值變為1。CODE:00403CA0 jg short loc_403CBC;這里的jg表明不大于則跳轉。或者更準確地說,其跳轉條件是SF=OF且ZF=0。由于經過*步
;的運算,ZF=1,因此本跳轉不成立。CODE:00403CA2 push eax CODE:00403CA3 push edx CODE:00403CA4 mov eax, [edx-4];經過賦值后,eax中保存的值為0x20。CODE:00403CA7 * sub_403D08;結合OD在虛擬機中進行動態分析,進入一層又一層的調用可以得知,這個*主要是調用了;LocalAlloc函數,它從堆中分配大小為0xFF8的空間,函數參數uFlags=0,即
;LMEM_FIXED,意思是分配固定內存,返回值是指向一個內存對象的指針。LocalAlloc函數;如果執行成功則返回一個指向新分配的內存對象的句柄。CODE:00403CAC mov edx, eax CODE:00403CAE pop eax CODE:00403CAF push edx CODE:00403CB0 mov ecx, [eax-4] CODE:00403CB3 * sub_402650;結合OD在虛擬機中進行動態分析,這個*的主要功能是將之前保存在edx中的字符串(病;毒信息與作者感言)拷貝到上面所分分配的堆空間中。如圖5所示。CODE:00403CB8 pop edx CODE:00403CB9 pop eax CODE:00403CBA jmp short loc_403CC0[/mw_shl_code] 至此,sub_403C98分析完畢。這個函數有兩個參數,由于采用的是Delphi編譯器,因此在反匯編中,第一個參數保存在eax中,第二個參數保存在edx中。這個函數首先完成堆空間的申請,然后將edx中保存的字符串復制到新申請的空間中。這個函數在最初賦值的時候,eax的值均為0,而在執行后,eax中保存的就是新申請的堆空間中,所復制的字符串的首地址。
這里又是兩個字符串,其中第一個是“xboy”,而第二個借助于OD可以知道是一堆亂碼 之后可以借助于OD進入sub_405360內部進行動態查看,不過這里我們無需關注所有的細節,僅僅有一處循環需要注意:
[mw_shl_code=asm,true]CODE:004053D1 loc_4053D1:;CODE XREF: sub_405360+B5 j CODE:004053D1 mov eax, [ebp+var_14] CODE:004053D4 * sub_403ECC CODE:004053D9 push eax CODE:004053DA mov eax, ebx CODE:004053DC pop edx CODE:004053DD mov ecx, edx CODE:004053DF cdq CODE:004053E0 idiv ecx CODE:004053E2 mov edi, edx CODE:004053E4 inc edi CODE:004053E5 mov eax, [ebp+var_14] CODE:004053E8 movzx eax, byte ptr [eax+edi-1];每次循環逐字節取出“xboy”中的字符進行運算,注意這里首先取出的是“b”。CODE:004053ED mov ecx, 0Ah;將ecx賦值為0x0A,作為接下來除法運算的除數。CODE:004053F2 xor edx, edx;清空edx。
CODE:004053F4 div ecx;做除法運算,商保存在eax中,余數保存在edx中。CODE:004053F6 mov eax, [ebp+var_4];這里由于給eax重新賦值,說明程序實際想使用的是edx中的余數。CODE:004053F9 movzx eax, byte ptr [eax+ebx-1];每次循環逐字節取出亂碼中的字符,賦值給eax進行接下來的運算。CODE:004053FE xor edx, eax;異或運算,結果保存在edx中,也就是通過運算最終得出的字符。CODE:00405400 lea eax, [ebp+var_18] CODE:00405403 * sub_403E2C CODE:00405408 mov edx, [ebp+var_18] CODE:0040540B lea eax, [ebp+var_10] CODE:0040540E * sub_403ED4 CODE:00405413 inc ebx CODE:00405414 dec esi CODE:00405415 jnz short loc_4053D1[/mw_shl_code] 很明顯,這是一段解密代碼,利用關鍵字“xboy”將亂碼進行還原,通過OD觀察,可以得到還原后的字符串為“***武*漢*男*生*感*染*下*載*者***”。那么就可以將函數sub_405360重命名為:DecodeSt*。繼續分析:
這里第一句反匯編代碼中的[ebp-14h]所保存的就是上面經過解密后的字符串的地址,而ds:dword_40E7D4保存的是之前所分配的堆空間中所保存的字符串地址。通過OD的動態分析,我們很容易就能夠確定sub_404018函數的用途是對字符串進行比較,那么可以將其重命名為:St*Cmp。正常來說經過比對之后,二者是一致的,所以下面“相等則跳轉”就會執行,跳到loc_40CBBC處執行:
由于之前已經進行了相應的分析,并進行了重命名的工作,所以這里的代碼功能就一目了然了。首先進行解密,然后是字符串的比對。那么接下來的條件跳轉也會成立,直接來到loc_40CBE6:
這里連續使用了3個*,限于篇幅,我會在接下來的文章中再做分析。
四、小結
本文對“熊貓燒香”病毒樣本的反匯編程序的起始部分做了初步的分析。由于反匯編代碼總會出現各種調用與跳轉,所以分析時會顯得很是凌亂,可能會打消大家的積極性??梢娔嫦蚍治龉ぷ餍枰魑蛔x者的耐心與細致。耐心,需要大家沉得住氣,不斷跟蹤每一個可疑的*;細致,需要大家時刻留意寄存器中的內容,才能夠找到我們需要的信息。當然經驗也是非常重要的。成功分析出病毒功能的喜悅是不言而喻的,它也吸引著病毒分析人員不斷探索,一口氣完成工作。也希望各位讀者能夠以此作為起點,體驗到其中的樂趣。
一、前言
*篇文章講解了“熊貓燒香”病毒樣本的反匯編代碼入口處的分析,雖然尚未研究到病毒的核心部分,但其實我們后續的分析與之前的思想是一致的。而越到核心部分,可能會遇到越來越多的API函數,結合所調用函數的參數進行分析,反而有助于我們更容易地理解病毒的行為。應當將分析出的每一個*函數,改為我們能夠理解的名字,這往往也有助于對后續程序的理解。
二、病毒功能分析
*篇文章的最后,我留下了三個*沒有分析,現在進入第一個*,即sub_408024的內部查看 程序先將0x84賦值給ecx,此即為循環次數。然后使用了兩個push 0,每個push能夠開辟8個字節(32位)空間,所以這里每次能夠獲取16個字節的空間,這樣的空間一共申請ecx次。那么本段代碼的功能在于空間的申請。接下來有:
這段代碼的最后出現了sub_40277C這個函數,我們跟進后可以看到這幾句代碼: 可見sub_40277C主要是調用GetMuduleFileNameA這個API函數,而這個函數的功能就是獲取當前進程已加載模塊的文件的完整路徑,那么就可以將sub_40277C重命名為:GetFilePathAndName。獲取成功后,結合OD,可以看到如下信息:
圖4 獲取當前進程的完整路徑 接下來有:
注意第一句代碼中的[ebp+var_3B8]保存的就是圖4中所獲取的路徑地址,這個地址值賦給了eax。然后進入sub_405684分析。這個函數中有一處循環結構,是我們重點關注的對象,利用OD動態分析:
僅僅進行靜態分析,不容易明白這個循環的作用,但是結合OD單步執行,觀察寄存器中的值,就很容易明白這段代碼的功用:它利用之前獲取的文件完整路徑,從后向前以單字節為單位,不斷循環搜索,直至遇到*碼值為0x5C或0x2F或0x3A,然后便跳出循環。而0x5C所表示的是字符“”,可以知道這段程序要么是獲取文件名,要么是獲取不包含文件名的路徑。進入最后一條語句的*分析,很快就能夠發現:
可見,程序將去除了文件名的路徑拷貝到了之前申請的空間中,于是可以將sub_405684重命名為:GetFilePath。接下來有:
這三句代碼的第一句,是將上面所獲取的不帶文件名的路徑的地址賦值給eax,然后將字符串“Desktop_.ini”的地址賦給edx。然后進入sub_403ED4進行分析:
上圖中代碼的最后一個*,在分析sub_405684(GetFilePath)時遇到過,其作用是將字符串復制到指定的位置。對于這段程序來說,就是將“Desktop_.ini”這段字符復制到之前的路徑字符后面。那么可以得知,sub_403ED4的作用是字符串的連接,那么就將其重命名為:St*Cat。繼續分析:
第一句代碼是將之前所處理完畢的路徑字符串地址賦給eax,然后調用sub_4057A4函數,進入該函數可以發現:
這里調用了FindFirstFileA這個函數,說明它是在查找當前目錄下“Desktop_.ini”文件是否存在,那么sub_4057A4函數的作用就在于檢測文件是否存在,可將其改名為:CheckFileExist。接下來有:
由于有了之前的分析并進行了重命名,那么這一段代碼的作用就很明顯了,首先根據*段代碼的查找結果進行判定,即如果當前目錄下Desktop_.ini文件存在,那么就將該文件的文件屬性調整為NORMAL,接下來有: 停止1毫秒后,將Desktop_.ini刪除。
可見這個函數用于檢測待刪除的文件路徑是否為空。那么就可以將sub_4040CC重命名為:CheckPath。當然,以上分析是建立在Desktop_.ini文件存在的前提下,如果文件不存在,那么程序就會直接跳到loc_408110處執行
這里最后一句調用了sub_4078E0函數,跟進去發現這個函數較長,并且也調用了很多其它的函數,乍一看,似乎不知這個函數究竟是做了什么。既然如此,我們可以先不管其具體的實現細節,只看看該函數執行完后,我們寄存器等位置產生了什么變化,主要關注該函數執行前后,程序使用了哪些寄存器。利用OD可以很容易發現變化: 由截圖可以發現,在獲取了當前文件的路徑后,該函數利用了很大的一片區域來寫入了大量看似無意義的字符。結合右邊分析出的*碼,發現這些可以理解為是一個暴力破解字典,病毒編寫者企圖利用暴力破解的方式,來攻破計算機中的某些驗證機制。當然截圖中僅僅展示了一小部分變化,病毒還寫入了很多其它信息,有興趣的讀者可以自行查看,這里不再贅述,這有助于我們獲取病毒的行為信息。那么這里可以將sub_4078E0函數重命名為:WriteVirusInfoToMem。接下來有
這里第一句執行完后,eax的值為ebp+var_8的地址,通過OD可以知道,這個地址中保存的是0,可以理解為沒有數據。之后有一個*,我們進入查看一下:
這里首先取出eax所保存的地址中的值,也就是0,并賦給edx,那么edx保存的也就是0值。之后的test運算,使得ZF變為1,滿足跳轉條件,那么本段函數也就結束了。如果說edx所保存的不是0值,那么接下來的語句就會把eax所保存的地址中的值設為0。這么看上去,這段函數似乎并沒有實現什么特別清晰具體的功能,那么不妨將這個操作理解為某種標志的設置,將sub_403C44重命名為:SetZeroFlags。繼
結合OD可以知道,第一句是獲取文件在內存中的首地址,然后進入sub_403ECC查看: 這里需要特別強調的是,由于本病毒程序是使用Delphi編寫的,那么字符串的首地址減去4后,所取出的4個字節的內容就是此字符串的長度。也就是說,這段代碼中的[eax-4]就是eax所指向的文件長度。于是可以將sub_403ECC重命名為:GetFileLen。在獲取文件長度后,程序會跳轉到loc_408163處執行:
在獲取了文件長度后,這段代碼首先會驗證文件長度是否為0,這里由于文件真實存在,所以接下來的跳轉不成立。接下來,eax中保存的是文件起始地址,而ebx是文件的長度,于是可以知道,倒數第二句的對比,是驗證文件的尾端數據是否為0,如果為0,則接下來的跳轉不成立。經過OD的動態分析,這里文件尾端的值為0,所以不執行跳轉,繼續向下執行。
接下來代碼的分析,留給*文章。
三、小結
經過一整篇文章的討論,我并沒有將病毒的一個完整功能塊分析完全,主要是我需要講得細致些,帶領大家弄清楚每一個*的功能。接下來的最后一篇文章也無法將整個病毒分析完全,但是我相信,只要各位讀者勤于動手,并將我所講的逆向分析的基本原理搞清楚,那么這個“熊貓燒香”就根本不在話下了。
一、前言
這次我們會接著*篇的內容繼續對病毒進行分析。分析中會遇到一些不一樣的情況,畢竟之前的代碼我們只要按照流程順序一步一步往下走,就能夠弄清楚病毒的行為,但是在接下來的代碼中,如果依舊如此,在某些分支中的重要代碼就執行不到了,所以我們需要采取一些策略,走完每個分支,徹底分析出病毒的行為。
二、病毒分析
現在程序執行到了loc_408171位置處:
程序首先進行比較操作,由于二者都為0,所以在比較過后ZF=1,那么接下來的跳轉并不執行。之后的*獲取到了病毒程序所在的路徑(包含文件名),并將完整路徑名的首地址保存在eax中,注意[ebp+var_3D8]中所保存的是一個地址數值,該地址指向文件路徑字符串。而接下來賦給edx的地址,則是病毒程序完整地址向后4個字節的位置,正好跳過了兩個大寫字母和兩個符號。接下來進入sub_40532C進行查看,可以發現:
這里的CharUpperBuff函數的作用是把緩沖區中指定數目的字符轉為大寫。于是可以將sub_40532C重命名為:ToUpper。接下來有: 這里出現了sub_4054BC函數,跟進查看可以發現
這里的GetSystemDirectory函數的作用在于獲取系統路徑,于是可以將sub_4054BC重命名為:GetSystemDir。可見以上這幾個函數分析得還是比較順利的,因為病毒直接調用了API函數,讓我們對于程序的功能一目了然。接下來程序首先將剛才獲取的系統路徑字符串的首地址入棧,然后分別壓入“drivers”與“spoclsv.exe”這兩個字符串,之后利用OD對sub_403F8C進行分析,執行完后可以發現:
由此可見,sub_403F8C的作用是將兩個字符串與另一個字符串連接起來,從而組成一個長路徑,所以可以將其重命名為:TwoSt*sCat。接下來是:結合OD動態分析可知,這段程序首先將之前連接好的路徑字符串轉換為大寫字母,然后將該字符串與之前所轉換的病毒程序路徑的大寫字符串作對比操作,這里執行時,二者是不同的,所以接下來的跳轉不成立(如果想要理解這里為什么要利用比對的操作,可以結合之前文章中對于病毒的行為分析,病毒會將自身改名為“spoclsv.exe”,并復制到“drivers”目錄中,這里的對比就是要確認病毒到底有沒有被復制到該目錄下,如果沒有,即對比結果不為零,那么就執行接下來的病毒復制操作)。dword_408658中保存的是字符串“spoclsv.exe”,然后可以進入sub_4060D4中進行分析。sub_4060D4這個函數也是比較長,內部有眾多的*,一個一個*進行查看,可以發現它調用了非常多的API函數,依據這些API函數的功能可以知道,sub_4060D4的作用在于查找當前內存中的指定進程,若存在,則將其終止。由于較長,這里就不進行截圖分析了。于是可以將sub_4060D4重命名為:SearchAndTerminateProcess。接下來有:這段代碼已經有了足夠的注釋,就不再贅述。接下來還有:由最后一句的CopyFile函數可以知道,這里主要是實現文件的拷貝操作,也就是將本病毒文件改名為“spoclsv.exe”后,復制到“drivers”目錄中。這段代碼調用了Win*函數,查看它上面的eax中所保存的字符信息可以發現,當病毒本體將自身復制到“drivers”中并改名后,這里就是對改了名字的病毒程序執行運行的操作,然后主體程序就退出了。至此,如果想繼續用OD進行動態分析,要么載入“spoclsv.exe”,要么對之前的一處條件跳轉進行修改,令程序以為自己就是“spoclsv.exe”。該位置就是圖7中的0x004081E8,我們先在該位置*個斷點,然后用OD重新載入本程序,令其停在斷點處。正常來說,這里的跳轉是不成立的,為了使其成立,當然可以將jz改為jnz,但是這改變了病毒程序。最好的辦法是改變ZF標志位,將原來的0改為1就可以了。但是,經過了之前的行為分析可以知道,真正實現病毒功能的,可以說就是“spoclsv.exe”這個程序,雖說這個程序和“熊貓燒香.exe”是完全一樣的,可是畢竟其內部的執行流程是不同的。為了得到病毒完整的資料,這里我利用OD載入“spoclsv.exe”進行動態分析。那么0x004081E8處的跳轉得以執行,一段代碼出現了sub_40416C這個函數,它也是比較抽象,不太容易分析,這需要耐心與細致,在此我將過程省略。其實這個函數的功能是刪除字符串中的信息,其中eax保存的是欲操作字符串的地址,ecx保存的是欲刪除的字符的個數。那么就將sub_40416C重命名為:*St*Buff。然后程序跳轉到loc_4085D3:
在*函數之上,eax保存的是一個標記數值,這里為0x01。之后的*就是查找文件中是否包含有這個標記,如果包含有這個標記,那么就執行跳轉,否則不跳轉。由此我們可以假設,這個0x01標記應該就是病毒將程序感染后,在原本正常的程序中添加的,用于標識該程序是否被感染的標記。如果真是這樣的話,若想分析跳轉后的程序內容,要么在OD中修改標志位,要么對一個被感染的程序進行分析,這里我不再贅述,有興趣的讀者可以拿一個被感染的程序自行分析。這里可以將sub_4041B4重命名為:SearchSignPos。
由于我現在分析的是病毒程序,他自身沒有0x01標志位,因此跳轉不成立,繼續執行。一部分的代碼主要用于收尾工作,最后的*用于刪除堆棧中所保存的地址,這些地址指向的是病毒寫入的一些信息。這部分代碼返回后,那么sub_408024就執行完了。可能大家已經不記得sub_408024是什么了,這個就是我在本逆向分析系列的上篇的最后,所分析出的病毒三大功能的第一項功能。分析至此,可見這第一項功能主要用于病毒的初始化工作。余下的兩大功能我在此就不進行分析,有興趣的讀者可以獨立研究試試看。
三、小結 至此,熊貓燒香病毒的逆向分析系列就結束了,我用了三篇文章的篇幅來一步一步地給大家做了較為詳盡的分析。盡管只分析了病毒的一項大功能,但是我相信大家或多或少地了解到了病毒逆向分析的基本方法。在我看來,這里面并沒有多高深的技術,重要的是經驗的積累以及個人的耐心的培養。希望各位讀者能夠踏踏實實地將這個病毒親自動手分析完全,相信這會令大家的收獲巨大。
一、前言
之前用了六篇文章的篇幅,分別從手動查殺、行為分析、專殺工具的編寫以及逆向分析等方面,對“熊貓燒香”病毒的查殺方式做了討論。相信大家已經從中獲取了自己想要的知識,希望大家在閱讀完這幾篇文章后,能夠有一種“病毒也不過如此”的感覺,更希望這些文章能夠為有志于在未來參與到反病毒工作的朋友,打下堅實的理論基礎。以下就是我在這幾篇文章的分析中所總結出來的一些知識點,分為靜態分析與動態分析兩個方面進行討論,并加入了一些延伸知識,為大家查漏補缺。
二、病毒的靜態分析
靜態分析技術通常是研究惡意代碼的第一步。靜態分析指的是分析程序指令與結構來確定目標程序的功能的過程。在這個時候,病毒本身并不在運行狀態。我們一般采用以下幾種方式進行靜態分析:
1、采用反病毒引擎掃描
如果尚不確定目標程序是否為病毒程序,我們可以首先采用多個不同的反病毒軟件來掃描一下這個文件,看是否有哪個引擎能夠識別它。當然殺軟也存在著誤報的可能性,但如果說多款殺軟都認為目標程序有問題,那么這個程序十有八九就是一個惡意程序了。
2、計算哈希值
哈希是一種用來唯一標識目標程序的常用方法。目標程序通過一個哈希程序,會產生出一段唯一的用于標識這個樣本的哈希值,我們可以將這個值理解為是目標程序的指紋。常用的哈希算法有MD5、Sha-1以及CRC32等。由于僅僅采用一種算法,特別是MD5算法,有可能使得不同程序產生同樣的哈希結果,所以為了謹慎起見,一般會運用多種哈希方式進行計算,比如“火眼”(https://fireeye.ijinshan.com/)的檢測結果中就包含了計算出的哈希值
哈希運算的結果在病毒大規模爆發時可以快速響應,成為檢測病毒的一種方式。我在《病毒木馬查殺第004篇:熊貓燒香之專殺工具的編寫》那篇文章中就采用了CRC32算法來驗證目標
查找字符串
程序中的字符串就是一串可打印的字符序列,一個程序通常都會包含一些字符串,比如打印輸出信息、連接的*,或者是程序所調用的API函數等。從字符串中進行搜索是獲取程序功能提示的一種簡單方法。這里我使用微軟推出的St*s程序(http://technet.microsoft.com/en-us/sysinternals/bb897439.aspx),來搜索可執行文件中的可打印字符串。將St*s與病毒樣本都拷貝到C盤根目錄下,然后在CMD中輸入: C: >St*s setup.exe 得到的部分結果
由結果可見,并不是所有的字符串都是有意義的,但是利用這個結果,也能夠給我們的靜態分析帶來很大的便利了。比如“*DownloadToFile”這個API函數就經常被惡意程序用來執行文件的下載操作,該函數需要*MON.DLL動態鏈接庫的支持,在上述截圖中也有所體現。
4、偵殼操作
病毒木馬編寫者經常會使用加殼技術來讓他們的惡意程序難以被檢測或分析。正常的程序總是會包含很多字符串。而加了殼的惡意代碼通過分析所得到的可打印字符串就會很少。如果使用St*s程序來檢測一個程序,發現它的字符串很少時,那么這個程序就很有可能是加了殼的。此時往往就需要使用其它方法來進一步檢測它們的行為。
對于這次的研究對象“熊貓燒香”來說,使用了PEiD這一款靜態分析工具,用于檢測目標程序是否有殼以及由什么軟件編寫的。因為如果病毒樣本有殼,那么就一定要先脫殼才可以進行分析。而弄清楚了病毒是由什么軟件編寫的,我們就能夠確定其函數調用方式以及棧的分配方式等特點,從而更好地進行分析。比如我的“熊貓燒香”樣本是由Delphi編寫的,如果我們不懂Delphi編譯器的特性,依舊以C++的眼光來看待它,那么很可能會給接下來的分析工作帶來困擾。
5、偵測動態鏈接
在對病毒木馬進行分析的過程中,我們一定要關注目標程序中的動態鏈接,因為這些信息有助于我們猜測目標程序到底干了什么事情。Dependency Walker這款工具(http://www.tmdps.cn/)就是我們常用的用于偵測動態鏈接的軟件。比如我們用它來檢測“熊貓燒香”:
可見Dependency Walker很清晰地指出了“熊貓燒香”使用了*MON.DLL中的“*DownloadToFile”這個API函數。有經驗的反病毒工程師,利用這款軟件往往就能將惡意代碼的大概功能基本分析完全了。
6、PE分析
對于目標程序PE結構的分析,往往可以使我們獲取更多的信息。常用的工具有PEview和Resource Hacker等。由于PE的分析較為復雜,所以這里不再詳述。有興趣的讀者可以參考相應的PE類資料。
7、使用IDA Pro進行高級靜態分析
IDAPro這款軟件可以說是所有反病毒工程師的首選,我在對“熊貓燒香”病毒樣本進行靜態逆向分析時,使用的就是這款軟件。相信大家在之前的三篇文章中,已經深有體會。它除了能夠反匯編整個程序以外還能執行查找函數、棧分析、本地變量標識等任務。而且IDA Pro生來就是交互式的,其反匯編過程的所有屬性都可以被修改、操作、重新安排或重新定義。而我們在實際分析的過程中,也應當及時地將已分析出的內容進行重命名或進行標注。我在分析的過程中全都是在文本模式下進行分析的,其實我覺得這款軟件很好的一點是它能夠以圖形化的界面來為用戶揭示程序的整個執行流程,可見,圖形模式會給我們的分析工作帶來更加直觀化的體驗。當然這款軟件還有很多十分強大的功能,我會在未來的分析中,給大家一一展示。
三、病毒的動態分析
所謂動態分析就是在運行惡意代碼之后進行檢查的過程,它能夠讓你觀察到惡意代碼的真實功能。雖然動態分析技術非常強大,但是它們還是應該在靜態分析之后進行,并且應該在虛擬的環境中進行。一般有以下幾種方式:
1、使用沙箱
現在有很多自動化的軟件可以用來對病毒進行基本的動態分析,最常用的就是沙箱技術。沙箱是一種在安全環境里運行可疑程序的一種分析方法,從而無需擔心傷害到我們真實的系統。有些安全類企業也在線提供了這樣的服務,比如“火眼”(https://fireeye.ijinshan.com/),可見“火眼”已經較為全面地揭示了病毒樣本的行為,這對我們*步的分析很有幫助。不過,沙箱也存在著很多缺點,比如,如果我們分析的是一個后門程序,需要等待一條控制指令才會啟動特定的行為,那么在沙箱中這個后門程序就無法被徹底分析了。而且沙箱也不能記錄所有事件,因為如果惡意代碼將自己設置為等待一天甚至更長的時間才去執行自己的行為,那么沙箱往往就無能為力了。諸如此類的缺點還有很多,但不管怎樣,沙箱都是我們在反病毒工作中不可或缺的利器。
2、行為監控
Process Monitor可以說是在反病毒領域最為常用的軟件了。我在《病毒木馬查殺第003篇:熊貓燒香之行為分析》中所使用的就是它,而且在以后的分析中,還會經常使用。Process Monitor一旦開始運行,它就會監控所有能夠捕獲的系統調用,但并不是所有的數據都能捕獲。所以往往也需要多款軟件的同時使用,才能夠獲取惡意程序的完整行為。比如我們經常使用Process Explorer來查看進程,使用Regshot來比較注冊表在病毒運行前后所發生的變化,利用Netcat進行網絡監視等。每款軟件都有各自的優點,我們在實際分析中要善于利用。
3、動態調試
使用調試器對病毒進行分析在反病毒工作中扮演著十分重要的角色。調試器允許你查看任意內存地址的內容、寄存器的內容以及每個函數的參數。調試器也允許你在任意時刻改變關于程序執行的任何東西。比如你可以在任意時刻改變一個變量的值——前提是你需要獲得關于這個變量足夠的信息,包括在內存中的位置。在實際的動態調試過程中,我們最常用的是OllyDbg和WinDbg,前者是病毒分析人員使用最多的調試器,缺點是不支持內核調試,如果想調試內核,WinDbg基本上就是唯一的選擇了。雖然IDA Pro也能夠進行動態調試,但是它遠遠不如OD方便。因此在實際分析的過程中,往往是將二者結合使用的。因為如果用IDA Pro在靜態分析中遇到了十分抽象的函數,那么用OD動態地執行一下,該函數的功能往往就能一目了然了。
四、病毒分析的幾點補充
我們在病毒分析的過程中,不要過于陷入細節。大多數病毒木馬程序是龐大而復雜的,你不可能也沒有必要去了解每一個細節。真正需要關注的是惡意程序最關鍵最主要的功能。在實際分析過程中,當遇到了一些困難和復雜的代碼段后,應當在進入到細節之前有一個概要性的了解。另外,在面對不同的工作任務中,應當善于使用不同的工具和方法。不存在通吃的做法。如果在一個點上被卡住了,不要花太長的時間在這個問題上,嘗試轉移到其他問題,嘗試從不同的角度進行分析。最后,病毒的分析工作就如同貓捉老鼠的游戲,正所謂道高一尺魔高一丈,惡意代碼分析技術與惡意代碼編寫技術是對立統一的,二者都在不斷地相互促進并發展著。所以我們應當能夠認識、理解和戰勝這些不斷涌現的新技術,并能夠快速適應這個領域中的新的變化。也就只有這樣,才能夠在這個領域有所成就。
第二篇:常見木馬病毒速查表
常見木馬病毒速查表.txt25愛是一盞燈,黑暗中照亮前行的遠方;愛是一首詩,冰冷中溫暖渴求的心房;愛是夏日的風,是冬日的陽,是春日的雨,是秋日的果。
常見木馬病毒速查表常見木馬病毒速查表
文章轉自: 陪你醉生夢死
exe→BF EvolutionMbbmanager.exe→聰明基因
_.exe→TryitMdm.exe1.6-1.7
Aboutagirl.exe→初戀情人Microsoft.exe密碼使者
Absr.exe→Backdoor.AutoupderMmc.exeAplica32.exe→將死者病毒Mprdll.exeAvconsol.exe→ 將死者病毒Msabel32.exeAvp.exe→將死者病毒Msblast.exe病毒
Avp32.exe→將死者病毒Mschv.exeAvpcc.exe→將死者病毒Msgsrv36.exeAvpm.exe→將死者病毒Msgsvc.exeAvserve.exe→震蕩波病毒Msgsvr16.exeShiver
Bbeagle.exe→惡鷹蠕蟲病毒Msie5.exeBrainspy.exe→BrainSpy vBetaBackdoor.livup
Cfiadmin.exe→將死者病毒Mstesk.exe1.1-1.5
Cfiaudit.exe→將死者病毒Netip.exe2000 Beta
Cfinet32.exe→將死者病毒Netspy.exe靈
Checkdll.exe→網絡公牛Notpa.exeCmctl32.exe→Back Construction Telecommando
Command.exe→AOL TrojanPcfwallicon.exe死者病毒
Diagcfg.exe→廣外女生Pcx.exeDkbdll.exe→Der SpaeherPw32.exe毒
Dllclient.exe→BoboRecycle-Bin.exes**tHeap
Dvldr32.exe→口令病毒Regscan.exe→Doly →傳奇→尼姆達病毒→Bla→ Cain and Abel→沖擊波→Control→Coma→火鳳凰→Acid →CanassonMsstart.exe→→Doly →Spirit →網絡精→BackdoorOdbc.exe→→將→Xplorer→將死者病→→波特后
門變種
Esafe.exe→將死者病毒Tftp.exe→尼姆達病毒
Expiorer.exe→Acid BatteryThing.exe→ThingFeweb.exe→將死者病毒User.exe→Schwindler
Flcss.exe→Funlove病毒Vp32.exe→將死者病毒
Frw.exe→將死者病毒Vpcc.exe→將死者病毒
Icload95.exe→將死者病毒Vpm.exe→將死者病毒Icloadnt.exe→將死者病毒Vsecomr.exe→將死者病毒
Icmon.exe→將死者病毒Server.exe→Revenger, WinCrash, YAT
Icsupp95.exe→將死者病毒Service.exe→TrinooIexplore.exe→惡郵差病毒Setup.exe→密碼病毒或Xanadu
Rpcsrv.exe→惡郵差病毒Sockets.exe→Vampire
Rundll.exe→SCKISS愛情森林Something.exe→BladeRunner
Rundll32.exe→狩獵者病毒Spfw.exe→瑞波變種PXRunouce.exe→中國黑客病毒Svchost.exe(線程105)→藍色代碼
Scanrew.exe→傳奇終結者Sysedit32.exe→SCKISS愛情森林
Scvhost.exe→安哥病毒Sy***plor.exe→wCrat
Server 1.2.exe→Spirit 2000 1.2fixed Sy***plr.exe→冰河Intel.exe→傳奇叛逆Syshelp.exe→惡郵差病毒
Internet.exe→傳奇幽靈Sysprot.exe→Satans Back Door
Internet.exe→網絡神偷Sysrunt.exe→RipperKernel16.exe→Transmission ScountSystem.exe→s**tHeap
Kernel32.exe→壞透了或冰河System32.exe→DeepThroat 1.0
Kiss.exe→傳奇天使Systray.exe→DeepThroat 2.0-3.1
Krn132.exe→求職信病毒Syswindow.exe→Trojan Cow
Libupdate.exe→BioNetTask_Bar.exe→WebEx
Load.exe→尼姆達病毒Taskbar→密碼病毒 Frethem
Lockdown2000.exe→將死者病毒Taskmon.exe→諾維格蠕蟲病毒
Taskmon32→傳奇黑眼睛Tds2-98.exe→將死者病毒
Tds2-Nt.exe→將死者病毒Temp $01.exe→SnidTempinetb00st.exe→ The UnexplainedTempserver.exe→Delta Source
Vshwin32.exe→將死者病毒Vsstart.exe病毒
Vw32.exe→將死者病毒Windown.exe2000 1.2
Windows.exe→黑洞2000Winfunctions.exeDark Shadow
Wingate.exe→惡郵差病毒Wink.exe信病毒
Winl0g0n.exe→笑哈哈病毒Winmgm32.exe霸病毒
Winmsg32.exe→XtcpChupachbra
Winprotecte.exe→StealthWinrpc.exe病毒
Winrpcsrv.exe→惡郵差病毒Softwarst
Wubsys.exe→傳奇獵手Sckiss愛情森林
Winver.exe→Sckiss愛情森林Winvnc.exe病毒
Winzip.exe→ShadowPhyreWqk.exeWscan.exe→AttackFTPXx.Tmp.exe病毒
Zcn32.exe→AmbushZonealarm.exe者病
Powered by 無名小鬼 wumingxiaogui.blog.163.com
→將死者→Spirit →→求職→巨無Winprot.exe→→惡郵差Winserv.exe→Winupdate.exe→→惡郵差→求職信病毒→尼姆達→將死
第三篇:病毒查殺分析報告
東營市醫藥公司和扣分公司
病毒查殺分析報告
2013本企業計算機網絡系統未發生重大病毒感染情況,計算機系統運行正常。
信息科
2014年1月6日
第四篇:防范局域網ARP欺騙,手動查殺木馬,介紹和認識IP地址
解決和防患局域網內Arp欺騙
當局域網種存再ARP欺騙包的話,總的來說有主要又這么兩種可能。
一、有人惡意破壞網絡。
這種事情,一般會出現在網吧,或是一些人為了找到更好的網吧上網座位,強行讓別人斷線。
又或是通過ARP欺騙偷取內網帳號密碼。
二,病毒木馬
如:傳奇網吧殺手等,通過ARP欺騙網絡內的機器,假冒網關。從而偷取對外連接傳奇服務器的密碼。
ARP欺騙的原理如下:
假設這樣一個網絡,一個交換機接了3臺機器
HostA HostB HostC 其中
A的地址為:IP:192.168.1.1 MAC: AA-AA-AA-AA-AA-AA---------網關B的地址為:IP:192.168.1.2 MAC: BB-BB-BB-BB-BB-BB--------黑客C的地址為:IP:192.168.1.3 MAC: CC-CC-CC-CC-CC-CC---------被欺騙者
正常情況下 C:arp-a
Interface: 192.168.1.3 on Interface 0x100000
3Internet Address Physical Address Type
192.168.1.1 BB-BB-BB-BB-BB-BBdynamic
現在假設HostB開始了罪惡的ARP欺騙:假冒A像c發送ARP欺騙包
B向C發送一個自己偽造的ARP欺騙包,而這個應答中的數據為發送方IP地址是192.168.1.1(網關的IP地址),MAC地址是BB-BB-BB-BB-BB-BB(A的MAC地址本來應該是AA-AA-AA-AA-AA-AA,這里被偽造了)。當C接收到B偽造的ARP應答,就會更新
本地的ARP緩存(C可不知道被偽造了)。而且C不知道其實是從B發送過來的,這樣C就受到了B的欺騙了,凡是發往A的數據就會發往B,這時候那么是比較可怕的,你的上網數據都會先流向B,在通過B去上網,如果這時候B上裝了SNIFFER軟件,那么你的所有出去的密碼都將被截獲。
為了以后出現問題的時候好查找,我建議大家平時建立一個MAC和IP的對應表,把局域網內所有網卡的MAC地址和IP、地理位置統統裝入數據庫,以便當以后發現ARP 欺騙時找出欺騙者的機器。
二、防范措施和解決方法。
方法一
通過arp –s 來綁定網關的MAC 地址和IP 地址。
這種方法對于XP 和2003系統是有用的,使用arp –s 來綁定的話。那么在ARP表中顯示的是一條靜態的記錄。
這樣就不會被動態的ARP 欺騙包給欺騙,而修改。
那么在2000的系統上也是可以使用arp-s來進行綁定得,在SP4的2000系統上需要下載2000 Rollup v2更新補丁包,ARP的補丁已經包含在里面 了,大小應該在38MB那樣。http://download.microsoft.com/download/7/e/9/7e969f31-e33d-45a2-9d1a-fecbcde29a0e/Windows2000-KB891861-v2-x86-CHS.EXE
并且裝好后,下面幾個文件不能小于下面的版本號。
DateTimeVersionSizeFile name
-------------------------
19-Jun-200320:055.0.2195.6602108,816Msafd.dll
02-Jun-200422:445.0.2195.6938318,832Tcpip.sys
19-Jun-200320:055.0.2195.660117,680Wshtcpip.dll
19-Jun-200320:055.0.2195.6687120,240Afd.sys
19-Jun-200320:055.0.2195.665516,240Tdi.sys
相關文章,大家可以看微軟的KB.http://support.microsoft.com/kb/842168
例:arp-s192.168.1.1 00-0B-AD-DD-22-35
方法二
有些木馬或是一些駭客總是使用本地網卡上的網關來做欺騙。網關是通往外網或是和不同網絡互聯的一個中間設備。
而通過添加路由表中的記錄,設置優先級高于網關默認路由,那么網關的路由在級別高的路由可用時將不會生效。
施行方法:1.先手動修改客戶機的網關地址為任意ip地址,最好是同一網段中,沒使用的一個IP,以免被懷疑。
2.手動添加或是通過批處理,或是腳本來添加永久對出口路由。
此中方法可以欺騙過大部份,菜鳥或是所謂的駭客和大部份ARP欺騙木馬。
缺點是: 如果以后網關以后網卡或是機器改變。那么以后還得重新修改已有得路由。route delete 0.0.0.0-----刪除到默認得路由
route add 0.0.0.0 mask 0.0.0.0 192.168.1.254 metric 1--- 添加路由route add-p 0.0.0.0 mask 0.0.0.0 192.168.1.254 metric 1------參數-p 就是添加永久的記錄。
route change--修改路由
http:///dispbbs.asp?BoardID=33&ID=2631&replyID=6840&skin=1方法 三
1.如果你但前使用得交換機器有網卡和MAC地址綁定功能,那么將你所在得網得IP地址和MAC 地址進行綁定。
但有時候,我們可能沒有這些設備那么要想做就很困難了。
另類方法思路--如何全面解決讓ARP欺騙,ARP木馬無法在本機器安裝,運行。
大部分監控,arp 欺騙軟件,都會使用到一個winpcap驅動。那么現在的思路就是讓其無法在本地計算機安裝。
這樣arp欺騙軟件就無法被使用了使用了,此方法可以用于任何程序的安裝。需要的條件:
1.所在的系統盤為NTFS 分區格式。
2.知道所要安裝的文件所要在系統中生成的文件。
3.使用注冊表和文件安裝監視軟件來監視安裝所生成的文件。
方法四:
利用些別人做好的ARP 監控工具。
實驗:
作業:
1.使用arp-s 來添加一條arp靜態記錄,使用arp-a 查看添加的記錄。使用arp-d 來刪除剛添加的那條記錄
2.使用route print 來查看現有的路由表,使用route add-p 來添加一條永久記錄,最后使用route delete來刪除剛建的那條記錄。
3.使用組策略禁止本地系統中的記事本程序。
4.利用注冊表和文件安裝監視軟件,來查找組策略中設置后,對注冊表中鍵值的修改。并通過修改注冊表,禁止記事本軟件(notepad.exe)的執行。
第五篇:個人總結
2016年個人工作總結
時光的車輪無情的碾壓過生活的軌跡,轉眼間2016即將過去,迎來嶄新的2017。回想這一年的工作,感受頗多,有成功,有失誤,每一次成功都是成長,每一次失誤都是經歷。通過工作中的不斷實踐,我對本職工作有了更深刻的認識,了解了出納崗位的各種工作制度以及日常工作流程,出納工作雖簡單,但繁瑣,對工作質量要求極高,不容許出一點點的差錯,每項工作都必須準確、耐心的完成。想要做好出納工作還必須嚴格遵守并執行公司的有關財務制度,認真貫徹和執行國家有關財經的各項法律法規、方針政策,堅持理論與實踐相結合。
現將2016年工作總結列示如下:
一、工作總結
1.嚴格按照公司的財務管理制度進行資金的把關,杜絕公司的資金流失。
2.嚴格保證現金的安全,每天核對庫存現金與現金日記賬余額是否相符,防止收付差錯,確保現金收支的準確無誤,及時登記現金日記賬,做到日清月結。
3.每日終了,核對銀行存款余額與銀行日記賬余額是否相符,月底堅持網銀對賬,以保證資金收付的準確無誤。
4.嚴格執行借款手續,對于有關業務需要借支的備用金,限定還款期限為3個月,嚴格把控還款期限,對于逾期未歸還者及時提醒,并要求其作出詳細說明。
5.堅持以財務的規章制度為準,嚴格審核(報銷憑證上必須有經辦人及相關領導的簽字才能給予報銷),對不符合報銷手續的憑證堅決不予支付。
6.及時打印銀行以及稅務系統的各種支付回單,并找領導簽字確認。
7.堅持完成月底的結賬工作,作出相關財務報表,并完成報稅工作。
8.積極完成領導交辦的其他工作。
二、培訓經歷 1.“營改增”培訓
眾所周知,自2016年5月1日起,在全國范圍內全面推開營業稅改征增值稅試點,全面實行營改增,有利地支持了服務業發展和制造業的轉型升級,另外,將不動產納入抵扣范圍,比較完整的實現了規范的消費型增值稅制度,有利于擴大企業投資,增強了企業的經營活力。一些制造業在獲取服務的同時,也獲得了進項增值稅抵扣,降低了企業稅負。通過參加營改增的培訓,對于國家政策有了更深層次的解讀,對于營改增的抵扣范圍以及注意事項也有了更多的了解,有助于更好的完成日常工作,使自己能夠積極適應當前發展的大環境,與時俱進。
2.“一諾365”開票軟件的升級培訓
企業的發展需要與時俱進,而相應配套設施也應及時的完成升級,以適應不斷發展的企業需要。通過對開票軟件的升級,實現了增值稅專用發票、普通發票、貨運增值稅專用發票、機動車統一銷售發票的統一管理,實現了增值稅管理模式的根本性變革。四類發票的全覆蓋、發票數據信息的全面集中,有效的解決了虛假發票泛濫的問題,為建立全國統一的發票真偽查驗平臺提供了保障。開票軟件的有效升級,將“營改增”納稅人全部納入增值稅規范管理的軌道,既為“營改增”保駕護航,也將作為一項重大的信息技術配套支撐系統,保障稅制改革的運行。
3.增值稅發票的認證培訓
根據《國家稅務總局關于納稅信用A級納稅人取消增值稅發票認證有關問題的公告》以及《國家稅務總局關于全面推開營業稅改征增值稅試點有關稅收征收管理事項的公告》,河北航天信息就有關增值稅發票抵扣問題進行了相關培訓。通過培訓,用戶可以直接通過認證系統的“發票勾選”或“批量勾選”模塊,對稅款所屬期內需要抵扣(或退稅)的發票進行勾選認證處理;摒棄了之前使用的掃描認證方法,抵扣方法的升級,節省了之前掃描發票耗費的時間,更進一步提高了工作效率,還可以實時通過抵扣統計模塊查詢當期已認證的所有發票數據,保證了納稅人當期申報代扣數據的真實完整。.三、經驗教訓
1.日常工作中,對相關的政策法規還需要更進一步的了解,積極關注國家對于財經方面的新規定,新政策,只有這樣,才更有利于做好日常工作。
2.在細節方面完善自己,更加嚴格的要求自己,認真的完成各項工作。
3.更加注重學習,在理論知識方面更加進步,認真堅持理論與實踐相結合,不斷在工作中吸取教訓,提高自己的業務水平和解決問題的能力,進一步提高工作效率。
4.積極把握更多的學習機會,積極參加稅務部門以及各財政部門組織的相關培訓,不斷的充實自己,完善自己。
新的一年意味著新的起點、新的機遇、新的挑戰,在以后的工作和學習中我將更加努力的拼搏,逆流而上,揚長避短,克服自身缺點,找準工作的突破口,更好的完成本職工作。在此,我更應該感謝各位領導及同事們對我的關心和幫助。我相信,在新的一年里一定會更加進步,不會辜負領導的期望,為公司貢獻自己的一份微薄之力!