20212909 2021-2022-2 《網路攻防實踐》實踐八報告
20212909 2021-2022-2 《網路攻防實踐》實踐八報告
一、實踐內容
1.動手實踐內容一
對提供的rada惡意程式碼樣本,進行檔案型別識別,脫殼與字串提取,以獲得rada惡意程式碼的編寫作者,具體操作如下:
(1)使用檔案格式和型別識別工具,給出rada惡意程式碼樣本的檔案格式、執行平臺和加殼工具;
(2)使用超級巡警脫殼機等脫殼軟體,對rada惡意程式碼樣本進行脫殼處理;
(3)使用字串提取工具,對脫殼後的rada惡意程式碼樣本進行分析,從中發現rada惡意程式碼的編寫作者是誰?
2.動手實踐任務二:分析Crackme程式
任務:在WinXP Attacker虛擬機器中使用IDA Pro靜態或動態分析crackme1.exe和crackme2.exe,尋找特定的輸入,使其能夠輸出成功資訊。
3.分析實踐任務一
分析一個自制惡意程式碼樣本rada,並撰寫報告,回答以下問題:
(1)提供對這個二進位制檔案的摘要,包括可以幫助識別同一樣本的基本資訊;
(2)找出並解釋這個二進位制檔案的目的;
(3)識別並說明這個二進位制檔案所具有的不同特性;
(4)識別並解釋這個二進位制檔案中所採用的防止被分析或逆向工程的技術;
(5)對這個惡意程式碼樣本進行分類(病毒、蠕蟲等),並給出你的理由;
(6)給出過去已有的具有相似功能的其他工具;
(7)可能調查處這個二進位制檔案的開發作者嗎?如果可以,在什麼樣的環境和什麼樣的限定條件下?
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)那些攻擊成功了?是如何成功的?
二、實踐過程
1.動手實踐任務一
- 使用檔案格式和型別識別工具,給出rada惡意程式碼樣本的檔案格式、執行平臺和加殼工具;
(1)在kali命令列中輸入命令file RaDa.exe
,開啟PEid檢視執行平臺和加殼工具,使用超級巡警脫殼機,對rada惡意程式碼樣本進行脫殼處理,生成RaDa_unpaked.exe。
發現RaDa是32位PE檔案,還是個GUI檔案,加殼工具為UPX 0.89.6 - 1.02 / 1.05 - 2.90 -> Markus & Laszlo,執行平臺為Win32。
(2)在kali中輸入命令strings RaDa.exe
分析RaDa.exe,發現都是亂碼,輸入命令strings RaDa_unpaked.exe
發現作者是:Raul Siles && David Perez
2.動手實踐任務二
- 分析crackme1.exe
(1)在WinXP_attacker命令列中輸入crackme1.exe +不同的個數的數字,來進行引數的猜測,根據輸出,猜測引數的個數應該是1個。
(2)開啟WinXP_attacker的IDA Pro,用它開啟分析crackme1.exe,打開發現一些有用的明文資訊!
(3)Ctrl +F12
開啟函式關係調用圖,發現關鍵C語言字元strcmp
和關鍵程式碼段401280。
(4)在Functions window視窗開啟程式碼段401280,通過檢視彙編程式碼段可以看到一些資訊,具體看圖片。
猜測密碼是: "I konw the secret"。
(5)在命令列輸入命令crackme1 "I konw the secret"
,驗證猜想,成功!
- 分析crackme2.exe
(1)同樣在在WinXP_attacker命令列中輸入crackme2.exe +不同的個數的數字,來進行引數的猜測,根據輸出,猜測引數的個數應該是1個。
(2)開啟WinXP_attacker的IDA Pro,用它開啟分析crackme2.exe,打開發現一些有用的明文資訊!
(3)Ctrl +F12
開啟函式關係調用圖,發現關鍵C語言字元strcmp
和關鍵程式碼段401280。
(4)F12
開啟Flow chart,檢視程式流程圖,猜測密碼是crackmeplease.exe
,輸入發現不對
(5)根據程式碼分析,程式名應該是crackmeplease.exe,在命令列中輸入copy crackme2.exe crackmeplease.exe
,複製crackmeplease.exe並改名為crackmeplease.exe,再次用crackmeplease.exe嘗試引數個數,發現通過了第一層判斷。
猜測密碼是: "I konw the secret"。
(6)在命令列輸入命令crackmeplease.exe "I konw the secret"
,驗證猜想,出現了沒有出現過的輸出,驗證成功。
3.分析實踐任務一
(1)在kali中輸入md5 RaDa.exe
,輸出md5值。
(2)開啟監視軟體Process Explorer,然後執行脫殼後的RaDa,也就是RaDa_unpacked.exe。在RaDa程序的屬性中,我們可以看出許多有用的資訊。
- RaDa.exe先通過HTTP,請求了10.10.10.10\RaDa\RaDa_commands.html
- 將RaDa.exe快取到C:\RaDa\tmp資料夾下
- 修改登錄檔HKLM\Software\Microsoft\Windows\CurrentVersion\Run\,將RaDa.exe設為開機啟動
- 將RaDa.exe檔案存放到C:\RaDa\bin資料夾下
- 發動DDOS遠端攻擊
至此,我們可以回答以下問題:
- 提供對這個二進位制檔案的摘要,包括可以幫助識別同一樣本的基本資訊;
MD5摘要為caaa6985a43225a0b3add54f44a0d4c7
基本資訊為:這是個32位的PE檔案,在Windows GUI介面下執行。 - 找出並解釋這個二進位制檔案的目的;
利用HTTP協議,發動DDOS攻擊
惡意修改登錄檔資訊,將該檔案設為開機啟動,使其每次開機都能發動攻擊,擅自對主機做上傳下載操作 - 識別並說明這個二進位制檔案所具有的不同特性;
RaDa.exe存放在宿主的C盤的RaDa資料夾下,然後通過修改登錄檔,讓它開機啟動,使得每當宿主主機啟動就能發起DDOS攻擊。
*識別並解釋這個二進位制檔案中所採用的防止被分析或逆向工程的技術;
在前面的實踐一中可以看出,該檔案採用UPX對檔案進行加殼。 - 對這個惡意程式碼樣本進行分類(病毒、蠕蟲等),並給出你的理由;
應該是一種後門程式。這個檔案的主要工作是完成對特定IP地址的DDoS攻擊,也有一些控制主機的功能,但不會在其他主機之間進行傳播。 - 給出過去已有的具有相似功能的其他工具:
msfvenom - 可能調查處這個二進位制檔案的開發作者嗎?如果可以,在什麼樣的環境和什麼樣的限定條件下?
可以。脫殼之後,用strings命令分析就行,實踐一也介紹了。
4.分析實踐任務二
- IRC是什麼?當IRC客戶端申請加入一個IRC網路時將傳送哪個訊息?IRC一般使用哪些TCP埠?
因特網中繼聊天(Internet Relay Chat),一般稱為網際網路中繼聊天,簡稱:IRC。它是由芬蘭人Jarkko Oikarinen於1988年首創的一種網路聊天協議。經過十年的發展,世界上有超過60個國家 提供了IRC的服務。IRC的工作原理非常簡單,
您只要在自己的PC上執行客戶端軟體,然後通過因特網以IRC協議連線到一臺IRC伺服器上即可,要加入一個IRC網路,需要傳送口令、暱稱和使用者資訊;註冊後,會使用JOIN資訊加入網路。
IRC使用的埠有:6667(明文傳輸,如irc://irc.freenode.net)、6697(SSL加密傳輸,如ircs://irc.freenode.net:6697)等。 - 殭屍網路是什麼?殭屍網路通常用於什麼?
殭屍網路 Botnet 是指採用一種或多種傳播手段,將大量主機感染bot程式(殭屍程式)病毒,從而在控制者和被感染主機之間所形成的一個可一對多控制的網路。
(1)在wireshark中開啟分下材料botnet_pcap_file.dat,輸入篩選條件ip.src == 172.16.134.191 && (tcp.dstport == 6667 or tcp.dstport == 6697)
,篩選源地址為172.16.134.191
、目的埠為6667
或6697
的資料包。
分析可得蜜罐主機(IP地址:172.16.134.191)與66.33.65.58
,63.241.174.144
,217.199.175.10
,209.196.44.172
,209.126.161.29
,進行了通訊。
(2)在kali中輸入sudo apt install tcpflow
安裝tcpflow,然後輸入命令tcpflow -r /home/kali/Desktop/botnet_pcap_file.dat 'host 209.196.44.172 and port 6667'
,這個命令將分析的結果輸出到report.xml檔案中,
在瀏覽器中開啟分析檔案。
(3)使用管道命令cat 209.196.044.172.06667-172.016.134.191.01152 | grep -a "^: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
。
檢視檔案,可以看到一共3461臺主機訪問了殭屍網路。
(4)使用tcpdump進行分析,輸入tcpdump -n -nn -r /home/kali/Desktop/botnet_pcap_file.dat 'dst host 172.16.134.191' | awk -F " " '{print $3}' | cut -d '.' -f 1-4 | sort | uniq | more > tcpdump.txt;wc -l tcpdump.txt
將分析結果輸入到了tcpdump.txt檔案下,可以看到有165個IP地址被用於攻擊蜜罐主機。
(5)輸入命令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埠有:135(rpc)、139(netbios-ssn)、25(smtp)、445(smb)、 4899(radmin)、 80(http)。
(6)輸入命令cpdump -r botnet_pcap_file.dat -nn 'src host 172.16.134.191' and udp | cut -d ' ' -f 3 | cut -d '.' -f 5 | sort | uniq
,篩選響應的TCP埠。
發現,只有137埠,說明攻擊者成功訪問了137號埠。137埠主要用於“NetBIOS Name Service”(NetBIOS名稱服務)。
(7)使用wireshark,逐一對篩選出的埠進行排查 - 135埠
發現進行了三次握手。 - 139埠
發現了TCP協議、SMB協議和NBSS協議。 - 25號埠
發現進行了三次握手。 - 445埠
發現了可疑程式PSEXESVC.EXE。
PSEXESVC.EXE:在橫向移動過程,攻擊者通常會使用PsExec在遠端主機執行命令。在客戶端執行psexec.exe後,如果伺服器認證成功,會將psexesvc.exe上傳到服務端的ADMIN$目錄並作為服務執行,在執行完命令後刪除對應的服務和psexesvc.exe。
通過對客戶端和服務端的事件日誌、登錄檔、檔案系統進行分析,可以從客戶端主機獲得連線的目的主機,連線時間等資訊;從服務端主機可以獲得連線的客戶端資訊,連線時間等資訊。
通過圖中看出,返回分組中包含\PIPE\ntsvcs,說明這次的攻擊成功了。 - 4899埠
發現進行了三次握手。 - 80埠
發現了/NULL.IDA?CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC...,說明攻擊者進行了緩衝區溢位攻擊。
發現了分組資訊有www.worm.com,說明攻擊者使用了蠕蟲,但是根據tcp流內容分析,攻擊者可能沒有攻擊成功。
綜上,攻擊者對445埠的漏洞發起的PsExec蠕蟲攻擊是成功的。在這次攻擊中,攻擊者使用PsExec.exe,獲得了遠端主機的訪問許可權。
三、學習中遇到的問題及解決辦法
P1:RaDa.zip密碼
S1:猜的密碼是rada,猜對了。
P2:在對crackme.exe分析時,視訊中的對彙編程式碼的分析,有一部分看不懂。
S2:新的IDA似乎可以直接反彙編成一些高階語言,可以通過直接獲得關鍵資訊。
四、實踐總結
通過本次實驗本次實驗,讓我瞭解了一些通過惡意程式碼進行攻擊的原理,包括惡意程式碼的結構、對目標的操作、取證分析等,瞭解並掌握了更多的分析工具,比如PEiD、超級巡警脫殼機、IDA Pro、process explorer。