1. 程式人生 > 其它 >20192419 2021-2022-2 《網路與系統攻防技術》實驗四實驗報告

20192419 2021-2022-2 《網路與系統攻防技術》實驗四實驗報告

目錄

1.實驗內容

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

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

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

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

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

2、使用IDA Pro靜態或動態分析crackme1.exe與crakeme2.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)那些攻擊成功了?是如何成功的?

2.實驗過程

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

在xp系統下,無法使用file命令,這裡是用kali系統使用file檢視,輸入file RaDa.exe來檢視rada檔案,該檔案是32位的PE可執行檔案。

返回xp系統,開啟PEiD檢視rada是否加殼,發現rada檔案覆蓋了一層UPX型別的殼。

xp系統無法使用strings命令,用kali系統輸入strings RaDa.exe檢視rada程式中可列印的字串,發現是一串亂碼,所以我們需要進行脫殼。

使用自動脫殼器進行脫殼,脫殼成功後文件為RaDa_unpacked.exe

xp系統無法使用strings命令,用kali系統輸入strings RaDa_unpacked.exe檢視脫殼後的rada程式中輸出的字串,可看到脫殼後我們能看到部分呼叫函式

使用process explorer監視工具,執行脫殼後的RaDa_unpacked.exe,雙擊檢視程式的Strings欄,可以看到加深色的一欄為作者和生成年份,是由Raul siles和Dacid Perze寫於2004年。

2.使用IDA Pro靜態或動態分析crackme1.exe與crakeme2.exe

  • crackme1.exe的分析

使用kali系統使用file檢視,輸入file crackme1.exe來檢視crackme1檔案,該檔案是32位的PE可執行檔案。

使用xp系統執行crackme1.exe,輸出I think you are missing something的字串,我們輸入一些引數。

輸入一個引數,輸出Pardon?What did you say?

輸入其他引數,輸出原文字I think you are missing something

使用IDA Pro反彙編20192419crackme1.exe,進入型別為PE Executable,檢視Strings window,看到我們還未輸出過的字串:I know the secret You know how to speak to programs,Mr Reverse Engineer

點選View檢視Function calls,可以發現strcmp和fprintf是我們經常在函式中呼叫的比較和輸出函式,從之前的輸入來看,該程式是有一個判斷引數的過程和輸出語句的過程,那麼關鍵部分應該在函式sub_401280中。

點選Function,點選函式sub_401280,點選IDA View-A檢視函式流程。可看到cmp [ebp+arg_0],2,說明判斷函式是否輸入兩個引數(第一個引數為函式名)

mov eax,[ebp+arg_4],其中ebp至ebp+arg_4記憶體儲的是程式名,add eax,4則是跳過程式名的引數,push offset aIKnowTheSecret即彈出 I know the secret,隨後進入strcmp函式將我們輸入的函式比較剛剛彈出的引數,正確則進入You know how to...,否則進入Pardon?What...

執行程式進行測試,得出結果。

  • crackme2.exe的分析

同理使用IDA開啟 crackme2.exe進行分析,檢視函式呼叫圖function calls,發現核心函式還是 sub_401280。

與前面crackme1不同的是少了add eax,4,那麼此次是判斷程式名是否為crackmeplease.exe,否則輸出I have an ...,是則繼續判斷輸入引數是否為I know the secret,否則輸出Pardon?What...,是則輸出We have a little..


進行測試,得到結果

3、分析一個自制惡意程式碼樣本rada,並撰寫報告

在kali系統上執行指令md5sum RaDa.exe得到md5摘要值

開啟監聽工具process explorer進行監聽,開啟監聽後執行脫殼後的RaDa.exe,分析得出該程式使用HTTP協議請求http://10.10.10.10\RaDa\RaDa_commands.html,即連線到目標為10.10.10.10的主機下的一個名為RaDa_commands的網頁,之後又下載和上傳檔案到C:/RaDa/tmp中。該惡意程式碼將其自我複製到主機系統盤,並激活了自啟動,還試圖從一個HTML頁面獲取並解析命令。同時,還發現該程式能夠使主機被用來進行DDoS攻擊。

該程式還會進行在登錄檔讀、寫和刪除。

使用Wireshark檢視指令ip.addr==10.10.10.10,可以看出肉機向目的主機發送大量SYN請求,得出植入該病毒的主機會向10.10.10.10進行DDos的SYN泛洪攻擊

開啟IDA Pro進行簡單分析,檢視字串string,可以檢視到相關字串。

