20222417 2024-2025-1 《網路與系統攻防技術》實驗四實驗報告

愿望星發表於2024-11-05

1.實驗內容

1.1惡意程式碼檔案型別標識、脫殼與字串提取

對提供的rada惡意程式碼樣本,進行檔案型別識別,脫殼與字串提取,以獲得rada惡意程式碼的編寫作者,具體操作如下:

(1)使用檔案格式和型別識別工具,給出rada惡意程式碼樣本的檔案格式、執行平臺和加殼工具;

(2)使用超級巡警脫殼機等脫殼軟體,對rada惡意程式碼樣本進行脫殼處理;

(3)使用字串提取工具,對脫殼後的rada惡意程式碼樣本進行分析,從中發現rada惡意程式碼的編寫作者是誰?

1.2使用IDA Pro靜態或動態分析crackme1.exe與crakeme2.exe,尋找特定輸入,使其能夠輸出成功資訊。

1.3分析一個自制惡意程式碼樣本rada,並撰寫報告,回答以下問題:

(1)提供對這個二進位制檔案的摘要,包括可以幫助識別同一樣本的基本資訊;

(2)找出並解釋這個二進位制檔案的目的;

(3)識別並說明這個二進位制檔案所具有的不同特性;

(4)識別並解釋這個二進位制檔案中所採用的防止被分析或逆向工程的技術;

(5)對這個惡意程式碼樣本進行分類(病毒、蠕蟲等),並給出你的理由;

(6)給出過去已有的具有相似功能的其他工具;

(7)可能調查處這個二進位制檔案的開發作者嗎?如果可以,在什麼樣的環境和什麼樣的限定條件下?

(8)給出至少5種檢測該惡意軟體的方法,例如基於特徵碼的方法,需要詳細介紹每種方法。

1.4取證分析實踐

Windows 2000系統被攻破並加入殭屍網路

問題: 資料來源是Snort收集的蜜罐主機5天的網路資料來源,並去除了一些不相關的流量,同時IP地址和其他敏感資訊被混淆。回答下列問題:

(1)IRC是什麼?當IRC客戶端申請加入一個IRC網路時將傳送那個訊息?IRC一般使用那些TCP埠?

(2)殭屍網路是什麼?殭屍網路通常用於什麼?

(3)蜜罐主機(IP地址:172.16.134.191)與那些IRC伺服器進行了通訊?

(4)在這段觀察期間,多少不同的主機訪問了以209.196.44.172為伺服器的殭屍網路?

(5)哪些IP地址被用於攻擊蜜罐主機?

(6)攻擊者嘗試攻擊了那些安全漏洞?

(7)那些攻擊成功了?是如何成功的?

2.實驗過程
2.1惡意程式碼檔案型別標識、脫殼與字串提取
2.1.1使用檔案格式和型別識別工具,給出rada惡意程式碼樣本的檔案格式、執行平臺和加殼工具
輸入file RaDa.exe使用file命令確定檔案格式,使用strings命令分析惡意程式碼樣本。


使用strings命令對RaDa.exe進行分析後,沒有得到有效的結果。這可能是因為該命令主要用於提取可列印的字串,而在某些情況下,它可能無法提供有用的資訊,特別是當檔案被加密或包含大量非文字資料時。
在Windows主機中用PEiD工具檢視RaDa.exe的資訊,得到如下結果:

RaDa.exe是一個PE32格式的可執行檔案,這意味著它是為Microsoft Windows作業系統設計的該檔案是為Intel 80386處理器架構構建的,這是一種較早期的x86架構。RaDa.exe具有圖形使用者介面(GUI),這表明它包含視窗、選單、按鈕等視覺化元素,供使用者進行互動操作。
2.1.2使用超級巡警脫殼機等脫殼軟體,對rada惡意程式碼樣本進行脫殼處理

獲得了一個unpacked檔案,即脫了壓縮殼的檔案。

脫殼後再使用strings命令對這個unpacked檔案進行分析
最後找到作者:

2.1.3
使用字串提取工具,對脫殼後的rada惡意程式碼樣本進行分析,從中發現rada惡意程式碼的編寫作者是誰?

發現作者為:Raui Siles和David Perez
2.2使用IDA Pro靜態或動態分析crackme1.exe與crakeme2.exe,尋找特定輸入,使其能夠輸出成功資訊
2.2.1分析crackme1.exe
依然使用file命令,與rada樣本區別就是沒有圖形化介面。

在Windows主機執行crackme1.exe,並嘗試猜測引數,如下

若是輸入的引數為不為2個(crack.exe+一個引數),則會輸出:I think you are missing something.
若是輸入的引數為2個,則會輸出:Pardon? What did you say?
在kali用string檢視四段文字:

