教材《網絡攻防技術》第9、十章學習
第9章 惡意代碼安全攻防
9.1 惡意代碼基礎知識
- 惡意代碼是指使計算機按照攻擊者的意圖執行以達到惡意目標的指令集。類型包括:計算機病毒、蠕蟲、惡意移動代碼、後門、特洛伊木馬、殭屍程序、內核套件、融合型惡意代碼。
- 計算機病毒
- 基本特性:感染性、潛伏性、可觸發性、破壞性、衍生性。
- 感染及引導機制:可執行文件、引導扇區、支持宏指令的數據文件。
- 傳播機制:移動存儲、電子郵件、下載、共享目錄。
- 網絡蠕蟲
- 基本特性:經過網絡自主傳播。
- 組成結構:彈頭、傳播引擎、目標選擇算法、掃描引擎、有效載荷。
- 後門與木馬。後門是容許攻擊者繞過系統常規安全控制機制的程序,可以按照攻擊者本身的意圖提供訪問通道;而木馬做爲特洛伊木馬的簡稱,是指一類看起來具備某個有用或者善意目的,但實際掩蓋着一些隱藏惡意功能的程序。
- 殭屍程序與僵屍網絡
- 僵屍網絡功能結構:網絡控制器和殭屍程序,其中殭屍程序分爲主體功能模塊和輔助功能模塊。
- 殭屍程序的命令與控制機制:基於IRC協議的命令與控制機制、基於HTTP協議的命令與控制機制、基於P2P協議的命令與控制機制。
- Rootkit。分爲用戶模式Rootkit和內核模式Rootkit。其中內核模式Rootkit包括Linux內核模式Rootkit和Windows內核模式Rootkit。
9.2 惡意代碼分析方法
- 惡意代碼的靜態分析技術:
- 反病毒軟件掃描
- 文件格式識別
- 字符串提取分析
- 二進制結構分析
- 反彙編
- 反編譯
- 代碼結構與邏輯分析
- 加殼識別與代碼脫殼
- 惡意代碼的動態分析技術:
- 快照對比
- 系統動態行爲監控
- 網絡協議棧監控
- 沙箱
- 動態調試
第10章 軟件安全攻防——緩衝區溢出和Shellcode
10.1 軟件安全概述
- 安全漏洞:在系統安全流程、設計、實現或內部控制中所存在的缺陷和弱點,可以被攻擊者所利用並致使安全侵害或對系統安全策略的違反,包括三個基本元素:系統的脆弱性或缺點、攻擊者對缺陷的可訪問性以及攻擊者對缺陷的可利用性。
- 軟件安全漏洞類型:內存安全規範類、輸入驗證類、競爭條件類、權限混淆與提高類。
10.2 緩衝區溢出基礎概念
計算機程序中存在的一類內存安全違規類漏洞,在計算機程序向特定緩衝區內填充數據時,超出了緩衝區自己的容量,致使外溢數據覆蓋了相鄰內存空間的合法數據,從而改變了程序執行流程破壞系統運行完整性。java
10.3 Linux平臺上的棧溢出與Shellcode
- Linux平臺棧溢出攻擊技術:NSR、RNS、RS三種模式。NSR和RNS模式適用於本地緩衝區溢出和遠程棧溢出攻擊,而RS模式只能用於本地緩衝區溢出攻擊。
- Linux平臺的Shellcode實現技術:Linux本地Shellcode實現機制、Linux遠程Shellcode實現機制。
10.4 Windows平臺上的棧溢出與Shellcode
- Windows平臺棧溢出攻擊技術機理:對程序運行過程當中廢棄棧的處理方式差別、進程內存空間的佈局差別、系統功能調用的實現方式差別。
- Windows平臺Shellcode實現技術:Windows本地Shellcode、Windows遠程Shellcode。
10.5 堆溢出攻擊
- 函數指針改寫。
- C++類對象虛函數表改寫。
- Linux下堆管理glibc庫free()函數自己漏洞。
10.6 緩衝區溢出攻擊的防護技術
- 嘗試杜絕溢出的防護技術
- 容許溢出但不讓程序改變執行流程的防護技術
- 沒法讓攻擊代碼執行的防護技術
課後習題
P379 分析惡意代碼樣本rada
- 準備工做(kali)
- 使用
md5sum rada.zip
查看md5值,確認文件完整性。
- 使用
file RaDa.exe
確認二進制文件格式。
- 使用
strings RaDa.exe
取得文件中的可打印文件,發現是亂碼,推測惡意代碼程序加殼了。
- 在windows 7中開啓process monitor(win7及以後的版本,process monitor代替了filemon和regmon)
- 開啓wireshark
- 使用Exeinfo PE工具查看RaDa.exe軟件加殼狀況,發現使用UPX加殼
- 在UPX官網下載UPX脫殼工具,脫殼失敗
- 使用超級巡警自動脫殼器V1.3脫殼成功
- 在cmd中使用
RaDa_unpacked.exe --gui
便可打開軟件的圖形界面。也可使用--help
、authors
、--server
等參數。
P423 SEED緩衝區溢出實驗
- 有漏洞的程序stack。它一開始從一個叫「badfile」的文件讀了一個輸入,而後將這個輸入傳遞給了另外一個 bof()功能裏的緩衝區。原始輸入最大長度爲 517 bytes,然而 bof()的長度僅爲 12 bytes。因爲 strcpy()不檢查邊界,將發生緩衝區溢出。因爲此程序有效執行用戶爲 root,若是一個普通用戶利用了此緩衝區溢出漏洞,他有可能得到 root shell。應該注意到此程序是從一個叫作「badfile」的文件得到輸入的,這個文件受用戶控制。如今咱們的目標是爲「badfile」建立內容,這樣當這段漏洞程序將此內容複製進它的緩衝區,便產生了一個 shell。
- 攻擊漏洞exploit1。將爲「badfile」生成內容。而後運行漏洞程序stack,若是攻擊正確實現,將獲得一個shell。
- 先運行exploit1,而後運行漏洞程序stack,若是攻擊正確實現,將獲得一個shell。
- 讓
bin/sh
指向/bin/bash
,從新攻擊。
kali視頻學習
36.KaliSecruity-壓力測試工具
壓力測試經過肯定一個系統的瓶頸或者不能接受的性能點,來得到系統可以提供的最大的服務級別的測試。通俗地講,壓力測試是爲了測試應用程序的性能會變得不可接受。
Kali下壓力測試工具包含VoIP壓力測試、Web壓力測試、網絡壓力測試及無線壓力測試。python
- Voip壓力測試,包括iaxflood和inviteflood。
- WEB壓力測試工具THC-SSL-DOS。它不須要任何帶寬,只須要一臺執行單一攻擊的電腦。命令爲
thc-ssl-dos -l 500 目標IP 443 --accept
。
- 網絡壓力測試工具
- dhcpig是耗盡DHCP資源池的壓力測試。DHCP服務爲新接入內網的計算機自動分配IP地址,而dhcpig工具藉助Scapy大量僞造Mac地址,從DHCP服務器那裏騙取IP,進而把DHCP所能分配的IP地址所有耗盡。這樣,新加入網絡的計算機將沒法獲取IP地址,從而沒法上網。
- Macof工具可作泛洪攻擊。交換機Mac表的空間有限,當Mac表存滿Mac地址時就會報錯,而且進入非正常狀態。在此狀態下交換機會把接收的信息用廣播的形式發出去,這樣就能夠用抓包工具把廣播的信息抓到。
- Siege能夠根據配置對一個Web站點進行多用戶的併發訪問,記錄每一個用戶全部請求過程的響應時間,並在必定數量的併發訪問下重複進行。
- T50具備獨特的數據包注入工具,功能強大,支持unix系統,可進行多種協議數據包注入,是惟一可使用GRE封裝協議的工具。
- 無線壓力測試,包括MDK3和Reaver。
37.KaliSecruity-數字取證工具
- PDF取證工具peepdf,是一個使用python編寫的PDF文件分析工具,它能夠檢測到惡意的PDF文件。其設計目標是爲安全研究人員提供PDF分析中可能用到的全部組件,無需使用3或4種工具來完成同一件任務。
- 反數字取證chkrootkit。Linux系統下查找rootkit後門工具。判斷系統是否被植入Rootkit的利器。
- 內存取證工具Volatility,是開源的Windows、Linux、Mac、Android的內存取證分析工具,由python編寫成,命令行操做,支持各類操做系統。
- 取證分析工具binwalk,是一個固件的分析工具,旨在協助研究人員對固件分析,提取及逆向工程。簡單易用,徹底自動化腳本,並經過自定義簽名,提取規則和插件模塊,更重要的一點是能夠輕鬆擴展。藉助binwalk中的一個很強大的功能——提取文件(壓縮包)中的隱藏文件(或內容文件)。亦可分析文件格式。
- 取證哈希驗證工具集md5deep,是一套跨平臺的方案,能夠計算和比較MD5等哈希加密信息的摘要MD5,SHA-1,SHA-256,Tiger,Whirlpool。
- 數字取證套件。Autopsy是一款數字取證平臺,提供了一個瀏覽器平臺,訪問本地端口9999。DFF是數字取證工做輔助工具,它具備靈活的模塊系統,具備多種功能,包括:回覆錯誤或崩潰致使的文件丟失,證據的研究和分析。DFF提供了一個強大的體系結構和一些列有用的模塊。
- 取證鏡像工具集主要是針對鏡像文件的取證分析,如mmstat與mmls等命令。
38.KaliSecruity-報告工具與系統服務
一次完整的滲透測試,最後要完成一份報告做爲一個小結。相應的,Kali Linux爲安全工程師準備了報告工具集。linux
- Dradis是一個獨立的web應用程序,它會自動在瀏覽器中打開
https://127.0.0.1:3000
。設置密碼,使用任何登陸名便可進入Dradis框架進行使用。
瀏覽器中:
- keepnote,一款本地精簡的筆記本軟件。
有以下特色:
- 富文本格式:彩色字體、內置圖片、超連接,能保存網頁圖片文字等完整內容。
- 樹形分層組織內容,分門別類,一目瞭然。
- 全文搜索
- 綜合截圖
- 文件附件
- 集成的備份和恢復
- 拼寫檢查(經過gtkspell)
- 自動保存
- 內置的備份和恢復(zip文件存檔)
- 媒體捕捉工具包括Cutycapt(將網頁內容截成圖片保存)和Recordmydesktop(屏幕錄像工具)。
- 證據管理工具Maltego Casefile。
- MagicTree能夠幫助攻擊者進行數據合併、查詢、外部命令執行(如直接調用nmap,將掃描結果直接導入tree中)和報告生成,全部數據都會以樹形結構存儲。
下載jar包,使用java -jar MagicTree-build18141.jar
命令便可打開。
- Truectypt,免費開源的加密軟件,同時支持Windows,OS,Linux等操做系統。
- 系統服務目錄。主要是方便咱們及時啓動或關閉某些服務,命令行輸入
service 服務名 start
和service 服務名 stop
能夠達到相同效果。
《Python 黑帽子》第10、十一章
代碼託管:
https://github.com/jsjliyang/python3-Black.Hat/tree/master/chapter10
https://github.com/jsjliyang/python3-Black.Hat/tree/master/chapter11git