20212935 2021-2022-2 《網路攻防實踐》 第八次實踐
1 實驗目的
2 實驗環境
Kali、WinXP。
3 實驗內容
3.1動手實踐任務一
對提供的rada惡意程式碼樣本,進行檔案型別識別,脫殼與字串提取,以獲得rada惡意程式碼的編寫作者,具體操作如下:
(1)使用檔案格式和型別識別工具,給出rada惡意程式碼樣本的檔案格式、執行平臺和加殼工具;
(2)使用超級巡警脫殼機等脫殼軟體,對rada惡意程式碼樣本進行脫殼處理;
(3)使用字串提取工具,對脫殼後的rada惡意程式碼樣本進行分析,從中發現rada惡意程式碼的編寫作者是誰?
3.2動手實踐任務二:分析Crackme程式
任務:在WinXP Attacker虛擬機器中使用IDA Pro靜態或動態分析crackme1.exe和crackme2.exe,尋找特定的輸入,使其能夠輸出成功資訊。
3.3分析實踐任務一
分析一個自制惡意程式碼樣本rada,並撰寫報告,回答以下問題:
1、提供對這個二進位制檔案的摘要,包括可以幫助識別同一樣本的基本資訊;
2、找出並解釋這個二進位制檔案的目的;
3、識別並說明這個二進位制檔案所具有的不同特性;
4、識別並解釋這個二進位制檔案中所採用的防止被分析或逆向工程的技術;
5、對這個惡意程式碼樣本進行分類(病毒、蠕蟲等),並給出你的理由;
6、給出過去已有的具有相似功能的其他工具;
7、可能調查處這個二進位制檔案的開發作者嗎?如果可以,在什麼樣的環境和什麼樣的限定條件下?
3.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、那些攻擊成功了?是如何成功的?
4 實驗過程
4.1動手實踐任務一
(1)進入rada,輸入命令列file rada.exe,可以得到這是一個32為PE檔案,並且還是GUI檔案
(2)輸入命令列strings檢視可列印字串,發現都是亂碼,應該是加殼導致的:
(3)查殼:用PEID工具開啟
(4)脫殼:使用超級巡警脫殼器,開啟rada.exe後可以看到脫殼成功
(5)輸入命令列strings rada_unpacked.exe,檢視可列印字串,可以看到不是亂碼了。
(6)使用IDA Pro Free工具,選擇脫殼後的檔案,可以看到作者等資訊。
4.2 動手實踐任務二:分析Crackme程式
4.2.1 分析Crackme1程式
(1)開啟crackme1檔案,輸入引數
(2)開啟IDA分析crackme1程式
(3)開啟strings視窗,可以看到上邊cmd中得到的回覆命令
(4)開啟函式呼叫圖,檢視401280函式段
(5)檢視401280函式段的彙編程式碼,並檢視
(6)進行驗證:輸入命令列crackme1.exe “I know the secret”,可以看到驗證成功
4.2.2 分析Crackme2程式
(1)開啟crackme2檔案,輸入引數,試探輸入格式
(2)開啟IDA分析crackme1程式
(3)開啟strings視窗,可以看到上邊cmd中得到的明文字串
(4)開啟函式呼叫圖,檢視401280函式段
(5)檢視401280函式段的彙編程式碼,並檢視
(6)驗證程式名錯誤的輸出:輸入命令列crackme2.exe “I know the secret”
(7)改名:輸入命令列copy crackme2.exe crackmeplease.exe
(8)驗證程式名正確,密碼錯誤;輸入命令列crackmeplease.exe 1
(9)驗證程式名正確,密碼正確:輸入命令列crackmeplease.exe “I know the secret”,顯示驗證成功
4.3 分析實踐任務一:
4.3.1 分析流程
(1)開啟wireshark進行抓包,開啟process monitor進行監聽
(2)開啟rada.exe使其執行,然後開啟process monitor,可以看到顯示這個已經被複制到C盤下新建的Rada資料夾裡的bin目錄下:
除此還可觀察到進行了很多登錄檔的操作:
再分析wireshark抓包到的資料,可以看到埠號為80的10.10.10.10 IP地址經常與本主機進行訪問
(3)輸入命令列md5sum Rada.exe,得到其md5值:
(4)輸入命令列file rada.exe,可以得到這是一個32位PE檔案,並且還是GUI檔案:
(5)檢視process explorer,可以發現這個惡意程式用http連線到目標為10.10.10.10的主機下的一個Rada_commands的網頁上,並下載和上傳了一些檔案,並且在受害者C盤rada下建立了一個tmp資料夾保護其下載的檔案,除此外還對主機進行了讀寫和刪除操
(6)用IDA軟體分析動手實踐一脫殼後的rada檔案,開啟strings視窗,將type改為unicode格式,可以找到作者資訊如下:
(7)點選此條作者資訊,可以找到函式sub_405E40
(8)function裡點選檢視sub_405E40,flow chart中檢視此流程,可以發現這個函式應該是處理命令列引數的
(9)function calls中檢視,發現sub_40B010函式
(10)function中找到40B010,用flow chart檢視,可以找到作者資訊
4.3.2 分析總結
(1)提供對這個二進位制檔案的摘要,包括可以幫助識別同一樣本的基本資訊;
此檔案的md5摘要值為caaa6985a43225a0b3add54f44a0d4c7,這是一個UPX加殼檔案,並且還是一個32位PE GUI檔案。
(2)找出並解釋這個二進位制檔案的目的;
這個檔案下載和上傳了一些檔案,除此外還對主機進行了讀寫和刪除操作。
(3)識別並說明這個二進位制檔案所具有的不同特性;
這個檔案在執行時,會將自身複製在受害者C盤rada下建立的一個tmp資料夾。
(4)識別並解釋這個二進位制檔案中所採用的防止被分析或逆向工程的技術;
通過加殼及DDOs攻擊。
(5)對這個惡意程式碼樣本進行分類(病毒、蠕蟲等),並給出你的理由;
這個檔案不具有傳播和感染的風險,所以應該不是病毒、蠕蟲。此外這個檔案沒有把自己偽裝成有用的程式,因此不是木馬程式,可能是一個後門或殭屍程式。
(6)給出過去已有的具有相似功能的其他工具;
查資料後,發現以往的木馬Bobax、海陽頂端、木馬Setiri等工具具有類似的功能。
(7)可能調查處這個二進位制檔案的開發作者嗎?如果可以,在什麼樣的環境和什麼樣的限定條件下?
這個二進位制檔案需要在脫殼處理後的檔案中才能調查到。它是在2004年被Raul siles和David Perze開發。
4.4 分析實踐任務二:
4.4.1 分析流程
(1)使用wireshark開啟botnet_pcap樣本檔案,使用ip.src==172.16.134.191&&tcp.dstport==6667命令查詢目標伺服器IP地址,可以看到有如下伺服器:209.126.161.29、66.33.65.58、63.241.174.144、217.199.175.10、209.196.44.172
(2)root許可權下,使用apt-get install tcpflow命令安裝tcpflow
(3)執行tcpflow -r botnet_pcap_file.dat 'host 209.196.44.172 and port 6667'命令,使用vim report.xml命令開啟report.xml檔案如下所示
可以看到有一部分是從目標伺服器發出,還有一部分是從其他主機發送的
(4)執行export LC_COLLATE='C',export LC_CTYPE='C'命令,避免出現字元編碼問題,使用管道命令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進行篩選,得到主機總數為3457個
(5)執行tcpdump -n -nn -r botnet_pcap_file.dat 'dst host 172.16.134.191' | grep -a -v 'reply' | cut -d '.' -f 10 |cut -d ':' -f 1 |sort |uniq |more >1.txt; wc -l 1.txt指定IP地址收集被攻擊的埠寫入1.txt,執行命令統計
使用vim 1.txt命令檢視此檔案,可以看到有148個被攻擊的埠
(6)使用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 命令,通過snort獲取所有可能連結的主機IP地址,將內容輸出到2.txt
檢視此檔案,可以看到有165個主機可能被用於入侵蜜罐
(7)使用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埠如下:
使用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埠如下:
查資料後可以得到TCP響應埠分別為:135(rpc)、193(netbios-ssn)、25(smtp)、445(smb)、4899(radmin)、80(http);UDP響應埠為:137(netbios-ns).
(8)分析udp137號埠:
137埠的主要作用是在區域網中提供計算機的名字或IP地址查詢服務,訪問這個埠的話一般是安裝NetBIOS協議後,該埠會自動處於開放狀態。
(9)分析tcp135號和25號埠:
Wireshark中使用tcp.port == 135 || tcp.port == 25進行篩選資料包,可以看到這兩個埠進行了交接,沒有資料間的相互傳輸,所以攻擊者可能只是做了connect掃描
(10)分析tcp80號埠:
使用tcp.dstport==80&&ip.dst==172.16.134.191命令進行篩選資料包。
①24.197.194.106:可以看到這個IP有許多條資料包,都是在攻擊IIS伺服器漏洞,從而獲得系統許可權。
②210.22.204.101:有許多C ,應該是攻擊者想通過緩衝區溢位攻擊獲得一個命令列。
③218.25.147.83:會看到C:\notworm字元樣,判斷這是一個紅色程式碼蠕蟲攻擊。
④是否攻擊成功:使用tcp.srcport==80&&ip.src==172.16.134.191&&http 命令進行篩選,選擇第238條資料包,追蹤其tcp流,可以看到主機做的迴應都是預設介面,所以80埠的攻擊失敗。
(11)分析tcp139號埠:
使用tcp.dstport==139&&ip.dst==172.16.134.191命令進行篩選,發現有許多空白的會話,推測應該是沒有成功的SMB查點。
(12)分析tcp445號埠:
使用tcp.dstport==445&&ip.dst==172.16.134.191命令進行篩選,發現有一個PSEXESVC.EXE檔案,查資料得知這個檔案是一種通過IRC進行通訊的Dv1dr32蠕蟲,而且發現每個都有迴應,推斷攻擊成功。
(13)分析tcp4899埠:
使用tcp.dstport==4899&&ip.dst==172.16.134.191命令進行篩選,發現只有一個210.22.204.101 IP訪問過,另查資料可知4899埠是一個遠端控制軟體radmin服務端監聽埠。
4.4.2 分析總結
(1)IRC是什麼?當IRC客戶端申請加入一個IRC網路時將傳送哪個訊息?IRC一般使用那些TCP埠?
①IRC(Internet Relay Chat)是網際網路中繼聊天。
②當IRC客戶端申請加入一個IRC網路時需要傳送的訊息有口令、暱稱和使用者資訊。格式分別為:USER <username> <hostname> <servername> <realname>、PASS <password>、NICK <nickname>。註冊完成後,客戶端就使用JOIN資訊來加入頻道,格式如下:JOIN <channel>。
③一般使用6667埠。
(2)殭屍網路是什麼?殭屍網路通常用於什麼?
①殭屍網路 Botnet 是指採用一種或多種傳播手段,將大量主機感染bot程式(殭屍程式)病毒,從而在控制者和被感染主機之間所形成的一個可一對多控制的網路。攻擊者通過各種途徑傳播殭屍程式感染網際網路上的大量主機,而被感染的主機將通過一個控制通道接收攻擊者的指令,組成一個殭屍網路。
②殭屍網路往往被黑客用來發起大規模的網路攻擊,如分散式拒絕服務攻擊(DDoS)、海量垃圾郵件等,同時黑客控制的這些計算機所儲存的資訊也都可被黑客隨意“取用”。
(3)蜜罐主機(IP地址:172.16.134.191)與哪些IRC伺服器進行了通訊?
與209.126.161.29、66.33.65.58、63.241.174.144、217.199.175.10、209.196.44.172共5個伺服器進行了通訊。
(4)在這段觀察期間,多少不同的主機訪問了以209.196.44.172為伺服器的殭屍網路?
3457個主機。
(5)哪些IP地址被用於攻擊蜜罐主機?
209.126.161.29、66.33.65.58、63.241.174.144、217.199.175.10、209.196.44.172
(6)攻擊者嘗試攻擊了哪些安全漏洞?
嘗試攻擊了TCP135(rpc)、193(netbios-ssn)、25(smtp)、445(smb)、4899(radmin)、80(http)及UDP137(netbios-ns)這些埠。漏洞如上4.4.1分析。
(7)哪些攻擊成功了?是如何成功的?
紅色程式碼蠕蟲攻擊、通過IRC進行通訊的Dv1dr32蠕蟲等,具體分析如上4.4.1。
5 實驗中遇到的問題及解決方法
分析實踐二中跟著示範視訊使用grep命令時,出現grep: (standard input): binary file matches 0錯誤,查資料後加一個-a就沒錯誤了,如原本是grep hello,改為grep -a hello就好了。
6 實驗感想
這一次敲得程式碼量相對於之前的實踐來說多了不少,特別考驗細心程度,以後要多練習敲點程式碼,降低出錯率。