用IDA pro繼續分析,檢視strings模組如下

猜測“I know the secret”是關鍵引數,而第四句為相應的回答。
用Function calls檢視函式呼叫過程
檢視main函式,如下

雙擊Function中的main函式,點選 View ->Graphs->Flow chart
得到函式具體呼叫圖如下

因此,猜測輸入的引數應該是:crackme1.exe "I know the secret"
進行驗證

2.2.2分析crackme2.exe
在kali中用'file'指令檢視crackme2.exe,如下

終端上執行crackme2.exe

用IDA pro繼續分析
檢視strings模組如下

檢視main函式的具體呼叫圖,如下

猜測如下:
一是判斷命令列引數個數是否為2→若是,則進入第二個判斷;若否,則輸出I think you are missing something.
二是判斷執行的程式名稱是否為crackplease.exe→若是,則進入第三個判斷;若否,則輸出I have an identity problem.
三是判斷命令列第二個引數是否為"I know the secret"→若是,則輸出We have a little secret: Chocolate;若否,則輸出Pardon? What did you say?
進行驗證
執行crackme2.exe

執行crackmeplease.exe

發現成功執行。
2.3分析一個自制惡意程式碼樣本rada,並撰寫報告,回答以下問題:
2.3.1提供對這個二進位制檔案的摘要,包括可以幫助識別同一樣本的基本資訊
在kail中使用MD5生成摘要:

2.3.2找出並解釋這個二進位制檔案的目的
在PE explorer監聽下,執行目標二進位制檔案


目的:透過HTTP協議向IP地址為10.10.10.10的伺服器發起請求,目的是訪問路徑為“\RaDa\RaDa_commands.html”的頁面,,同時在C盤建立“RaDa”資料夾並複製自身至其中,執行登錄檔讀寫操作以新增自啟動項,具備執行截圖、上傳下載等指令的能力,並可能利用IE瀏覽器漏洞進行攻擊,表現出明顯的惡意軟體特徵,推測其用於DDoS攻擊等惡意行為。
2.3.3識別並說明這個二進位制檔案所具有的不同特性
透過上一個問題可以知道,該二進位制檔案可以在執行時自動複製,來隱藏自己,並且可以透過修改登錄檔實現在每次系統啟動時自動執行,透過IE瀏覽器請求頁面並獲得來自攻擊者的指令,能夠screenshot對別攻擊者截圖,put和get上傳和下載等獲得隱私資訊。
2.3.4識別並解釋這個二進位制檔案中所採用的防止被分析或逆向工程的技術
該程式利用UPX進行加殼,這不僅有助於減小檔案體積,還可能在某些情況下隱藏程式碼細節。此外,程式中可能整合了虛擬機器檢測程式碼,能夠識別是否在虛擬機器環境中執行。例如,使用“--authors”引數時,程式在虛擬機器中不輸出結果,僅在物理機上顯示,可能是因為程式檢測到虛擬機器特有的工具並採取措施隱藏作者資訊。
2.3.5對這個惡意程式碼樣本進行分類(病毒、蠕蟲等),並給出你的理由
這個程式是一種後門程式,不具備病毒、蠕蟲或木馬的傳播和偽裝特性,而是透過隱蔽手段監控和竊取受害者計算機資訊,即使受害者不知情,它也能在後臺持續執行並向攻擊者洩露敏感資料。
2.3.6給出過去已有的具有相似功能的其他工具
root kit:與上述後門程式相比,root kit技術更為高階,檢測難度大,尤其在SunOS和Linux作業系統上。
2.3.7可能調查處這個二進位制檔案的開發作者嗎?如果可以,在什麼樣的環境和什麼樣的限定條件下?
可以。正如問題4中,可以使用--authors在主機環境下看到。

