問題 | 回答 |
---|---|
這個做業屬於哪一個課程 | https://edu.cnblogs.com/campus/besti/19attackdefense |
這個做業的要求在哪裏 | https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10695 |
我在這個課程的目標是 | 學習教材第九章,瞭解惡意代碼的相關知識 |
這個做業在哪一個具體方面幫助我實現目標 | 相關知識點和實踐任務 |
惡意代碼定義:惡意代碼 (Malware,或 Malicious Code) 指的是使計算機按照攻擊者的意圖執行以達到惡意目標的指令集。php
惡意代碼類型:惡意代碼能夠根據其執行方式、傳播方式和對攻擊目標的影響分爲計算機病毒、蠕蟲、惡意移動代碼、特洛伊木馬、後門、殭屍程序、內核套件等。
html
惡意代碼的命名規則與分類體系:反病毒業界廣泛採用 「 三元組命名 」 規則來對所發現的惡意代碼新樣原本進行命名,這裏的「 三元組」 是指惡意代碼的類型、家族名稱和變種號,通常形式爲:[惡意代碼類型]惡意代碼家族名稱[變種號]
。各類形態的惡意代碼在各個關鍵技術環節上都有幫其明確的定義特性,下圖給出了一個基於多維度標籤的惡意代碼技術形態分類方法的示意,即在惡意代碼工做機理中最爲核心的傳播、控制、隱藏和攻擊這些關鍵技術環節中,有着一些具備特異性的特性,能夠經過爲惡意代碼樣本添加技術環節維度上的分類標籤, 從而標識出該樣本所具備的一種或多種特性。
linux
計算機病毒基本特性:感染性、潛伏性、可觸發性、破壞性、衍生性。ios
計算機病毒的傳播機制:計算機病毒的傳播渠道包括移動存儲、電子郵件及下載、共享目錄等。web
-網絡蠕蟲的基本特性:網絡蠕蟲的定義特性在於經過網絡的自主傳播,若是一個惡意代碼不經過網絡傳播,那麼它就不是蠕蟲。
算法
網絡蠕蟲的組成結構:蠕蟲的內部組件相似於導彈這種戰爭武器中的一些部件 彈頭用來穿透目標,傳播引擎驅動導彈飛向它的目標,目標選擇算法和掃描引擎很像導彈中的小型迴轉儀,能夠引導導彈發現和指向它的目標,有效載荷倉中則攜帶了執行真正破壞性攻擊的惡性材料。
編程
彈頭:爲了侵佔一個目標系統,蠕蟲必須首先得到計算機的訪問權,它可使用一些滲透攻擊代碼做爲 「彈頭 」,侵入目標系統。經常使用攻擊技術有緩衝區溢出攻擊、文件共享攻擊、利用電子郵件傳播、利用其餘廣泛的錯誤配置。windows
傳播引擎:經過在目標系統上執行傳播引擎指令,來完成蠕蟲樣本的傳播,傳播引擎一般利用的網絡傳輸機制包括文件傳輸協議 FTP 、小文件傳輸協議 TFTP、超文本傳輸協議 HTTP、服務信息塊協議 SMB 以及原始 SOCKET 套接字等。瀏覽器
目標選擇算法和掃描引擎:一旦蠕蟲在受害計算機中運行,目標選擇算法開始尋找新的攻擊目標,而後利用掃描引擎掃描每個由目標選擇算法肯定的地址,肯定其是否能夠被攻擊。目標選擇算法包括電子郵件地址、主機列表、被信任的系統、網絡鄰居主機等。sass
有效載荷:蠕蟲的有效載荷就是附加的攻擊代碼,爲攻擊者在目標系統上執行一些特殊目的的操做。好比說植入後門、安裝分佈式拒絕服務攻擊代理、組建僵屍網絡、執行一個複雜的計算等。
從定義特性上進行分析,後門是容許攻擊者繞過系統常規安全控制機制的程序,可以按照攻擊者本身的意圖提供訪間通道; 而木馬做爲特洛伊木馬的簡稱,是指一類看起來具備某個有用或善意目的,但實際掩蓋着一些隱藏惡意功能的程序。
後門:後門工具可以爲攻擊者提供多種不一樣類型的訪問通道,包括本地權限提高和本地帳號、單個命令的遠程執行、遠程命令行解釋器訪問、遠程控制 GUI、無故口後門。對於後門工具而言,攻擊者但願它可以持續地在目標系統中運行,而且在系統重啓之 後可以仍然隨着系統進行啓動,這樣纔可以保證他對目標系統的隨時控制。 所以後門工具每每都利用了系統的自啓動功能,將自身加入到系統重啓機制中。
特洛伊木馬:經過使本身看起來像是正常的有用的軟件,特洛伊木馬程序能夠用於下目的:欺騙用戶或系統管理員安裝特洛伊木馬程序,這樣木馬程序就經過亳無戒備的用戶進入到計算機系統中;隱藏在計算機的正常程序中,將本身假裝成看起來屬於該系統,使得用戶和管理員不會覺察到它的存在,一般與後門工具結合,成爲木馬後門。經常使用技術包括命名假裝、使用軟件包裝工具、攻擊軟件發佈站點、代碼下毒。
僵屍網絡是指攻擊者(稱爲botmaster)出於惡意目的,傳播殭屍程序控制大量主機,並經過一對多的命令與控制信道所組成的網絡。僵屍網絡區別於其餘攻擊方式的基本特性是使用一對多的命令與控制機制,另外,僵屍網絡還具備惡意性和網絡傳播性。
僵屍網絡的功能結構:傭屍程序的功能組成結構, 能夠分爲主體功能模塊和輔助功能模塊,主體功能模塊包括實現僵屍網絡定義特性的命令與控制模塊和實現網絡傳播特性的傳播模塊,而包含輔助功能模塊(由信息竊取模塊、主機控制模塊、下載更新模塊和防分析檢測模塊構成)的殭屍程序則具備更強大的攻擊功能和更好的生存能力。
殭屍程序的命令與控制機制:當前主流使用的僵屍網絡命令與控制機制包括: 基於 IRC 協議的命令與控制機制、基於HTTP 協議的命令與控制機制和基於 P2P 協議的命 令與控制機制這三大類。
IRC僵屍網絡工做機制圖:
它可以經過控制目標計算機操做系統的關鍵組件, 來爲攻擊者提供強有力的手段, 用來獲取訪問並隱藏在系統中。Rootkit 的定義是: 「 一類特洛伊木馬後門工具,經過修改現有的操做系統軟件,使攻擊者得到訪問權並隱藏在計算機中「。
爲了得到全部這些技術特性和能力,Rookit須要由衆多的功能組件所組成,包括替換操做系統軟件用於隱藏自身的惡意程序,實現隱蔽性後門訪問的後門程序,還有各類輔助工具,這些工具容許攻擊者調整那些被替換程序的特徵,包括程序大小和上次修改日期等,從而可使得這些程序看上去和原來正常程序沒有任何差別。
根據操做系統的分層, Rootkit能夠運行在兩個不一樣的層次上, 即用戶模式和內核模 式。
用戶模式Rootkit:大部分 UNIX 用戶模式 Rootkit 中集成的工具能夠被分爲以下五種不一樣的類型,包括提供後門訪問的二進制替換程序、隱藏攻擊者的二進制替換程序、用於隱藏但不替換的二進制程序、一些零散工具如網絡嗅探器、安裝腳本;在 Windows 平臺上, 實現用戶模式 Rootkit 主要有如三種不一樣技術
內核模式 Rootkit:利用對內核的操做,內核模式 Rootkit 能夠修改內核,完全地隱藏攻擊者在計算機上的活動,大多數內核模式 Rootkit 採用以下技術手段:文件和目錄隱藏、進程隱藏、網絡端口隱藏、混雜模式隱藏、改變執行方向、設備截取和控制。
Linux 內核模式 Rootkit
惡意代碼分析與針對良性代碼和軟件的程序分析技術,均可以採用通用的代碼分析技術來做爲基礎,主要包括靜態分析和動態分析方法,來對代碼進行逆向工程(Reverse Engineering)來肯定其功能。
經過反病毒引擎掃描識別已知的惡意代碼家族和變種名,逆向分析惡意代碼模塊構成,內部數據結構,關鍵控制流程等,理解惡意代碼的機理,並提取特徵碼用於檢測。惡意代碼靜態分析技術以下圖所示
反病毒軟件掃描:使用現成的反病毒軟件來掃描待分析的樣本, 以肯定反病毒軟件是否可以識別該樣本, 以及所識別的類型、家族、變種等信息。
文件格式識別:惡意代碼一般是以二進制可執行文件格式存在的,其餘的存在形式還包括腳本文件、帶有宏指令的數據文件、壓縮文件等。文件格式識別可以讓咱們快速地瞭解待分析樣本的文件格式。在Windows 平臺上, 二進制可執行文件E XE 和DLL 都是以 PE 文件格式組織的,而在 Linux 平臺上,可執行文件格式則是 ELF 。
字符串提取分析:主要提取的信息包括可能得到的有用信息、惡意代碼實例名、幫助或命令行選項、用戶會話、後門口令、相關URL信息和Email地址、庫和函數調用。
二進制結構分析:nm 指令在可執行文件中查找 symbols 重要元素。objdump 主要功能有從可執行文件中限制不一樣類型的信息、編譯器類型、代碼段數據段位置、反彙編
反彙編(Disassemble)與反編譯(Decompile):反彙編與反編譯是對二進制程序編譯連接的逆過程,反彙編是把二進制程序的目標代碼從二進制機器指令碼轉換爲彙編代碼的處理過程,而反編譯則更進一步,指望將彙編代碼再進一步還原成高級編程語言形式的源代碼。
代碼結構與邏輯分析:程序結構主要是瞭解 Call Graph,即用戶函數、系統函數和函數調用關係。分析系統函數調用列表可在高層分析二進制程序的行爲邏輯。程序邏輯主要是瞭解程序控制流圖(CFG),CFG完備地反映了一個程序的執行邏輯。
加殼識別與代碼脫殼:惡意代碼一般使用的加殼混淆機制包括加密、多樣性、多態和變形等,加密機制(Encryption)通常採用固定的代碼加密器來對一進製程序進行處理,以改變代碼的存在形態。
動態分析,其實是激活一個受控分析實驗環境中的代碼,當一個代碼在實際系統中運行時,咱們可以更加迅速地瞭解其行爲。動態分析技術以下圖所示
基於快照比對的方法和工具:針對惡意代碼動態分析的快照比對方法是首先對原始的「 乾淨" 的系統資源列表作一個快照,而後激活惡意代碼並給予充分的運行時間, 如5分鐘,以後咱們再對惡意代碼運行後「 髒」 的系統資源列表進行快照,並對比兩個快照之間的差別,從而獲取惡意代碼行爲對系統所形成的影響,好比新建、刪除或修改了哪些文件、哪些註冊表項等。
系統動態行爲監控方法:系統動態行爲監控是目前惡意代碼動態行爲分析中最爲核心和經常使用的技術步驟,針對惡意代碼對文件系統、運行進程列表、註冊表、本地網絡棧等方面的行爲動做,進行實時監視、記錄和顯示。系統動態行爲監視一般基於行爲通知(Notification)機制或者 API 劫持技術(API Hooking)實現。
網絡協議棧監控方法:主要監控四個方面,包括惡意代碼開放的本地端口、惡意代碼發起的網絡鏈接、控制惡意代碼網絡流和惡意代碼流行攻擊方式-ARP欺騙。
沙箱技術:沙箱技術提供了受限制的執行環境,使得在沙箱中運行的代碼不可以修改用戶系統,從而提供了 一個用於運行不可信程序的安全環境。
動態調試技術:動態調試器可以以單步模式來調試惡意代碼,可以一行代碼接着一行代碼,一個函數調用接着一個函數調用地進行惡意代碼行爲分析的過程,這樣就可以像錄像機同樣可以逐個鏡頭的分析犯罪現場錄像,並也能夠中斷或者快進程序運行流程,觀察惡意代碼中發生的一切。
實踐任務: 對提供的 rada 惡意代碼樣本,進行文件類型識別,脫殼與字符串提取,以得到 rada 惡意代碼的編寫做者,具體操做以下:
1. 使用文件格式和類型識別工具,給出 rada 惡意代碼樣本的文件格式、運行平臺和加殼工具。
2. 使用超級巡警脫殼機等脫殼軟件,對 rada 惡意代碼樣本進行脫殼處理。
3. 使用字符串提取工具,對脫殼後的 rada 惡意代碼樣本進行分析,從中發現 rada 惡意代碼的編寫做者是誰
本次實驗採用Windows XP attacker,上面安裝有超級巡警脫殼器等分析軟件
首先使用 file 命令查看 RaDa.exe 的文件類型
能夠看到 RaDa.exe 是一個 Windows PE 可執行文件,而且有圖形化窗口
接下來使用 PEiD 工具查看 RaDa.exe 的基本信息(加殼類型等)
能夠看到這個是一個版本爲 0.89.6 的 UPX 殼(壓縮殼),還能夠看到文件的入口點、偏移、文件類型、EP 段、彙編程序。
而後使用strings RaDa.exe
查看 RaDa.exe 中可打印字符串
發現都是亂碼,須要進行脫殼處理
使用超級巡警對 RaDa.exe 進行脫殼,脫殼後輸出 RaDa_unpacked.exe
雖然是通過修改的 UPX 殼,可是該自動化脫殼工具顯然有這個殼的樣本庫,可以自動脫殼,省去了手工脫殼的麻煩
再用 strings 查看脫殼後的RaDa.exe(RaDa_unpacked.exe)
能夠看到顯示了正常信息
這時候用 IDA Pro Free 打開這個文件,查看詳細信息
能夠在字符串中找到做者的名字,Raul Siles 和 David Perze
任務:在WinXP Attacker虛擬機中使用 IDA Pro 靜態或動態分析 crackme1.exe 和 crackme2.exe ,尋找特定的輸入,使其可以輸出成功信息
本次實驗實驗 Windows XP attacker 裝有 IDA Pro
首先檢查一下兩個文件的完整性,計算其 md5 值,驗證
使用file
命令查看其文件類型
能夠看到這兩個文件都是32位 windows 下 PE 文件,沒有圖形界面,是命令行程序
接下來,嘗試對 crackme1.exe 進行分析,首先運行它,能夠發現,在接受1個參數時,程序的輸出不同凡響,因此咱們猜想該程序的輸入爲一個參數。另外,能夠發現程序的兩種輸出信息。一種是「I think you are missing something.」,這個猜想是參數數目不對的提示;另外一種是「Pardon? What did you say?」,對於這種反饋信息,猜想應該是參數錯誤的提示。
接下來利用 IDA Pro 打開這個程序分析,打開咱們打開經過 Strings 窗口能夠查看該程序中出現的字符串。經過 Strings 窗口能夠查看到該程序中出現的明文字符串,能夠看到前面的兩種輸出信息,「I think you are missing something.」 「Pardon? What did you say?」,還發現了「I know the secret」和「You know how to speak to programs, Mr. Reverse-Engineer」這兩個字符串。有內容咱們能夠猜想,前者就是咱們須要的口令,後者就是輸入口令正確時程序的輸出信息。
接下來看函數調用圖(Function Call),能夠得出三個結論:程序估計是使用strcmp
函數來比較輸入的,而後利用print
和fprint
函數輸出;關鍵的部分在sub_401280
這裏;從strcmp
函數能夠推斷出程序是用c語言編寫的
下面來看sub_401280
這個函數(因爲只是在上學期的 linux 課程裏學過一點彙編語言,因此並非徹底能看懂),倒數第二行cmp [ebo+arg_0],2
爲判斷程序是否有兩個參數(cmp指令爲比較兩個操做數的大小),若是不是則返回「I think you are missing something.」
在c語言中,main函數一般爲int main(int argc,const char **argv)
,即第一個參數argc
對應argv
的大小,第二個參數對應命令行的格式。好比說在命令行輸入crackme1.exe 1
,那麼參數對應的值爲argc=2,argv={」crackme1.exe」,」1」}
。
若是argc = 2
(即輸入了兩個參數),那麼進行下一步判斷
call strcmp
中,程序用「I know the secret」對應的字符串和[eax]
對應的字符串(用戶輸入的口令)相比較,經過比較的結果反饋口令是否正確
若是正確,則輸出「You know how to speak to programs, Mr. Reverse-Engineer」
若是錯誤,則輸出「Pardon? What did you say?」
運行程序來驗證咱們的猜測
下面來分析 crackme2.exe,主要是採用 IDA Pro 進行靜態分析,一樣打開文件,查看 strings 窗口。
一樣打開call function
查看,能夠獲得與分析 crackme1.exe 幾乎相同的結論,一樣要關注sub_401280
這個函數
一樣地找到這個函數,仍是判斷輸入是否爲兩個參數,若是不是返回「I think you are missing something.」
若是是兩個參數,則接着用strcmp
函數對argv
裏面的第一個字符串(即程序名,由於這裏是arg_4
,也就是指向1號棧空間的指針,此時這個空間用來存儲argv[0]
) 和「crackmeplease.exe」進行判斷
若是判斷錯誤,則輸出「I have a identity problem」
若是判斷正確,則繼續判斷用戶的輸入與「I know the secret」判斷
若是判斷錯誤,則輸出「Pardon? What did you say?」
若是判斷正確,則進入一個循環,首先將var_4
指向的值置0,而後經過比較其與0x21
的大小來決定是否進行循環,若是大於0x21
,則跳轉到loc_401381
,小於0x21
則繼續執行,循環內部是經過將unk_403080
中的字符逐個與0x42
進行異或運算(add eax,offset unk_403080
,xor eax 42h
),而後輸出(call putchar),unk_403080
中的值以下圖所示
下面來驗證咱們的猜測,首先將程序名改成「crackmeplease.exe」,而後輸入「I know the secret」,查看輸出
本次實踐做業的任務是分析一個自制的惡意代碼樣本,以提升對惡意代碼逆向工程分析技術的認識,並提升逆向工程分析的方法、工具和技術。
關於這個二進制文件,咱們建立它的目的是爲了提升安全業界對惡意代碼樣本的認識,並指出爲對抗如今的惡意代碼威脅發展更多防護技術的必要性。你做爲一名安全事件處理者的任務(若是你接受的話)就是深刻分析這個二進制文件,並得到儘量多的信息,包括它是如何工做的,它的目的以及具備的能力,最爲重要的,請展現你獲取全部信息所採 取的惡意代碼分析技術。
待分析二進制文件位置: rada.zip, 警告這個二進制文件是一個惡意代碼, 所以你必須採用 一些預防措施來保證業務系統不被感染,建議在一個封閉受控的系統或網絡中處理這個未知的實驗品。
回答問題:
分析過程:
先進行動態分析。首先打開監控工具 Filemon,Regmon,Wireshark 三個軟件進行監測。同時使用 Regshot 記錄下還未啓動惡意軟件時的註冊表狀態,這個時候能夠啓動這個惡意軟件了。
啓動後能夠觀察到註冊表監視器和文件監視器的變化,這時用 Regshot 記錄下此時註冊表狀態,生成比較文件。
此時咱們能夠發現,對於文件的改變,建立了C:\RaDa
、C:\RaDa\tmp
和C:\RaDa\bin
目錄,而後將程序文件RaDa.exe
複製到了C:\RaDa\bin
目錄下
而對於註冊表來講,經過生成的兩個註冊表狀態的比較,咱們能夠發現程序在註冊表啓動項 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run下創建鍵值RaDa
,並同時將 C:\RaDa\bin\RaDa.exe 添加進去
對於網絡來講,一直經過 HTTP 協議訪問 ip地址爲 10.10.10.10 的網站
利用動態分析咱們很難看是否有隱藏路徑等信息,因此下面轉入靜態分析
首先使用命令md5sum
和file
得到程序的 MD5 摘要和文件類型。能夠看到 RaDa.exe 是一個 Windows PE 可執行文件,而且有圖形化窗口,md5值爲caaa6985a43225a0b3add54f44a0d4c7
接下來使用 PEiD 工具查看 RaDa.exe 的基本信息(加殼類型等)
能夠看到這個是一個版本爲 0.89.6 的 UPX 殼(壓縮殼),還能夠看到文件的入口點、偏移、文件類型、EP 段、彙編程序。
使用超級巡警對 RaDa.exe 進行脫殼,脫殼後輸出 RaDa_unpacked.exe
而後使用 IDA Pro 進行分析,首先查看字符串窗口,把類型 Type 改爲 unicode 類型,首先看到的是命令行參數,其次是版本和做者,而後是註冊表字符串,最後是一個網頁RaDa_commands.html
,應該是以前訪問的網站的網頁
命令行參數的做用
參數 | 做用 |
---|---|
--verbose |
顯示Starting DDoS Smurf remote attack |
--visible |
決定在獲取html文件時,IE窗口是否可見 |
--server |
指定命令文件控制服務器的ip地址、訪問協議及目錄等,默認是http://.10/RaDa |
--commands |
指定命令文件,默認是RaDa_commands.html |
--cgipath |
指定服務器上cgi文件的根目錄,默認是cgi-bin |
--cgiget |
指定負責文件上傳的cgi腳本,默認是upload.cgi |
--cgiput |
指定負責文件下載的cgi腳本,默認是download.cgi |
--tmpdir |
指定臨時文件夾的位置,默認是C:\RaDa\tmp |
--period |
指定兩次向服務器請求命令文件的時間間隔,默認是60秒 |
--cycles |
指定多少次向服務器請求命令文件後退出,默認是0(沒有限制) |
--help |
輸出版權信息 |
--gui |
使用該參數會使樣本出現一個GUI窗口 |
--installdir |
指定樣本的安裝路徑,默認是C:\RaDa\bin |
--noinstall |
使用該參數,樣本將不會安裝、也不會添加註冊表 |
--uninstall |
卸載樣本 |
--authors |
若是確認不是在VMware的虛擬機中運行,則顯示樣本的做者;不然顯示參數不存在 |
接下來深刻分析程序接受控制的邏輯
以RaDa_commands.html
爲線索,首先找到sub_404FB
函數分析,這個字符串被複制到了變量dword_40C030
中,搜索這個變量找到sub_4052C0
。
查看函數sub_4052C0
能夠看到判斷3個內網網段,分別爲192.168.
、172.16.
、10.
,這裏確保服務器位於這3個內網網段,而後去服務器中獲取命令,解析並執行其中的命令
下面就是這些具體的命令以及其功能
命令 | 功能 |
---|---|
exe | 在宿主主機中執行指定的命令 |
put | 將宿主主機中的指定文件上傳到服務器 |
get | 將服務器中的指定文件下載到宿主主機中 |
screenshot | 截取宿主主機的屏幕並保存到tmp文件夾 |
sleep | 中止活動一段時間 |
最後是來分析一下程序是否存在VMware
識別,以 HKLM\Software\VMware,Inc.\VMware Tools\InstallPath 爲線索分析,找到函數sub_404FB0
(authors 命令處理函數),在這個函數中,這個字符串被複制到變量dword_40C070
,搜索這個變量對應的函數,找到是sub_40AAA0
。
sub_404FB0
獲取了網卡配置信息,並檢查了 mac 地址,而後確認 HKLM\Software\VMware,Inc.\VMware Tools\InstallPath 是否存在(也就是看看VMware Tools 是否是在註冊表裏)
(ps:--authors的做用,若是確認不是在 VMware 的虛擬機中運行,則顯示樣本的做者;不然顯示參數不存在)
問題解答
經過以上分析過程回答這些問題
提供對這個二進制文件的摘要,包括能夠幫助識別同同樣本的基本信息。
程序的 MD5 摘要值爲caaa6985a43225a0b3add54f44a0d4c7
,加殼方式是UPX 0.89.6 - 1.02 / 1.05 - 2.90 -> Markus & Laszlo
,文件類型RaDa.exe: PE32 executable (GUI) Intel 80386, for MS Windows
,這些能夠做爲文件標識
找出並解釋這個二進制文件的目的
這是一個後門程序,可以使得遠程的攻擊者徹底地控制系統,而且只要系統可以經過瀏覽器上網,就能得到攻擊者的指令
識別並說明這個二進制文件所具備的不一樣特性。
RaDa.exe被執行時,它會將自身安裝到系統C盤中,並經過修改註冊表的方式使得每次系統啓動,啓動後主要就是如下過程:從指定的web服務器請求指定的web頁面;解析得到的web頁面,獲取其中的指令;執行解析出來的指令,主要的指令上面給出
;等待一段時間後繼續按照上述步驟繼續執行。
啓動後,RaDa一直在後臺運行,不會彈出任何窗口。並支持如下指令
命令 | 功能 |
---|---|
exe | 在宿主主機中執行指定的命令 |
put | 將宿主主機中的指定文件上傳到服務器 |
get | 將服務器中的指定文件下載到宿主主機中 |
screenshot | 截取宿主主機的屏幕並保存到tmp文件夾 |
sleep | 中止活動一段時間 |
識別並解釋這個二進制文件中所採用的防止被分析或逆向工程的技術。
--authors
參數時將不會輸出做者信息Starting DDoS Smurf remote attack
,讓分析者誤認爲是程序執行 DDoS 攻擊,實際上並無對這個惡意代碼樣本進行分類(病毒、蠕蟲等),並給出你的理由。
首先這個樣本不具備傳播和感染屬性,因此不是病毒或者蠕蟲;其次也沒有將本身假裝成有用的程序以欺騙用戶運行,因此他也不屬於木馬;因此應該是一個後面程序,若是是多對一控制,還多是 HTTP Bot(殭屍程序)
給出過去已有的具備類似功能的其餘工具。
從服務器下載指令並執行具有組件僵屍網絡的能力;Setiri及其前輩GatSlag
可能調查出這個二進制文件的開發做者嗎?若是能夠,在什麼樣的環境和什麼樣的
能夠經過--authors
參數獲取相關做者信息Authors: Raul Siles & David Perez,2004
;環境和限定條件是不在虛擬機 VMware 中運行
難度等級:中級, 案例分析挑戰內容:
在2003年3月初, Azusa Pacific大學蜜網項目組部署了一個未打任何補丁的Windows
2000蜜罐主機,而且設置了一個空的管理員密碼。在運營的第一個星期內,這臺蜜罐主機就頻繁地被攻擊者和蠕蟲經過利用幾個不一樣的安全漏洞攻陷。在一次成功的攻擊以後, 蜜罐主機加入到一個龐大的僵屍網絡中,在蜜罐主機運營期間,共發現了15164個不一樣主機加入了這個僵屍網絡。此次案例分析的數據源是用Snort工具收集的該蜜罐主機5天的網絡流日誌, 並經過編輯去除了一些不相關的流量並將其組合到了單獨的一個二進制網絡日誌文件中,同時IP地址和一些其餘的特定敏感信息都已經被混淆以隱藏蜜罐主機的實際身份和位置你的任務是分析這個日誌文件並回答如下給出的問題。
IRC是什麼?當IRC客戶端申請加入一個IRC網絡時將發送哪一個消息?IRC通常使用哪些TCP端口?
因特網中繼聊天(Internet Relay Chat),簡稱 IRC 。 IRC 的工做原理很是簡單,只要在本身的 PC 上運行客戶端軟件,而後經過因特網以 IRC 協議鏈接到一臺IRC服務器上便可。IRC 特色是經過服務器中繼與其餘鏈接到這一服務器上的用戶交流
註冊時須要發送的消息有三種,分別是口令,暱稱和用戶信息。格式以下:USER <username> <hostname> <servername> <realname>、PASS <password>、NICK <nickname>
。註冊完成後,客戶端就使用 JOIN 信息來加入頻道,格式以下:JOIN <channel>
。
IRC 服務器明文傳輸一般在 6667 端口監聽,也會使用 6660—6669 端口。 SSL 加密傳輸在 6697 端口。
僵屍網絡是什麼?僵屍網絡一般用於幹什麼?
僵屍網絡是指攻擊者(稱爲botmaster)出於惡意目的,傳播殭屍程序控制大量主機,並經過一對多的命令與控制信道所組成的網絡。
它每每被黑客用來發起大規模的網絡攻擊,如分佈式拒絕服務攻擊(DDoS)、海量垃圾郵件等,同時黑客控制的這些計算機所保存的信息也均可被黑客隨意「取用」。
蜜罐主機(IP:172.16.134.191)與哪些IRC服務器進行了通訊?
經過 Wireshark 打開數據文件,並設置過濾條件ip.src == 172.16.134.191 && tcp.dstport == 6667
,由於咱們知道 IRC 服務經過6667端口
通過篩選,能夠獲得五個IRC服務器,分別爲 209.126.161.2九、66.33.65.5八、63.241.174.14四、217.199.175.十、209.196.44.172
在這段觀察期間,多少不一樣的主機訪問了以209.196.44.172爲服務器的僵屍網絡
首先先拉取209.196.44.172與172.016.134.191之間的全部的 IRC 數據包。這裏使用命令tcpflow -r botnet_pcap_file 'host 209.196.44.172 and port 6667'
執行以後咱們將得到三個文件,172.016.134.191.01152-209.196.044.172.06667
、209.196.044.172.06667-172.016.134.191.01152
和 report.xml
,能夠先看一下report.xml
這裏提到了這兩個文件的相關信息,能夠看到以下圖的內容,包括上述雙方的ip地址,端口,mac地址,通訊時間等等。
而後使用如下代碼對209.196.044.172.06667-172.016.134.191.01152
文件進行篩選,能夠獲得共有3457個主機訪問過服務器(在當前主機進入到IRC的頻道以後,頻道會將當前頻道中全部的主機的信息都發送過來,能夠從其中的數據包中計算當前頻道共有多少主機)
哪些IP地址被用於攻擊蜜罐主機?
首先,咱們認爲進入蜜罐的流量都是攻擊。使用如下命令查找端口並輸出到1.txt 中
tcpdump -n -nn -r botnet_pcap_file.dat 'dst host 172.16.134.191' | grep -v 'reply' | cut -d '.' -f 10 | cut -d ':' -f 1 | sort | uniq | more >1.txt; wc -l 1.txt
(tcpdump -nn: 指定將每一個監聽到的數據包中的域名轉換成IP、端口從應用名稱轉換成端口號後顯示;grep -v:排除指定字符串;cut -d '.' -f 10:截取以'.'爲分隔符的第 10 列;uniq命令用於檢查及刪除文本文件中重複出現的行列; wc -l 用於統計文件的行數)
能夠看到共有148個端口被攻擊了
接着使用以下指令找出全部的可能鏈接的主機的 IP 地址。這個指令的做用就是將鏈接IP地址輸出到2.txt中。
tcpdump -n -nn -r botnet_pcap_file.dat 'dst host 172.16.134.191' | awk -F " " '{print $3}' | cut -d '.' -f 1-4 | sort | uniq | more > 2.txt;wc -l 2.txt
(其中 awk -F 就是指定分隔符,可指定一個或多個, print 後面作字符串的拼接。)
能夠看到一共有165個主機被用於蜜罐入侵
攻擊者嘗試了哪些安全漏洞?
要了解攻擊了哪些安全漏洞首先要了解攻擊了哪些端口,使用snort -r botnet_pcap_file.dat -c /etc/snort/snort.conf -K ascii
指令先查一下網絡流分佈狀況。發現大部分都是TCP包,有一部分UDP包,因此咱們首先應該篩選出響應的TCP端口和UDP端口。
利用下面的指令篩選出蜜罐主機相應的 TCP 端口。輸出能夠看到 TCP 響應端口爲135(rpc),139(netbios-ssn),25(smtp)445(smb),4899(radmin),80(http)。
tcpdump -r botnet_pcap_file.dat -nn 'src host 172.16.134.191' and tcp[tcpflags]== 0x12 | cut -d ' ' -f 3 | cut -d '.' -f 5 | sort | uniq
(0x12表明有回覆)
將協議部分改成 udp ,能夠篩選出 udp 端口137(netbios-ns)
tcpdump -r botnet_pcap_file -nn 'src host 172.16.134.191' and udp | cut -d ' ' -f 3 | cut -d '.' -f 5 | sort | uniq
逐個分析所用的端口,首先是udp 137號端口,這個是在局域網中提供計算機的IP地址查詢服務,處於自動開放狀態,因此訪問這個端口確定就是 NetBIOS 查點了。
接下來看 tcp 135 號端口和25號端口,咱們看到只是進行了鏈接,可是是沒有數據的交互的,因此這攻擊者多是對這兩個端口進行了 connect 掃描。
而後查看 TCP 80 端口,首先利用 Wireshark 進行篩選tcp.dstport==80 && ip.dst == 172.16.134.191
,首先鏈接最多的就是 24.197.194.106 這個IP,他的行爲就是不停的用腳本在攻擊 IIS 服務器的漏洞,從而獲取系統權限。
接下來是210.22.204.101訪問的80端口,攻擊者是想經過緩衝區溢出攻擊來得到一個命令行了
下一個訪問 80 端口的是218.25.147.83,這裏會看到c:\notworm,說明這是一個蠕蟲攻擊。上網搜索發現是紅色代碼(red code)病毒
其他的 ip 地址均爲正常訪問蜜罐
最後看對80端口有沒有攻擊成功了,咱們經過蜜罐主機80端口向外的流量進行分析,發現蜜罐主機作的迴應均爲一個 iis 服務器的默認頁面,因此80端口的這些攻擊均失敗。
而後關注TCP 139號端口。這個也比較簡單,雖然有不少主機鏈接到這個端口的,可是基本都是同樣的,大部分都是鏈接,而後不少空會話,一樣也沒有成功,因此應該是 SMB 查點。
而後分析TCP 445端口。這個端口鏈接很是多,能夠看到許多 \samr, \srvsvc 字符串,查詢字符串後很容易發現一個PSEXESVC.EXE
字符串,是由61.111.101.78發起的,經過對這種字符串的搜索,發現這是一種Dv1dr32蠕蟲,這種蠕蟲正是經過IRC進行通訊。
繼續往下看,發現該 ip 地址與蜜罐創建了會話,說明攻擊成功
還有就是 ip 地址爲210.22.204.101的主機進行的攻擊,根據字符串推測應該是使用了LAN Manager口令猜想,一樣創建了會話,攻擊成功
其他的針對 445 端口的數據流量都是一些普通查點,就不一一贅述了
最後一個TCP 4899端口。只有 IP 地址 210.22.204.101 訪問過。上網搜索能夠查到 4899 端口是一個遠程控制軟件 radmin 服務端監聽端口,這個軟件不是木馬,應該是上面攻擊成功後上傳這個軟件方便控制。
至此分析結束
哪些攻擊成功了?是如何成功的?
經過上面的分析可知,成功的攻擊發起者是210.22.204.101 和 61.111.101.78,分別是 Dv1dr32 蠕蟲和 LAN Manager 口令猜想
此次實驗題目較以前的幾周又難又多,感受本身的腦子快不夠用了,仍是得多學習多實踐啊