後門:
可以爲攻擊者提供多種不一樣類型的訪問通道,包括:html
後門工具能夠利用自啓動文件夾、註冊表自啓動項及預約計劃任務這三種主要方法來達到自啓動的效果。ios
特洛伊木馬能夠用於一下目的:shell
命名假裝經常使用的攻擊技巧有:windows
區別項 | 惡意代碼分析 | 良性代碼分析 |
---|---|---|
目的公開性 | 目的未知,需分析和推測其目的 | 通常狀況下,目的是公開且明確的,可輔助分析過程 |
目的惡意性 | 目的惡意,須要受控環境 | 良性,無需受控環境 |
是否存在源碼 | 絕大多數狀況無源碼,二進制分析 | 開源軟件存在源碼,源碼分析;閉源軟件則須要二進制分析 |
使用對抗分析技術 | 各類多樣化對抗分析,博弈問題 | 通常無對抗分析,商業軟件也引入對抗分析保護產權 |
任務內容:對提供的rada惡意代碼樣本(U盤或FTP/materials/course9下載),在WinXP_Attacker虛擬機中進行文件類型識別,脫殼與字符串提取,以得到rada惡意代碼的編寫做者。
一、使用文件格式和類型識別工具(file, PEid),給出rada惡意代碼樣本的文件格式、運行平臺和加殼工具。
二、使用超級巡警脫殼機等脫殼軟件,對rada惡意代碼樣本進行脫殼處理。
三、使用字符串提取工具(strings、IDA Pro),對脫殼後的rada惡意代碼樣本進行分析,從中發現rada惡意代碼的編寫做者是誰?安全
過程以下:服務器
file RaDa.exe
命令查看RaDa.exe的文件類型,可知這是一個32位Windows PE可執行文件,而且有圖形化窗口。strings RaDa.exe
查看RaDa.exe中可打印字符串,發現都是亂碼,這也驗證了這是一個加殼程序,因此下一步是進行脫殼。實踐內容:使用IDA Pro靜態或動態分析crackme1.exe和crackme2.exe,尋找特定的輸入,使其可以輸出成功信息。網絡
過程以下:tcp
仍在WinXP Attacker中,放入兩個crackme文件。函數
crackme1.exe的分析工具
對crackme1.exe進行執行,猜想參數執行,能夠發現一個參數輸入與其餘的參數輸入獲得的輸出明顯不同,因此能夠猜想這個程序的輸入是一個參數。
接下來利用IDA Pro打開這個程序分析,咱們打開經過Strings窗口能夠查看該程序中出現的字符串,咱們發現了前面的兩種反饋信息,I think you are missing something.和Pardon? What did you say?,這兩個咱們以前已經見過了,很容易猜想,第一個是參數不對的返回狀況,第二個是給的參數數量對了,可是具體的內容不對。
而後將窗口切換到彙編語言窗口IDA View-A,在菜單欄中View->Graphs->Function calls依次點開查看函數結構:
能夠看到字符串比較函數strcmp和輸出函數fprintf和printf。那麼顯而易見,sub_401280這個函數就顯得相當重要了。在函數列表中雙擊這個函數,能夠看到它的彙編代碼:
能夠看到參數爲2和不爲2的狀況,調用了一個字符串匹配函數strcmp,也就是輸入的字符串與I know the secret進行比較,若是不匹配就輸出Pardon? What did you say?若是正確,就輸出You know how to speak to programs, Mr. Reverse-Engineer。
因而進行驗證:
crackme2.exe的分析
有了前面的經驗,此次就直接用IDA Pro進行分析。
將原文件重命名爲crackmeplease.exe,而後顯示出Pardon?What did you say?,這說明咱們已經離正確輸出很近了,而後就是修改制定的密文爲:I have the secret",就能夠輸出正確答案:
過程以下:
打開wireshark和已經脫殼的rada_unpacked.exe,在進程探測器process explorer中點擊運行的進程,能夠看到該二進制文件的編碼字符串內容,當惡意程序打開後或以http協議與目標地址10.10.10.10的RaDa_commands.html進行鏈接,在本機目錄下會新建tmp和bin兩個文件夾,註冊表也會有改變:
在wireshark上發現大量發現10.10.10.10的TCP數據包:
而後分別下載和上傳某些文件,而且在受害主機C盤目錄下建立一個文件夾「C:/RaDa/tmp」來保存其下載的文件,往下分析發現該惡意程序中可執行DDos拒絕服務攻擊;而後又發現該惡意程序對主機註冊表進行了讀寫和刪除操做:
而後打開註冊表查看並未發現有關於RaDa的信息,多是該惡意程序已經刪除了註冊表信息:
用md5sum RaDa.exe
指令查看摘要和文件類型,獲得其md5摘要值爲caaa6985a43225a0b3add54f44a0d4c7。利用file RaDa.exe識別出這是32位PE文件,而且仍是個GUI文件:
接下來使用 IDA 對其進行分析。該程序在第一個實踐中已經被脫殼了,脫殼後的文件名稱爲RaDa_unpacked.exe。(進入 Strings 對話框,在 Type 右鍵點擊 Setup,設置類型爲 Unicode。)
查看命令行參數:能夠看到做者、時間等信息。
看到一個熟悉的 IP 地址,雙擊定位:猜想程序被執行後訪問了這個地址。
根據線索分析,獲得RaDa_commands.html。尋找這個字符串對應的函數sub_404FB0,進入這個函數,看黃色部分的彙編代碼,得知是被拷貝到dword_40C030這個變量中。
找到dword_40C030變量對應的函數sub_4052C0 ,打開其Call Graph查看。這裏咱們看到判斷了三個網段分別爲192.168.、172.16.、10.,(三個私有網段,確保服務器在私有網段中,而後到服務器去取命令文件)
回答問題:
一、提供對這個二進制文件的摘要,包括能夠幫助識別同同樣本的基本信息。
摘要爲caaa6985a43225a0b3add54f44a0d4c7;Win32 PE 加 UPX 殼 GUI 文件。
二、找出並解釋這個二進制文件的目的。
這個二進制文件經過網絡獲取指令,並執行;攻擊者能夠利用其徹底控制該系統,是一個後門程序。
三、識別並說明這個二進制文件所具備的不一樣特性。
會請求 Web 服務器;解析得到的指令並執行。
四、識別並解釋這個二進制文件中所採用的防止被分析或逆向工程的技術。
UPX 壓縮技術。
五、對這個惡意代碼樣本進行分類(病毒、蠕蟲等),並給出你的理由。
不具備自主傳播模塊,不具備傳播和感染的性質,因此它不屬於病毒和蠕蟲;也沒有將本身假裝成有用的程序以欺騙用戶運行,不是木馬。是一個後門程序。
六、給出過去已有的具備類似功能的其餘工具。
使用http方式來同攻擊者創建鏈接————Bobax、海陽頂端、Setiri等。
七、可能調查出這個二進制文件的開發做者嗎?若是能夠,在什麼樣的環境和什麼樣的限定條件下?
Raul siles和David Perze於2004年編寫的。
實踐內容:數據源是Snort收集的蜜罐主機5天的網絡數據源,並去除了一些不相關的流量並將其組合到了單獨的一個二進制網絡日誌中,,同時IP地址和其餘敏感信息被混淆。分析這個日誌文件並回答問題:
過程以下:
一、IRC是什麼?當IRC客戶端申請加入一個IRC網絡時將發送哪一個消息?IRC通常使用哪些TCP端口?
USER <username> <hostname> <servername> <realname>
、 PASS <password>
和 NICK <nickname>
。JOIN <channel>
。二、僵屍網絡是什麼?僵屍網絡一般用於幹什麼?
僵屍網絡是指攻擊者(稱爲botmaster)出於惡意目的,傳播殭屍程序控制大量主機,並經過一對多的命令與控制信道所組成的網絡。
僵屍網絡主要用於:發動DDOS攻擊、發送垃圾郵件、 監聽用戶敏感信息、記錄鍵盤輸入信息、 擴散新的惡意軟件 和 僞造點擊量,騙取獎金或操控網上投票和遊戲,同時黑客控制的這些計算機所保存的信息也均可被黑客隨意「取用」。
三、蜜罐主機(IP:172.16.134.191)與哪些IRC服務器進行了通訊?
經過Wireshark打開數據文件,並設置過濾條件ip.src == 172.16.134.191 && tcp.dstport == 6667
,由於知道 IRC 服務經過6667端口篩選以後,能夠找到全部與蜜罐主機進行通訊的 IRC 服務器:分別爲 209.126.161.29,66.33.65.5八、63.241.174.14四、217.199.175.十、209.196.44.172
四、在這段觀察期間,多少不一樣的主機訪問了以209.196.44.172爲服務器的僵屍網絡。
tcpflow
這個命令,首先有關apt-get install tcpflow
進行安裝,而後執行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三個文件。五、哪些IP地址被用於攻擊蜜罐主機?
tcpdump -n -nn -r botnet_pcap_file.dat 'dst host 172.16.134.191' | grep -v 'reply' | cut -d '.' -f 10 | cut -d ':' -f 1 | sort | uniq | more >1.txt; wc -l 1.txt
;統計個數:snort
獲取全部可能連接的主機IP地址,將內容輸出到2.txt,能夠看到一共有165行共計165個: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
統計一下網絡流量包分佈狀況:
以上能夠看出大部分爲tcp數據包,少部分爲udp數據包,而後分別篩選這兩種端口:
輸出能夠看到 TCP 響應端口爲135(rpc),139(netbios-ssn),25(smtp),445(smb),4899(radmin)和80(http)。將協議部分改成udp,能夠篩選出udp端口137(netbios-ns)。
下面依次分析這些端口:TCP135端口,只是進行了鏈接,沒有數據內容交換,頗有多是對這個端點進行了connect掃描:
TCP25端口,與135端口類似,也沒有進行數據內容的交換,猜想攻擊機對其進行了connect掃描:
TCP139端口,這裏大部分鏈接也沒有傳遞具體會話內容,主要也是SMB查點:
TCP445端口,這裏發現有一個PSEXESVC.EXE的文件,這個二進制文件主要是一種Dv1dr32蠕蟲,這種蠕蟲經過IRC進行通訊。
而後該源IP地址與蜜罐主機創建了會話,攻擊成功,這裏Windows的svcctl MSRPC接口用於同SCM(服務控制管理器)通信,svcctl漏洞容許匿名用戶鏈接到SCM,而後就能夠枚舉所安裝的或正在運行的服務。
TCP80端口,這裏主要經過該端口使用腳本攻擊IIS服務器的漏洞,從而獲取系統權限。
210.22.204.101訪問了80端口,攻擊者經過緩衝區溢出得到命令行:
這裏訪問的是218.25.147.83,這裏會看到c:\notworm,是一個蠕蟲攻擊:
UDP137端口,網絡基本輸入/輸出系統 (NetBIOS) 名稱服務器 (NBNS) 協議是 TCP/IP 上的 NetBIOS (NetBT) 協議族的一部分,它在基於 NetBIOS 名稱訪問的網絡上提供主機名和地址映射方法,在局域網中提供計算機的IP地址查詢服務,處於自動開放狀態,因此訪問這個端口確定就是 NetBIOS 查點了。
七、哪些攻擊成功了?是如何成功的?
經過上面的分析可知,成功的攻擊發起者是210.22.204.101 (Dv1dr32 蠕蟲)和 61.111.101.78( LAN Manager 口令猜想)
這周做業好多,實力勸退。。。
參考同窗們的博客學了不少:
https://www.jianshu.com/p/d425140c6561
http://www.javashuo.com/article/p-rngemveb-cb.html
http://www.javashuo.com/article/p-xqprimkh-cp.html
http://www.javashuo.com/article/p-fksychdp-cz.html