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

便便狗發表於2024-11-05

一、實驗內容

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

對提供的rada惡意程式碼樣本,進行檔案型別識別,脫殼與字串提取,以獲得rada惡意程式碼的編寫作者,具體操作如下:
(1)使用檔案格式和型別識別工具,給出rada惡意程式碼樣本的檔案格式、執行平臺和加殼工具;
(2)使用超級巡警脫殼機等脫殼軟體,對rada惡意程式碼樣本進行脫殼處理;
(3)使用字串提取工具,對脫殼後的rada惡意程式碼樣本進行分析,從中發現rada惡意程式碼的編寫作者是誰?

(二)使用IDA Pro靜態或動態分析crackme1.exe與crakeme2.exe,尋找特定輸入,使其能夠輸出成功資訊。
(三)分析一個自制惡意程式碼樣本rada,並撰寫報告,回答以下問題:

(1)提供對這個二進位制檔案的摘要,包括可以幫助識別同一樣本的基本資訊;
(2)找出並解釋這個二進位制檔案的目的;
(3)識別並說明這個二進位制檔案所具有的不同特性;
(4)識別並解釋這個二進位制檔案中所採用的防止被分析或逆向工程的技術;
(5)對這個惡意程式碼樣本進行分類(病毒、蠕蟲等),並給出你的理由;
(6)給出過去已有的具有相似功能的其他工具;
(7)可能調查處這個二進位制檔案的開發作者嗎?如果可以,在什麼樣的環境和什麼樣的限定條件下?

(四)取證分析實踐

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)那些攻擊成功了?是如何成功的?

二、實驗過程

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

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

1:使用檔案格式和型別識別工具,給出rada惡意程式碼樣本的檔案格式、執行平臺和加殼工具
1.1先去學習通下載.rar壓縮包並複製到虛擬機器中,將檔案提取出來後使用 file 命令檢視RaDa.exe的檔案型別
image

見RaDa.exe是一個Windows PE可執行檔案,並且具有GUI(圖形化介面)
1.2使用peid工具檢視RaDa.exe的基本資訊
image
檔案格式:PE32說明該檔案是32位的可執行檔案。
執行平臺:(GUI) Intel 80386, for MS Windows說明能在基於Intel 80386的Windows作業系統系統上執行。
加殼工具:UPX 0.89.6 - 1.02 / 1.05 - 2.90 -> Markus & Laszlo
3.使用超級巡警脫殼機脫殼,脫殼前後對比
透過strings RaDa.exe進行提取,沒脫殼是有許多亂碼
image

基本都是亂碼,這是因為該檔案被upx加殼的緣故,正常字元無法顯示

2:使用超級巡警脫殼機等脫殼軟體,對rada惡意程式碼樣本進行脫殼處理
2.1對RaDa.exe進行脫殼
image

3:使用字串提取工具,對脫殼後的rada惡意程式碼樣本進行分析,從中發現rada惡意程式碼的編寫作者是誰?
3.1再用strings命令檢視脫殼後的RaDa.exe(RaDa_unpacked.exe)
image
image
image
image

這時就會有正常的字元資訊了。透過查詢發現該惡意程式碼的作者為:Raul Siles和David Perez
image

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

1:使用file命令檢視crackme的檔案型別
Linux環境下自帶file命令,
Windows 版本可以去 http://gnuwin32.sourceforge.net/packages/file.htm 下載
image
如圖可知,這兩個檔案都是Windows PE可執行檔案,但沒有GUI,是命令列程式。

2:對crackme1.exe進行破解
嘗試執行該程式,試探其輸入格式
image

檔案時,後面帶一個引數的情況與其它幾種情況不同,可能輸入格式就是這種。
使用IDA pro工具開啟該檔案,嘗試閱讀分析:

image

在這裡發現了之前執行產生的兩種情況,同時還有額外的兩種情況。
點選其中一個,檢視出現提示語的組合語言:
image

發現這些提示語都需要函式sub_401280。點選functions頁面找到sub_401280函式並雙擊:
image

倒數第二行cmp [ebo+arg_0],2 為判斷程式是否有兩個引數。
image