檢視--authors,雙擊進入變數所在函式位置。

可看到該函式有兩個地方呼叫了該引數,我們雙擊進入第二個sub_408010+76處。可看到該引數作用是進行判斷是否在虛擬機器上執行,是則輸出Unknown argument: --authors,否則Authors:Raul siles&David Perze, 2004

我們在windows下進行驗證,發現確實如此。

  • 問題:

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

    MD5值CAAA6985A43225A0B3ADD54F44A0D4C7

    基本資訊:PE32 executable for MS Windows Intel 80386 32-bit

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

    連線網際網路時,該惡意程式就會通過http請求連線到指定主機,作為攻擊者的肉機向目的主機發送大量SYN請求,進行DDos的SYN泛洪攻擊,是一個後門程式。

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

    該程式自啟動並複製進C盤,並連線10.10.10.10IP的主機

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

    使用了UPX加殼工具進行了加殼處理

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

    後門程式,因為該惡意程式碼不具有自主傳播模組,並且沒有對程式進行偽裝,不是木馬,但是該程式是一個可進行遠端控制的惡意程式

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

    Bobax——2004也是使用HTTP協議從指定的伺服器下載命令檔案,然後解析並執行其中的指令。

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

    惡意程式的作者資訊,是Raul siles和David Perze於2004年編寫的。需要在非虛擬機器處執行。

4.取證分析實踐

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

IRC是指因特網中繼聊天(Internet Relay Chat),一般稱為網際網路中繼聊天。

申請加入一個IRC網路時會發送伺服器的域名,TCP申請埠和nickname。

一般使用6667(6660~6669)埠。

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

IRC語境下的殭屍網路是指IRC機器人連線成的IRC網路;採用一種或多種傳播手段,將大量主機感染bot程式(殭屍程式)病毒,從而在控制者和被感染主機之間所形成的一個可一對多控制的網路 。

通常用於DDos攻擊、分散式掃描、暴力密碼破解等。

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

由於IRC協議使用TCP連線,要找出與蜜罐主機通訊的IRC主機,可以利用建立TCP連線的三次握手過程進行分析。只需要找出蜜罐主機向哪些機器的IRC埠傳送過SYN包,即可找出蜜罐主機試圖通訊的IRC伺服器。

使用Wireshark分析20192419botnet_pcap_file.dat,輸入表示式過濾包:ip.src == 172.16.134.191 && tcp.dstport == 6667,過濾源IP為蜜罐主機且tcp目的埠為6667的資料包。得出IRC伺服器IP包括66.33.65.58、63.241.174.144、217.199.175.10、209.196.44.172、209.126.161.29。

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

使用tcpflow分流(篩選指定host與埠),指令為tcpflow -r botnet_pcap_file.dat '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內容如下:
<configuration> <fileobject> <filename>209.196.044.172.06667-172.016.134.191.01152</filename> <filesize>1082018</filesize> <tcpflow startime="2003-03-06T04:23:18.829879Z" endtime="2003-03-06T08:27:57.736205Z" mac_daddr="00:05:69:00:01:e2" mac_saddr="00:e0:b6:05:ce:0a" family="2" src_ipn="209.196.44.172" dst_ipn="172.16.134.191" srcport="6667" dstport="1152" packets="9798" out_of_order_count="275" len="1630694"/> </fileobject> <fileobject> <filename>172.016.134.191.01152-209.196.044.172.06667</filename> <filesize>1052</filesize> <tcpflow startime="2003-03-06T04:23:18.775202Z" endtime="2003-03-06T08:27:57.867166Z" mac_daddr="00:e0:b6:05:ce:0a" mac_saddr="00:05:69:00:01:e2" family="2" src_ipn="172.16.134.191" dst_ipn="209.196.44.172" srcport="1152" dstport="6667" packets="8902" out_of_order_count="8639" len="536112"/> </fileobject> </configuration>

接下來因為要找的是訪問 209.196.44.172 的主機,故此處著重看209.196.044.172.06667-172.016.134.191.01152這個檔案。使用指令cat 209.196.044.172.06667-172.016.134.191.01152 | grep "^: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對檔案篩選,發現報錯,原因是編碼不對。

將得到的209.196.044.172.06667-172.016.134.191.01152使用Mousepad開啟以utf-8的編碼儲存為20192419wire.py

繼續輸入cat 209.196.044.172.06667-172.016.134.191.01152 | grep "^: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臺主機訪問209.196.44.172。

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

