教材和視頻學習總結
1、教材內容學習總結
惡意代碼
指的是使計算機按照攻擊者的意圖執行以達到惡意目標的指令集。python
惡意代碼類型
- 計算機病毒:是一種可以自我複製的代碼,經過將自身嵌入其餘程序進行感染,而感染過程一般須要人工干預才能完成。
- 蠕蟲:其自我複製與計算機病毒相似,但蠕蟲是一類自主運行的惡意代碼,並不須要將自身嵌入到其餘宿主程序中。通常經過主動掃描和攻擊網絡服務的漏洞進行傳播,通常不須要人工干預。
- 惡意移動代碼:移動代碼指能夠從遠程主機下載並在本地執行的輕量級程序,不須要或僅須要極少的人爲干預。惡意移動代碼是指在本地系統執行一些用戶不指望的惡意動做的移動代碼。
- 後門:指一類可以繞開正常的安全控制機制,從而爲攻擊者提供訪問途徑的一類惡意代碼。攻擊者能夠經過使用後們工具對目標主機進行徹底控制。
- 特洛伊木馬:是一類假裝成有用的軟件,但隱藏其惡意目標的惡意代碼。後門僅爲攻擊者給出非法訪問途徑,而特洛伊木馬的特徵則在於假裝性。
- 僵屍網絡:攻擊者出於惡意目的,傳播將是程序控制大量主機,並經過一對多的命令與控制信道所組成的攻擊網絡。僵屍網絡區分於其餘攻擊方式的基本特徵是使用一對多的命令與控制機制,具備惡意性和網絡傳播特性。
- 內核套件:是在用戶態經過替換或修改系統關鍵可執行文件,或者在內核態經過控制操做系統內核,用以獲取並保持最高控制權的一類惡意代碼,又分爲用戶態Rootkit和內核態Rookit兩種。
惡意代碼分析技術
惡意代碼的分析分爲兩大類:靜態分析、動態分析。
靜態分析:不運行程序,一般先進行反彙編;分析控制流與數據流肯定功能。
動態分析:運行時分析,對於混淆、自變化程序有免疫性,可是運行哪段代碼須要慎重選擇。
linux
- 反病毒軟件掃描:進行惡意代碼分析最直接的方法是使用現成的反病毒軟件來掃描待分析的樣本,已肯定反病毒軟件是否可以識別該樣本,以及所識別的類型、家族、變種等信息。
- 文件格式識別:再面對一個未知的惡意代碼樣本文件時,第一步要作的就是對它的文件格式進行識別。惡意代碼一般是以二進制可執行文件格式存在的,其餘的存在形式還包括腳本文件、帶有宏指令的數據文件、壓縮文件等。
- 字符串提取分析:字符串提取分析是代碼靜態分析中很是簡單可是頗有用的一環,利用一些專用的字符串提取工具。咱們能夠完全地搜查目標程序,並提取出程序中的字符串,經過進一步的分析查找,爲進一步的惡意代碼分析提供參考。
- 二進制結構分析:大部分二進制文件形式存在的惡意代碼,如:可執行程序、動態連接庫、內科驅動模塊、靜態程序庫等,其生成過程是高級語言源代碼的一般的編譯和連接過程。
- 反彙編與反編譯
反彙編與反編譯是對二進制程序編譯鏈接的逆過程,反彙編是把二進制程序的目標代碼從二進制指令碼轉換爲彙編代碼的處理過程,而反編譯則更進一步,指望將彙編代碼再進一步還原成高級編程語言形式的源代碼。
- 代碼結構與邏輯分析
在反彙編與反編譯得到二進制程序的彙編代碼或高級語言代碼之後,針對這些代碼進行結構與邏輯分析構成了靜態分析中最爲核心的任務,這個過程須要更多的分析師人工參與。
- 加殼識別與代碼脫殼
緩衝區溢出
緩衝區溢出是計算機程序中存在的一類內存安全違規漏洞。緩衝區溢出是指當計算機向緩衝區內填充數據位數時,超過了緩衝區自己的容量,溢出的數據覆蓋在合法數據上。理想的狀況是程序檢查數據長度並不容許輸入超過緩衝區長度的字符,可是絕大多數程序都會假設數據長度老是與所分配的儲存空間相匹配,這就爲緩衝區溢出埋下隱患。操做系統所使用的緩衝區 又被稱爲"堆棧"。在各個操做進程之間,指令會被臨時儲存在「堆棧"當中,"堆棧"也會出現緩衝區溢出。shell
緩衝區溢出攻擊原理
緩衝區溢出漏洞根據緩衝區在進程內存空間中的位置不一樣,分爲棧溢出、堆溢出和內核溢出這三種具體技術形態。編程
- 棧溢出:程序向棧中某個變量中寫入的字節數超過了這個變量自己所申請的字節數,於是致使棧中與其相鄰的變量的值被改變。這種問題是一種特定的緩衝區溢出漏洞(好比說,還有向堆中寫,向bss段寫)。而對於黑客來講,棧溢出漏洞輕則可使得程序崩潰,重則可使得攻擊者控制程序執行流程。此外,發生棧溢出的基本前提是(1)程序必須向棧上寫入數據,(2)寫入的數據大小沒有被良好地控制。
shellcode
shellcode實質是指溢出後執行的能開啓系統shell的代碼。可是在緩衝區溢出攻擊時,也能夠將整個觸發緩衝區溢出攻擊過程的代碼統稱爲shellcode,按照這種定義能夠把shellcode分爲四部分:
(1)核心shellcode代碼,包含了攻擊者要執行的全部代碼。
(2)溢出地址,是觸發shellcode的關鍵所在。
(3)填充物,填充未使用的緩衝區,用於控制溢出地址的位置,通常使用nop指令填充——0x90表示。
(4)結束符號0,對於符號串shellcode須要用0結尾,避免溢出時字符串異常。windows
惡意代碼分析
惡意代碼是一種程序,它經過把代碼在不被察覺的狀況下鑲嵌到另外一段程序中,從而達到破壞被感染電腦數據、運行具備入侵性或破壞性的程序、破壞被感染電腦數據的安全性和完整性的目的。惡意軟件的傳染的結果包括浪費資源、破壞系統、破壞一致性,數據丟失和被竊並能讓客戶端的用戶失去信心。瀏覽器
將radar.rar在虛擬機解壓,並運行MD5對其進行校驗,得以下摘要信息:
安全
執行RaDa.exe,能夠發現RaDa.exe在C盤根目錄下生成了兩個子目錄:bin和tmp。
服務器
監控發現RaDa.exe文件激活,並將木馬文件釋放到了bin中
網絡
註冊表監控發現rata.exe在註冊表的啓動項下創建了RaDa鍵值,並將C:\RaDa\bin\RaDa.exe路徑添加了進去
併發
運行其中一個參數-gui
獲得了該程序的圖形界面
分析:RaDa.exe使用了cgiget和cgiput等參數。並且,RaDa除讀取註冊表和文件信息外,沒有更多改寫文件和註冊表等行爲。綜合判斷,該程序不大多是病毒和蠕蟲,更有多是一個比較典型的主動反彈型木馬或者後門程序。
2、視頻學習總結
Kali—— 壓力測試工具
壓力測試經過肯定一個系統的瓶頸或者不能接受的性能特色,來得到系統能提供的最大的服務級別的測試。通俗的講,壓力測試是爲了發如今什麼條件下您的應用程序的性能會變得不可接受。kali下壓力測試工具寶庫VoIP壓力測試,WEB壓力測試,網絡壓力測試及無線壓力測試四個分類。
- VoIP壓力測試工具
包括iaxflood和inviteflood
- THC-SSL-DOS
藉助THC-SSL-DOS攻擊工具,任何人均可以把提供SSL安全鏈接的網站攻擊下線,這種攻擊方法被稱爲SSL拒絕服務攻擊(SSL DOS)。德國黑客織「The hacker's choice」發佈THC SSL DOS,利用SSL中的已知弱點,迅速消耗服務器資源,與傳統DDoS工具不一樣的是,它不須要任何帶寬,只須要一臺執行單一攻擊的電腦。漏洞存在於協議的renegotiation過中renegotiation被用於瀏覽器到服務器之間的驗證。
- T50壓力測試
T50是一個壓力測試工具,它功能強大且具備獨特的數據包注入工具,T50支持Linux系統可進行多種協議的數據包注入,實際上支持15種協議。
Kali —— 數字取證工具
數字取證技術將計算機調查和分析技術應用於對潛在的,有法律效力的電子證據的肯定與獲取,一樣他們都是針對黑客和入侵的,目的都是保障網絡的安全。
- PDF取證工具
peepdf是一個使用python編寫的PDF文件分析工具,它能夠檢測惡意的PDF文件。其設計目標是爲安全研究人員提供PDF分析中可能使用到的全部組件,無需使用3或者4中工具來完成同一件任務。
- 反數字取證chkrootkit
Linux下查找後門的工具,是判斷系統是否被植入Rootkit的利器。
- 內存取證工具
volatility是開源的windowa,Linux,MAC,Android的內存取證分析工具,由python編寫成,命令行操做,支持各類操做系統。
- 取證分隔工具binwalk
binwalk是一個固定的分析工具,旨在協助研究人員對固件非分析,提取及逆向工程用處。簡單易用,徹底自動化腳本,並經過自定義簽名,提取規則和插件模塊,還有重要的一點的是能夠輕鬆的擴展。藉助binwalk有個很強大的功能是提取文件(壓縮包)中存在的隱藏文件(或內容文件),亦可分析文件格式。,解壓縮包,查看壓縮包。
解壓文件:binwalk -e 文件名
- 取證哈希驗證工具集
md5deep是一套跨平臺的方案,能夠計算和比較MD5等哈希加密信息的摘要MD5,SH-1,SHA-256,Tiger,Whirlpool.
Kali——報告工具與系統服務
- Dradis
Dradis是一個用於提升安全監測效率的信息共享框架(協做平臺),Dradis提供了一個集中地信息倉庫,用於標記咱們目前已經作的工做和下一步計劃。
- Keepnote
一個很精簡的筆記軟件,特色以下:
- 富含文本格式:彩色字體、內置圖片、超連接、樹型分層組織內容(能保存整個網頁的圖片內容)
- 樹形分層組織內容:這個很重要,分門別類,一目瞭然。
- 全文搜索(沒有搜索功能的都是沒用的,跟廢了差不了太多)
- 綜合截圖(屏幕截圖以後,能夠在筆記中直接插入截圖)
- 文件附件
- 集成的備份和恢復
- 拼寫檢查(經過gtkspell)
- 自動保存
- 內置的備份和恢復(zip文件存檔)