根據第二個引數匹配,進行相應的分支。可以看出當使用者輸入“I know the secret”的時候,程式口令輸入正確,若當使用者輸入不為“I know the secret”則顯示“Pardon? What did you say?”,其餘情況則顯示“I think you are missing something.”。
image

3:對crackme.exe2進行破解
根據破解crackme.exe1的方法,發現主要函式還是sub_401280:
image

該檔案的輸入仍是兩個引數的形式,
判斷條件:
第一個引數是否是“crackmeplease.exe”,是則進行下一步比較,不是則顯示"I have an identity problem."
第二個引數是否是"I know the secret",是則"We have a little secret:Chocolate"(這個結果是unk_403080 中的字串分別與0x42h 進行異或運算得來的)否則顯示 “Pardon? What did you say?”
其餘則顯示"I think you are missing something."
image
image
進行試驗,發現正確

(三)分析一個自制惡意程式碼樣本rada,並撰寫報告,回答以下問題:
1:提供對這個二進位制檔案的摘要,包括可以幫助識別同一樣本的基本資訊

在虛擬機器中輸入md5sum RaDa.exe檢視MD5摘要值:
image

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

在學習通下載ProcessExplorer.rar並解壓開啟,隨後雙擊執行unpacked的RaDa.exe檔案,注意出現彈窗後不要點確定,在Process Explorer中雙擊程序,可以看到:
image

點選圖片左側的Strings頁面檢視檔案的目的:
image
image
image
image
image

可以看出:執行該檔案,會向http://10.10.10.10/RaDa傳送請求,連線RaDa_commands.html進行上傳或下載,放入檔案C:\RaDa\tmp
執行RaDa.exe時,會自動複製該程式到C:\RaDa\bin中
image

Starting DDoSSmurf remote attack…說明還有分散式拒絕服務攻擊
同時也會對登錄檔進行更改(讀寫和刪除操作),相應的登錄檔(開啟登錄檔編輯器)目錄為HKLM\Software\Vlware, Inc.Vware ToolsiInstallPath和HKLM\Software"Hicrosoft\Windows\CurrentVersioniRun
image
image
還能控制電腦進行命令操作:get(下載),put(上傳),screenshot(螢幕截圖),sleep(休眠)

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

(1)該二進位制檔案能對登錄檔進行讀寫和刪除操作,新增了一個登錄檔項:實現了開機自啟動RaDa。
(2)自我複製到C盤,將RaDa.exe複製在Rada\bin資料夾中。
(3)實現遠端控制。
(4)實現入侵系統並操縱主機,能控制主機進行get、put、screenshot、sleep命令

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

使用了upx加殼來防止被分析。如以上所示,在沒脫殼前,strings下看到的都是亂碼,但脫殼後就能正常識別了。

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

其應該是一種後門。原因為它不會自主傳播、複製,並且它沒有進行偽裝來獲取許可權,也不存在欺騙下載的操作。同時可以實現操控目標主機、提權的行為,是後門程式的主要特點,所以判定為後門。

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

實驗二的後門程式獲取主機或虛擬機器的shell,能獲取目標主機音訊、攝像頭、擊鍵記錄等內容。

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

方法一:執行RaDa_unpacked.exe,開啟ProcessExplorer,找到執行中的該檔案雙擊,再點選strings頁面:
image
方法二:在Windows的命令提示符中,輸入RaDa.exe --authors即可檢視作者(需關閉防火牆)
image
除此之外,應當還有別的方法檢視作者,此處不贅述。

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