2.4取證分析實踐
2.4.1IRC是什麼?當IRC客戶端申請加入一個IRC網路時將傳送那個訊息?IRC一般使用那些TCP埠?
IRC(Internet Relay Chat)是一種實時的網際網路聊天協議,允許使用者透過IRC客戶端在IRC網路上進行即時通訊。當IRC客戶端申請加入一個IRC網路時,會傳送包括PASS(口令)、NICK(暱稱)和USER(使用者資訊)等註冊賬戶的訊息,以及JOIN訊息來加入頻道。IRC一般使用的TCP埠包括6667(明文傳輸)和6697(SSL加密傳輸)。此外,IRC伺服器也可能使用6660至6669之間的埠。
2.4.2殭屍網路是什麼?殭屍網路通常用於什麼?
殭屍網路(Botnet)是由被惡意軟體感染並被遠端控制的計算機裝置組成的網路。這些裝置被稱為“殭屍計算機”,它們在不知情的情況下被駭客控制,用於實施各種網路攻擊和欺詐活動。殭屍網路通常用於以下目的:
分散式拒絕服務(DDoS)攻擊:殭屍網路可以發起大規模的DDoS攻擊,透過協調大量受感染裝置的操作,用大量流量淹沒目標伺服器或網路基礎設施,使合法使用者無法訪問目標。
垃圾郵件和電子郵件網路釣魚:殭屍網路用於傳送大量垃圾郵件,這些郵件可能包含不需要的廣告、網路釣魚嘗試或受惡意軟體感染的附件。
撞庫和暴力攻擊:殭屍網路可用於自動進行撞庫攻擊,嘗試使用竊取的使用者名稱和密碼組合登入各種線上賬戶。暴力攻擊是殭屍網路用來破解弱密碼或常用密碼的方法,即機器人系統地嘗試所有可能的組合。
2.4.3蜜罐主機(IP地址:172.16.134.191)與那些IRC伺服器進行了通訊?
使用Wireshark開啟botnetpcapfile.dat,過濾出所有源IP為172.16.134.191,目的埠為6667,TCP標誌位為SYN(即0x02)的資料包。根據抓包結果,可以發現蜜罐主機嘗試連線了4臺IRC伺服器,分別是:
209.126.161.29
66.33.65.58
63.241.174.144
209.196.44.172

2.4.4在這段觀察期間,多少不同的主機訪問了以209.196.44.172為伺服器的殭屍網路?
下載tcpflow,tcpflow是一種網路監測工具,它透過監視網路流量,可以捕獲傳送和接收的TCP/IP資料包,並將它們重建為可以理解的資料流
tcpflow-r進行分析

查詢有多少訪問了以209.196.44.172為伺服器的殭屍網路的主機

2.4.5哪些IP地址被用於攻擊蜜罐主機?
使用tcpdump工具,使用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> 20222417.txt;wc -l 20222417.txt指令( tcpdump -nn見1.tcpdump介紹;cut -d '.' -f 10擷取以'.'為分隔符的第10列;uniq檢查並刪除 文字檔案中重複出現的行列;wc -l獲得行數)。

共有165個IP地址

2.4.6攻擊者嘗試攻擊了那些安全漏洞
看到TCP資料包占99.7%,UDP包只佔0.3%

繼續使用tcpdump工具,檢視被掃描了的tcp和udp埠,並確定響應的埠
tcp:

udp:

檢視TCP 135 25埠,發現正常連線,沒有資料交換,不是攻擊

檢視TCP 139埠,發現基本上都是普通連線,沒有傳遞具體會話內容

TCP 445埠相關的通訊中,第33280號報文內能夠觀察到PSEXESVC.EXE,這實際上揭示了Dv1dr蠕蟲的存在,它是一種透過IRC(網際網路中繼聊天)進行通訊的惡意軟體。Dv1dr蠕蟲特別之處在於它是一種口令蠕蟲,其感染機制在於利用其他電腦的弱口令。緊接著33280號報文之後,出現了來自主機的響應報文,這一跡象表明攻擊已經取得成功,即蠕蟲已經成功侵入了該主機,並且該主機已向伺服器傳送了響應,確認已被感染。

TCP4899埠,透過分析報文,可以發現攻擊者成功地使用了Radmin遠端控制軟體,並且在攻擊成功後對受控機進行了控制。這種攻擊手段屬於遠端控制攻擊,駭客透過遠端控制工具控制受控機,進而實現竊取敏感資訊、攻擊其他網路等行為。

TCP80埠,發生了緩衝區溢位攻擊和蠕蟲攻擊

UDP137埠,有大量NBNS資料包

3.問題及解決方案
問題1:使用Process Explorer無法檢視rada.exe的資訊
解決方案:執行Process Explorer要用管理員才有許可權檢視

4.學習感悟、思考等
透過這次實驗,我不僅複習並深化了之前在資訊保安保障技術課程中學到的Wireshark抓包分析技能,還掌握了更為進階的惡意程式碼分析技術,包括但不限於惡意程式碼的脫殼處理、字串提取以及函式呼叫分析。這些實踐操作不僅讓我將理論知識與實際操作緊密結合,還促使我對資訊保安領域的理解邁向了一個新的高度。
實驗過程中,我深刻體會到,網路安全攻防是一個既需要紮實理論基礎又強調實踐操作的領域。我運用了大量網路安全相關的命令和工具,以應對和分析不同型別的惡意程式碼攻擊。這些工具的使用不僅提升了我的技術操作能力,也讓我意識到,隨著技術的不斷進步,惡意程式碼的手段也日益複雜多變.

相關文章