本博客屬於課程:《網絡攻防實踐》
本次做業:《第九周做業》
我在這個課程的目標:掌握知識與技能,加強能力和本領,提升悟性和水平。小程序
惡意代碼,又稱Malicious Code,或MalCode,MalWare。
設計目的爲用來實現某些惡意功能的代碼或程序。
包括:計算機病毒、網絡蠕蟲、木馬、後門、Rootkit、Exploit、DDoSer、殭屍程序、廣告軟件、間諜軟件……windows
傳統計算機病毒:一組可以進行自我傳播、須要用戶干預來觸發執行的破壞性程序或代碼。如CIH、新歡樂時光、宏病毒…
網絡蠕蟲:一組可以進行自我傳播、不須要用戶干預便可觸發執行的破壞性程序或代碼。
其經過不斷搜索和侵入具備漏洞的主機來自動傳播。如紅色代碼、SQL蠕蟲王、衝擊波、震盪波、極速波…
特洛伊木馬:是指一類看起來具備正常功能,但實際上隱藏着不少用戶不但願功能的程序。一般由控制端和被控制端兩端組成。
如冰河、網絡神偷、灰鴿子……
後門:使得攻擊者能夠對系統進行非受權訪問的一類程序。如Bits、WinEggDrop、Tini…
RootKit:經過修改現有的操做系統軟件,使攻擊者得到訪問權並隱藏在計算機中的程序。如RootKit、Hkdef、ByShell…
拒絕服務程序,黑客工具,廣告軟件,間諜軟件……安全
計算機病毒是人爲製造的,有破壞性,又有傳染性和潛伏性的,對計算機信息或系統起破壞做用的程序。它不是獨立存在的,而是隱蔽在其餘可執行的程序之中。計算機中病毒後,輕則影響機器運行速度,重則死機系統破壞;所以,病毒給用戶帶來很大的損失,一般狀況下,咱們稱這種具備破壞做用的程序爲計算機病毒。
計算機病毒按存在的媒體分類可分爲引導型病毒、文件型病毒和混合型病毒3種;按連接方式分類可分爲源碼型病毒、嵌入型病毒和操做系統型病毒等3種;按計算機病毒攻擊的系統分類分爲攻擊DOS系統病毒,攻擊Windows、系統病毒,攻擊UNIX系統的病毒。現在的計算機病毒正在不斷的推陳出新,其中包括一些獨特的新型病毒暫時沒法按照常規的的類型進行分類,如互聯網病毒(經過網絡進行傳播,一些攜帶病毒的數據愈來愈多)、電子郵件病毒等。服務器
蠕蟲是一種能夠自我複製的代碼,而且經過網絡傳播,一般無需人爲干預就能傳播。蠕蟲病毒入侵併徹底控制一臺計算機以後,就會把這臺機器做爲宿主,進而掃描並感染其餘計算機。當這些新的被蠕蟲入侵的計算機被控制以後,蠕蟲會以這些計算機爲宿主繼續掃描並感染其餘計算機,這種行爲會一直延續下去。蠕蟲使用這種遞歸的方法進行傳播,按照指數增加的規律分佈本身,進而及時控制愈來愈多的計算機。網絡
木馬病毒是指隱藏在正常程序中的一段具備特殊功能的惡意代碼,是具有破壞和刪除文件、發送密碼、記錄鍵盤和攻擊Dos等特殊功能的後門程序。木馬病毒實際上是計算機黑客用於遠程控制計算機的程序,將控制程序寄生於被控制的計算機系統中,內外夾攻,對被感染木馬病毒的計算機實施操做。通常的木馬病毒程序主要是尋找計算機後門,乘機竊取被控計算機中的密碼和重要文件等。能夠對被控計算機實施監控、資料修改等非法操做。木馬病毒具備很強的隱蔽性,能夠根據黑客意圖忽然發起攻擊。架構
後門程序,跟咱們一般所說的"木馬"有聯繫也有區別。聯繫在於:都是隱藏在用戶系統中向外發送信息,並且自己具備必定權限,以便遠程機器對本機的控制。區別在於:木馬是一個完整的軟件,然後門則體積較小且功能都很單一。後門程序相似於特洛依木馬(簡稱"木馬"),其用途在於潛伏在電腦中,從事蒐集信息或便於黑客進入的動做。tcp
「間諜軟件」實際上是一個灰色區域,因此並無一個明確的定義。然而,正如同名字所暗示的同樣,它一般被泛泛的定義爲從計算機上搜集信息,並在未獲得該計算機用戶許可時便將信息傳遞到第三方的軟件,包括監視擊鍵,蒐集機密信息(密碼、信用卡號、PIN碼等),獲取電子郵件地址,跟蹤瀏覽習慣等。函數
僵屍網絡 Botnet 是指採用一種或多種傳播手段,將大量主機感染bot程序(殭屍程序)病毒,從而在控制者和被感染主機之間所造成的一個可一對多控制的網絡。
攻擊者經過各類途徑傳播殭屍程序感染互聯網上的大量主機,而被感染的主機將經過一個控制信道接收攻擊者的指令,組成一個僵屍網絡。之因此用僵屍網絡這個名字,是爲了更形象地讓人們認識到這類危害的特色:衆多的計算機在不知不覺中如同中國古老傳說中的殭屍羣同樣被人驅趕和指揮着,成爲被人利用的一種工具。
殭屍程序(Robot、Bot)有時直譯爲機器人程序,是指現惡意控制功能的程序代碼,它可以自動執行預約義的功能、能夠被預約義的命令控制。其實Robot程序自己不必定是惡意的,但多以惡意爲目的來使用。植入了惡意Bot或者其餘能夠惡意遠程控制程序的計算機稱爲殭屍計算機。工具
Rootkit是一種奇特的程序,它具備隱身功能:不管靜止時(做爲文件存在),仍是活動時,(做爲進程存在),都不會被察覺。換句話說,這種程序可能一直存在於咱們的計算機中,但咱們卻渾然不知,這一功能正是許多人求之不得的——不管是計算機黑客,仍是計算機取證人員。黑客能夠在入侵後置入Rootkit,祕密地窺探敏感信息,或等待時機,乘機而動;取證人員也能夠利用Rootkit實時監控嫌疑人員的不法行爲,它不只能蒐集證據,還有利於及時採起行動!測試
分析惡意代碼須要分析如下內容:
一、隱蔽功能
二、加密功能
三、觸發條件
四、自啓動功能
五、自主攻擊和繁殖功能
六、破壞功能
惡意代碼分析有兩類方法:靜態分析和動態分析。靜態分析方法是在沒有運行惡意代碼時對其進行分析的技術,而動態分析方法則須要運行惡意代碼,而這兩類技術又進一步分析基礎技術和高級技術。
1)、靜態分析技術基礎技術
靜態分析基礎技術包括檢查可執行文件但不查看具體指令的一些技術。靜態分析基礎技術能夠確認一個文件是不是惡意的,提供有關其功能的信息,有時還會提供一些信息讓你可以生成簡單的網絡特徵碼。
2)、動態分析基礎技術
動態分析基礎技術涉及運行惡意代碼並觀察系統的行爲,以移除感染,產生有效的檢測特徵碼,或者二者。然而,在你能夠安全運行惡意代碼以前,你必須創建一個安全的環境,可以讓你在避免對你的系統與網絡帶來的風險的前提下,研究運行的惡意代碼。
3)、靜態分析高級技術
靜態分析高級技術,主要對惡意代碼內部機制的逆向工程,經過將可執行文件裝載到反彙編器中,查看程序指令,來發現惡意代碼到底作什麼。這些指令時被CPU執行的,因此靜態分析高級技術可以告訴你程序具體作了哪些事情。須要掌握彙編語言、代碼結構、windows操做系統概念等專業知識。
4)動態分析高級技術
動態分析高級技術則是用調試器來檢查一個惡意可執行程序運行時刻的內部狀態。動態分析高級技術提供了從可執行文件中抽取詳細信息的另外一個路徑。
Unix/Linux上都有一個file命令,用以判斷某文件是什麼類型的文件。Windows默認沒有這個東西,下載地址中提供了一個這個Linux工具的port,下載setup安裝便可,把安裝後的bin目錄加到PATH中便可以在命令行使用了。
咱們在windows的cmd窗口下用cd命令切換到當前文件夾,使用命令 file RaDa.exe 和命令file rada_dump.exe能夠看到以下圖一所示的信息。
圖中信息的意思爲:
這是一個32位的可運行程序(.exe),是針對windows操做系統下,而且擁有圖形界面(GUI)的應用程序,其運行平臺爲因特爾80386(intel 80386)
關於文件是否被加殼,要依賴於PEID檢測工具,使用起來很簡單(其原理主要在於字段分析與識別),以下圖二所示,咱們能夠看到關於這個文件的各類信息。其中,這個文件的擴展信息中提到這個文件的檢測結果爲:UPX 0.89.6 - 1.02 / 1.05 - 2.90 -> Markus & Laszlo,網上搜索相關信息後得出結論,這個是加殼後的文件,是UPX 0.89.6版本的殼,而且咱們能夠看出這個文件是被壓縮過等信息。
圖一
圖二
這裏咱們用脫殼巡警工具進行快速脫殼,脫殼完成後輸出結果咱們看一下,如圖三所示(實際就是咱們上面file命令查看文件類型信息的第二個文件rada_dump.exe,其文件信息類型在圖一中已經展現,這裏再也不贅述)。
脫殼以後這個文件對於咱們來講就等同於一個被編譯過的源代碼文件同樣的存在,咱們這裏想要知道其內部信息就要對其進行反彙編,這裏咱們用到了反彙編的工具IDA pro(原理主要在於反彙編過程的熟練操做,要快速定位到首字段位置,若是嫌麻煩這個步驟在上面的PEID中能夠快速識別匹配字段,來快速完成。找到首字段後,根據Accii碼對文件內容進行反彙編,結合32位的intel 80386平臺給出的操做指令集,獲得脫殼後的信息),如圖四所示
圖三
圖四
圖五
所謂不入虎穴焉得虎子,首先,咱們準備好process explorder用來監測進程(實測,這個玩意有樹狀列表,比process minitor好用多了),其次,準備好wireshark用來看這個文件是否向外部進行了網絡傳輸,最後,咱們準備好Regshot用來創建註冊表快照,用來分析註冊表的修改狀況。
一切就緒咱們運行這個惡意代碼,咱們看到快照對比之下,這個新增長的鍵無從遁形,直接定位到了他所在的位置。除了對註冊表的分析以外,咱們能夠在process explorder中對這個進程先後的輸入輸出進行提取分析(這個過程其實也能夠嘗試在反彙編軟件中查看輸出表,不過多是未運行的狀態因此我第一次的嘗試未成功)。咱們在下圖七中看到了從這個進程中字符串提取的狀況(注意在Image中會看到不少亂碼,選擇memory就會看到先後提取出的字符串有機拼接以後的結果),咱們能夠看到這個字眼常常出現啊,頗有可能就是做者,
圖六
圖七
這個程序都幹了什麼呢,這裏又以爲process minitor在這方面更爲詳細。
仔細觀察,進程開始以後,程序首先建立了windows文件夾下的.pf文件,而後就開始進行一些列的註冊表操做,從detail欄目中咱們能夠大體看出這個進程都幹了什麼,這裏包括不停的讀取咱們的磁盤和IO信息,包括在咱們的註冊表中增長了不少文件,在NT文件夾下複製了這個惡意代碼的運行程序(.exe文件),時不時就會回去從新運行一下這個惡意代碼,讓進程數量急劇增多,包括創建了TCP的長鏈接,等等行徑。
一、文件摘要:
演算文件的md5值,爲:caaa6985a43225a0b3add54f44a0d4c7
二、目的
這個程序在不停的自我複製而且連接到一個固定的IP地址,看起來像一個後門程序,他篡改了註冊表而且奇蹟自動啓動,由內而外連接的過程與反彈端口木馬的行爲十分類似,故而推測是一個反彈端口木馬或者後門程序
三、保護措施
這個程序自身加殼作到了反逆向,而且,並未輕易抖露做者信息
四、分類
我給其分類爲反彈端口木馬或者後門程序
五、咱們在作exploit攻擊虛擬機時使用過相似的反彈端口木馬程序
在做者這一欄中,攻擊者並未傲嬌的將本身的名字放在author裏儲存,並且這個author在被調用的位置均是push操做,將這個信息壓入堆棧,以後並沒有操做。可是在剛剛字符串收集的時候,咱們已經看到了是創造的這個鏡像,能夠理解爲他就就是攻擊者。
演算文件的md5值,crackme1爲: 4357BF8C20FABB642FAFC0B73FB0ABFB、crackme2爲: 46AA577172D8F37AE2AE281515C99AFB
上面對RaDa的步驟對這個crackme1文件再來一遍,經過file命令,咱們看到crackme1文件是一個32位的可運行程序(.exe),是針對windows操做系統下,其運行平臺爲因特爾80386(intel 80386),可是沒有圖形界面。
然而當咱們嘗試運行這個程序的時候,卻發現反饋是缺乏某東東西(盲猜缺乏密碼或者某種前置環境)
對這個文件進行殼檢測,發現這是個很單純的軟件,沒有加殼,那麼這樣的話咱們直接對其進行逆向分析好了!
看到文件的流程圖後咱們大體明白了這個程序該如何進入,顯然咱們一直沒能進入,可是在string中咱們看到了經過的字符串,咱們追蹤一下這個玩意在哪被調用了,咱們到了401310,而後繼續向上查找401310在哪被jump了(顯然401310上面是個jump指令,那麼401310就只能被jump到達),就這樣咱們到了4012Ec,在4012EC以前,咱們看到系統作了一個判斷以下面第二張圖, jz short loc_4012D2這裏咱們看看判斷對象是什麼,他判斷輸入的語句是不是「i konw the secret」,若是判斷錯誤,則跳轉004012F1輸出parden what did you say?
另外,若是判斷是,則跳轉401310輸出You know how to speak to programs, Mr.。。。
You know how to speak to programs, Mr.
到這裏是否好奇,以前什麼都不輸入,返回的是"I think you are missing something.\n"是什麼狀況
這裏咱們回去在看一下代碼,,有一行比較cmp [ebp+arg_0], 2
彙編指令cmp的比較結果是:
若是比較的是兩個無符號數,則零標誌位和進位標誌位表示的兩個操做數之間的關係以下表所示:
CMP結果 ZF CF
目的操做數 < 源操做數 0 1
目的操做數 > 源操做數 0 0
目的操做數 = 源操做數 1 0
這條指令意在比較一下 是否有兩個輸入參數,若是有則輸出parden what did you say?,不然輸出I think you are missing something.\n
測試一下,結果正確
同理咱們也能夠測試出crakeme2要輸入的也是參數爲:「i konw the secret」
測試一下:發現不行,回去仔細看了一下程序邏輯
經過參數個數的 判斷後 , 接着用strcmp 函數對 argc 裏面的第一個字符串,即程序名,和「crackmeplease.exe」進行判斷,也就是說咱們要經過驗證還要改程序名,改一下試試:
果真經過驗證了,頗有意思的小程序。
因特網中繼聊天(Internet Relay Chat),通常稱爲互聯網中繼聊天,簡稱:IRC。它是由芬蘭人Jarkko Oikarinen於1988年獨創的一種網絡聊天協議。通過十年的發展,目前世界上有超過60個國家提供了IRC的服務。IRC的工做原理很是簡單,您只要在本身的PC上運行客戶端軟件,而後經過因特網以IRC協議鏈接到一臺IRC服務器上便可。它的特色是速度很是之快,聊天時幾乎沒有延遲的現象,而且只佔用很小的帶寬資源。全部用戶能夠在一個被稱爲"Channel"(頻道)的地方就某一話題進行交談或密談。每一個IRC的使用者都有一個Nickname(暱稱)
IRC用戶使用特定的用戶端聊天軟件鏈接到IRC服務器,經過服務器中繼與其餘鏈接到這一服務器上的用戶交流,因此IRC的中文名爲「因特網中繼聊天」。
IRC的最大特色是實現了在線實時交談,速度快、功能多的優勢使它比電子郵件或新聞組等聯絡溝通方式更具吸引力。IRC能夠設置單獨的頻道,在這個頻道內,輸出的文字可供全部人都看到。這樣,來自世界不一樣角落的人能同時獲得有關信息。而若是是兩我的之間的單獨交談,甚至能夠不用經過服務器,以保證談話的保密性。隨着網絡帶寬的增長和技術的發展,如今有一些IRC不只能夠傳輸文字信息,還能傳輸聲音或圖像信息,這樣的功能就更強了。
IRC通常默認的端口6667.
在Botnet的概念中有這樣幾個關鍵詞。「bot程序」是robot的縮寫,是指實現惡意控制功能的程序代碼;「殭屍計算機」就是被植入bot的計算機;「控制服務器(Control Server)」是指控制和通訊的中心服務器,在基於IRC(因特網中繼聊天)協議進行控制的Botnet中,就是指提供IRC聊天服務的服務器。僵屍網絡是一種由引擎驅動的惡意因特網行爲:DDoS攻擊是利用服務請求來耗盡被攻擊網絡的系統資源,從而使被攻擊網絡沒法處理合法用戶的請求。 DDoS 攻擊有多種形式,可是能看到的最典型的就是流量溢出,它能夠消耗大量的帶寬,卻不消耗應用程序資源。DDoS 攻擊並非新鮮事物。在過去十年中,隨着僵屍網絡的興起,它獲得了迅速的壯大和廣泛的應用。僵屍網絡爲 DDoS 攻擊提供了所需的「火力」帶寬和計算機以及管理攻擊所需的基礎架構。
主機ip爲:172.16.134.191,這裏咱們篩選一下後主要看出主機進行通信的IP地址有:(這裏說的是經過6667端口通訊的,由於IRC是默認6667端口)
209.126.161.2九、63.241.174.14四、217.199.175.十、66.33.65.5八、209.196.44.172(最後一個這個ip通訊了好久好久,約四個小時)
與僵屍網絡209.196.44.172通訊的主機ip有:172.16.134.191,(廢話,只看這個捕包記錄固然看不出來)
這裏要在kali中進行tcp分析(這個活其實在wireshark中進行tcp流追流蹤也能夠看出來)
由於kali就給出了5這個數字,我不放心怎麼這麼少,因而又上wireshark上看了一下,應該還有不少,kali沒識別出來的
咱們只須要看看哪些ip進入了蜜罐主機便可,kali告訴咱們一共有148個,在輸出文件1.txt中能夠看到,可是輸出是字符未拼接的結果,這裏須要使用命令進行拼接
命令: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 -r botnet_pcap_file.dat -c /etc/snort/snort.conf -K ascii
咱們看到主要是tcp包和udp包居多,在wireshark上進行具體分析,咱們首先篩選了80端口的包數據,咱們看到,這個210.22.204
101的主機不停地攻擊着咱們的主機,到後面確實攻擊成功了,並且用到了boot.ini等等配置文件
這裏是蠕蟲攻擊,咱們經過蜜罐主機80端口向外的流量進行分析,發現蜜罐主機作的幾回迴應均爲一個iis服務器的默認頁面,因此80端口的這些攻擊均失敗。
同理咱們看看139端口的狀況,一開始就發現了一個smb報文異常可是也沒有攻擊成功
在145端口上,由61.111.101.78發起的包中有個PSEXESVC.EXE字符串,經過搜索,發現這是一種Dv1dr32蠕蟲,這種蠕蟲正是經過IRC進行通訊。
一樣找出口流量,發現每一個IP地址連入的鏈接都有響應的迴應,而且返回信息中含有\PIPE\ntsvcs,經過搜索可知,這是一個遠程調用,因此攻擊者確定是得到了權限,所以這個攻擊成功的。