(1)基於特徵碼檢測
特徵碼檢測(Signature-based Detection)是透過比對已知惡意程式的特徵碼來檢測後門程式。特徵碼通常是程式程式碼的特定位元組序列或雜湊值,這些序列是已知的惡意軟體的“指紋”。
工作原理:
資料庫匹配:首先,建立包含已知惡意程式(包括後門程式)的特徵碼資料庫。然後,對目標系統中的可執行檔案進行掃描,提取其位元組序列,並與特徵碼資料庫中的已知惡意軟體特徵碼進行比對。
檢測方式:如果目標程式的特徵碼與資料庫中的已知後門程式的特徵碼匹配,則可以標記該程式為可疑或惡意。
優缺點:
優點:實現簡單、檢測速度快,適用於已知惡意軟體的檢測。
缺點:只能檢測已知的惡意程式,無法發現新的或變種的後門程式。
(2)行為分析法
行為分析法透過監控程式在執行過程中的行為來判斷其是否具有惡意特徵。後門程式通常會表現出異常的行為,例如:與外部伺服器通訊、修改系統配置或登錄檔、獲取管理員許可權等。
工作原理:
系統監控:實時監控系統中的程式活動,如檔案訪問、網路連線、登錄檔修改、系統呼叫等。
異常行為識別:透過與正常程式的行為進行對比,識別程式是否具有異常行為。如果某個程式嘗試監聽非標準埠、修改系統安全設定或進行網路通訊等,可以標記為可疑後門。
沙箱技術:將程式在一個受控環境中執行,觀察其行為是否符合正常應用程式的執行模式。
優缺點:
優點:能夠發現未知的後門程式,透過行為特徵來識別惡意程式。
缺點:需要較高的計算資源,實時監控可能會導致系統效能下降。此外,有些後門程式可能採用反監控技術,逃避檢測。
(3)靜態分析法
靜態分析法是透過分析程式的原始碼、二進位制檔案或可執行檔案的結構來發現後門程式。該方法不需要執行程式,只透過對檔案的內容進行深入的檢查來檢測潛在的後門。
工作原理:
二進位制程式碼分析:分析程式的二進位制程式碼,查詢其中是否存在可疑的程式碼片段,比如與外部伺服器通訊的函式、特定的加密演算法、惡意的系統呼叫等。
控制流分析:透過反彙編工具檢查程式的控制流,尋找與惡意行為相關的指令或反常的程式碼路徑。
字串分析:掃描程式中的可識別字串,尋找與後門功能相關的關鍵詞(如網路地址、使用者名稱、密碼等)。
優缺點:
優點:不需要執行程式,適用於惡意程式的早期檢測。
缺點:需要較強的分析能力,且面對複雜的加密和混淆手段,靜態分析可能無法完全有效。
(4)基於網路流量分析
後門程式通常會與遠端攻擊者進行通訊,因此透過分析網路流量可以發現潛在的後門行為。此方法透過監控和分析系統的網路流量,尋找異常的通訊模式來檢測後門程式。
工作原理:
流量監控:實時監控系統的所有網路通訊,特別是外部連線和資料傳輸。
異常模式檢測:透過分析流量的源IP、目的IP、傳輸協議、資料包大小等特徵,識別是否存在與已知惡意行為模式相符的通訊活動。比如,發現與外部命令控制伺服器的可疑連線、加密的通訊流量等。
流量行為關聯:將流量模式與已知惡意網路活動的行為特徵進行比對,發現潛在的後門通訊。
優缺點:
優點:可以檢測隱藏在網路中的後門行為,不需要直接分析本地檔案。
缺點:可能會產生較大的資料流量,導致資源消耗較高。此外,一些後門程式可能使用加密、代理等手段隱藏其通訊內容。
(5)記憶體分析法
記憶體分析法透過實時監控系統記憶體,檢測是否存在惡意程式的後門程式碼。後門程式有時會在記憶體中載入自己並隱藏其蹤跡,因此僅憑硬碟中的檔案可能難以發現後門。
工作原理:
記憶體掃描:對系統記憶體進行掃描,尋找可疑的程式碼段、資料段或程序。惡意程式碼往往在記憶體中駐留且不被直接儲存在磁碟上,因此記憶體分析可以幫助揭示這些隱秘的後門。
程序間通訊監控:檢查各程序之間的通訊,是否存在異常的記憶體共享、注入或惡意的程序間操作。
動態分析:透過動態除錯手段,可以追蹤程式的記憶體載入過程,發現是否有後門程式碼透過注入或自載入方式進入記憶體。
優缺點:
優點:可以檢測執行時的惡意程式碼,即使後門程式未儲存在磁碟上也能被發現。
缺點:記憶體分析複雜,需要較強的技術支援,且可能會產生較大的計算負擔。