首先,我們認為進入蜜罐的流量都是攻擊。使用tcpdump指定IP地址收集被攻擊的埠寫入20192419.txt,然後執行tcpdump -n -nn -r 20192419botnet_pcap_file.dat 'dst host 172.16.134.191' | grep -v 'reply' | cut -d '.' -f 10 | cut -d ':' -f 1 | sort | uniq | more >20192419.txt; wc -l 20192419.txt統計埠個數為148

接著使用如下指令找出所有的可能連線的主機的IP地址。
tcpdump -n -nn -r 20192419botnet_pcap_file.dat 'dst host 172.16.134.191' | awk -F " " '{print $3}' | cut -d '.' -f 1-4 | sort | uniq | more > 20192419a.txt;wc -l 20192419a.txt

這個指令的作用就是將連線IP地址輸出到20192419a.txt,統計為165個

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

使用sudo snort -r 20192419botnet_pcap_file.dat -c /etc/snort/snort.conf -K ascii指令先查一下網路流分佈情況,可看出響應的UDP和TCP埠的數量,大多為TCP

接著輸入指令 tcpdump -r 20192419botnet_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 20192419botnet_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)、 139(netbios-ssn)、 25(smtp)、 445(smb)、 4899(radmin)、 80(http) ;udp埠有 137(netbios-ns) 。

接下來對各個埠逐步分析:

  • TCP 135:我們看到只是進行了連線,但是是沒有資料傳輸,所以這攻擊者可能只是對這個埠進行了 connect 掃描。
  • TCP 25:與TCP 135一樣,只是connect 掃描。
  • TCP 139:這裡大部分連線也沒有傳遞具體會話內容,主要是SMB查點
  • TCP 445:可以看到許多 samr , srvsvc 字串,查詢字串後很容易發現一個 PSEXESVC.EXE 字串發現一個PSEXESVC.EXE的檔案,這個二進位制檔案主要是一種Dv1dr32蠕蟲,這種蠕蟲通過IRC進行通訊。

該源IP地址與蜜罐主機建立了會話,攻擊成功,這裡Windows的svcctl MSRPC介面用於同SCM(服務控制管理器)通訊,svcctl漏洞允許匿名使用者連線到SCM,然後就可以列舉所安裝的或正在執行的服務。

  • TCP 4899:只有 IP 地址 210.22.204.101 訪問過。遠端控制軟體所開啟的服務端埠,經常被黑客用來控制被自己控制的遠端電腦。
  • TCP 80: 通過該埠使用指令碼攻擊IIS伺服器的漏洞,從而獲取系統許可權。

210.22.204.101訪問了80埠,攻擊者通過緩衝區溢位獲得命令列:

源IP 218.25.147.83,這裡會看到c:\notworm,是一個蠕蟲攻擊:

其餘對80埠攻擊,蜜罐主機均以IIS伺服器的預設頁面作為迴應,這些攻擊均失敗了:

  • UDP 137:是在區域網中提供計算機的IP地址查詢服務,處於自動開放狀態,所以訪問這個埠肯定就是 NetBIOS 查點了。(NetBIOS,為網上基本輸入輸出系統)

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

綜上所述,SVCCTL服務漏洞攻擊成功,PSEXESVC蠕蟲攻擊成功,緩衝區溢位攻擊成功了。

3.問題及解決方案

  • 問題1:在xp系統上下載Wireshark失敗。
  • 暫未解決。嘗試下載kernel32,但會出現無法註冊,未找到入口點。同時也無法解決無法註冊問題。
  • 問題2:攻擊者如何利用Windows MSRPC SVCCTL服務列舉漏洞?
  • Microsoft Windows對匿名管道的處理上存在問題,攻擊者可以利用空會話的硬編碼命名管道及MSRPC屬性匿名列舉Windows服務。
    Windows的svcctl MSRPC介面用於同SCM(服務控制管理器)通訊。svcctl漏洞允許匿名使用者連線到SCM,然後就可以列舉所安裝的或正在執行的服務。
    攻擊者可以利用這個漏洞匿名啟動或中止Windows服務,具體取決於保護服務的安全描述符。

4.學習感悟、思考等

本次實驗還是比較複雜,且完成的任務還是比較多。讓我認識到學好網路攻防不僅要懂得原理,還有善於挖掘漏洞和將工具利用到正確的地方。現在我對工具的使用還不是足夠了解,仍需努力學習和實踐,這也極大的激發我學習網路攻防的熱情,向知識的殿堂邁進。