(四)取證分析實踐

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

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

IRC:IRC是英文Internet Relay Chat的縮寫,中文意為“網際網路中繼聊天”。它是一種基於網際網路的即時通訊協議,透過客戶端軟體連線到伺服器上,使用者可以在不同的聊天室中進行實時交流。與其他即時通訊工具相比,IRC具有開放性、穩定性和安全性等優勢。
通常,IRC客戶端在申請加入網路時,會傳送一系列的訊息與伺服器進行握手和認證。而IRC使用的TCP埠通常是6667,但也可能因伺服器配置的不同而有所變化。

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

殭屍網路(Botnet)是指透過一種或多種傳播手段,感染大量計算機或其他裝置,使其變成“殭屍”主機,進而組成一個由惡意控制者管理的網路。這些被感染的裝置(通常稱為“殭屍”或“bot”)會透過特定的控制通道與攻擊者之間進行通訊,接受指令並執行惡意活動。殭屍網路的名稱源於它的特徵——大量的計算機像“殭屍”一樣被遠端操控,執行攻擊者的命令,通常沒有使用者的知情或同意。
殭屍網路的工作原理:
攻擊者透過多種方式將惡意的“殭屍程式”(也稱為bot)傳播到網際網路上的各類裝置,包括個人電腦、伺服器、路由器等。一旦感染了bot程式,這些裝置就會加入殭屍網路,變成攻擊者的遙控工具。感染後的裝置通常會等待來自指揮控制伺服器(C&C)的指令,然後執行各種惡意活動。
這些惡意活動可能包括但不限於:
分散式拒絕服務攻擊(DDoS攻擊):殭屍網路可以利用大量被感染的計算機發起聯合攻擊,對目標網站或伺服器進行海量流量轟炸,導致目標伺服器超載,甚至當機,造成服務不可用。
垃圾郵件傳播:殭屍網路還可以被用來傳送大量垃圾郵件,郵件中可能包含惡意軟體、釣魚連結或其他詐騙內容,用於誘騙受害者下載病毒、洩露個人資訊或進行其他欺詐行為。
資料盜竊:殭屍網路中的感染裝置可以用來竊取儲存在使用者計算機中的敏感資訊,如個人身份資訊、信用卡資訊、銀行賬號、甚至企業的商業機密。
惡意軟體分發:攻擊者還可以透過殭屍網路傳播惡意軟體,例如勒索病毒、間諜軟體或其他型別的惡意程式碼,進一步感染更多裝置或實施勒索攻擊。
惡意挖礦:攻擊者利用被感染的裝置進行非法的加密貨幣挖礦。透過殭屍網路,攻擊者可以在不被注意的情況下使用受害者的計算資源來挖掘比特幣或其他加密貨幣,從而牟取不正當的經濟利益。

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

將下載好的botnet_pcap_file.dat檔案拖入開啟的wireshark,輸入:
ip.src == 172.16.134.191 && tcp.dstport == 6667ip.src == 172.16.134.191 && tcp.dstport ==
6667
image
發現蜜罐主機與5臺IRC伺服器進行了通訊,分別為:
209.126.161.29
66.33.65.58
63.241.174.144
217.199.175.10
209.196.44.172

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

首先在虛擬機器中輸入sudo apt install tcpflow安裝tcpflow,再將檔案botnet_pcap_file.dat拖到虛擬機器中,然後命令列中輸入
tcpflow -r botnet_pcap_file.dat 'host 209.196.44.172 and port 6667:
使用命令來獲取訪問該伺服器的主機數量
cat 209.196.044.172.06667-172.016.134.191.01152 | grep --text "^:irc5.aol.com 353" | sed "s/^:irc5.aol.com 353 rgdiuggac @ #x[^x]*x 😕/g" | tr ' ' '\n' | tr -d "\15" | grep -v "^$" | sort -u | wc -l:
image

由上圖可知有3461個結果。

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

輸入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 > ipaddr.txt;wc -l ipaddr.txt:
image
再輸入cat ipaddr.txt檢視詳細結果:
image
這些ip地址即被用於攻擊蜜罐主機。

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

首先我們輸入
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篩選出蜜罐主機被攻擊的TCP埠:
image
然後我們再輸入
tcpdump -r botnet_pcap_file.dat -nn 'src host 172.16.134.191' and udp | cut -d ' ' -f 3 | cut -d '.' -f 5 | sort | uniq篩選出蜜罐主機被攻擊的UDP埠:
image
可以發現被攻擊的埠結果如下:
TCP:135(rpc),139(netbios-ssn),25(smtp),445(smb),4899(radmin),80(http)
UDP:137(netbios-ns)
輸入(tcp.dstport == 135 || tcp.dstport == 25)&& ip.dst == 172.16.134.191在Windows端使用Wireshark過濾TCP埠:
image
可以發現,25埠和135埠僅僅進行了TCP三次握手,沒有明顯的攻擊行為。
再輸入tcp.dstport80 && ip.dst == 172.16.134.191:
image
緩衝區溢位攻擊。傳送了好多重複字母的請求包,說明也許正在攻擊伺服器的漏洞從而獲取系統許可權。
image
但是以上攻擊被蜜罐主機識別併傳送RST資料包,所以80埠的攻擊失敗。
再輸入tcp.dstport
139 && ip.dst == 172.16.134.191:
image
可以發現雖然多個IP嘗試和蜜罐主機在此埠建立連線,但都被蜜罐主機識別併傳送RST資料包,所以攻擊也是失敗的。
再輸入tcp.dstport445 && ip.dst == 172.16.134.191:
image
可以發現,資料包有一個PSEXESVC.EXE。PsExec 是由 Mark Russinovich 建立的 Sysinternals Suite中包含的工具。最初,它旨在作為系統管理員的便利工具,以便他們可以透過在遠端主機上執行命令來執行維護任務。後來因為太過方便,被利用到內網滲透之中。它是一種Dv1dr32蠕蟲,並且每個IP地址連入的返回資訊中含有\PIPE\ntsvcs,命名管道\Pipe\Ntsvcs是作為 SCM 和與特定服務互動的 SCP(服務控制程序)之間的遠端過程呼叫介面,所以攻擊成功。
輸入tcp.dstport
4899 && ip.dst == 172.16.134.191:
image
可以發現只有210.22.204.101訪問過這個埠,經查詢可知該埠是Radmin遠端控制工具,可能是被利用來控制蜜罐主機。
再輸入udp.port==137:
image
NBNS是NetBIOS的命名服務,並不是攻擊行為。

7:哪些攻擊成功了?是如何成功的?

綜上所述,445、4899的攻擊是成功的,攻擊過程與成功原因詳見上文

三、問題及解決方案

問題:kali虛擬機器中沒有tcpflow
解決方案:
經上網查詢資料,發現
sudo apt-get install tcpflow

四、實驗感悟

透過本次《網路與系統攻防技術》實驗,我獲得了許多寶貴的經驗,並深刻理解了理論與實踐相結合的重要性。在惡意程式碼分析、可執行檔案分析和取證分析的過程中,網路安全理論、作業系統原理以及程式設計技能等多方面的知識得到了實際應用。例如,在對 RADA 惡意程式碼樣本進行分析時,從檔案型別識別、脫殼到提取字串尋找作者,每個步驟都涉及了多種技術和工具的結合使用。這種跨學科的實踐使我加深了對相關知識的理解,也讓我認識到,只有將理論知識與實踐相結合,才能真正掌握並靈活運用網路安全的核心技能。
此次實驗與前幾次實驗不同,不涉及大量命令和程式碼,而是側重於分析埠及檢測攻擊行為。因此,對結果的分析與識別能力提出了更高要求。例如,在使用IDA Pro和ProcessExplorer分析RaDa_unpacked.exe時,需要理解彙編中的呼叫關係及strings中的資訊含義。同樣,在使用Wireshark時,如何運用過濾器及判斷是否存在攻擊行為,也是必須掌握的技能。這要求我們能夠從實驗結果中準確辨別並分析出引發這些結果的原因。這次試驗,提高了我的能力,使我受益匪淺。

相關文章