Black_Hat_Python_Chapter10
Black_Hat_Python_Chapter11python
本章主要介紹了惡意代碼的攻防,經過介紹幾種惡意代碼的原理和大量的實例,採用靜態分析與動態分析技術手段進行結構與行爲的剖析,從而充分認知惡意代碼。git
一、惡意代碼基礎知識
惡意代碼是指使計算機按照攻擊者的意圖執行以達到惡意目標的指令集。類型包括:計算機病毒、蠕蟲、惡意移動代碼、後門、特洛伊木馬、殭屍程序、內核套件、融合型惡意代碼。github
計算機病毒web
網絡蠕蟲算法
後門與木馬sql
後門是容許攻擊者繞過系統常規安全控制機制的程序,可以按照攻擊者本身的意圖提供訪問通道;而木馬做爲特洛伊木馬的簡稱,是指一類看起來具備某個有用或者善意目的,但實際掩蓋着一些隱藏惡意功能的程序。shell
殭屍程序與僵屍網絡瀏覽器
Rootkitsass
用戶模式Rootkit和內核模式Rootkit。其中內核模式Rootkit包括Linux內核模式Rootkit和Windows內核模式Rootkit安全
二、惡意代碼分析方法
本章針對緩衝區溢出這類最爲基礎與傳統的安全漏洞類型,詳細介紹了它的基本概念、滲透攻擊技術原理與具體過程,以及經過緩衝區溢出攻擊注入Shellcode的實現技術原理。最後,爲軟件開發與使用人員提供了防護緩衝區溢出攻擊的技術和方法。
一、軟件安全概述
二、緩衝區溢出
計算機程序中存在的一類內存安全違規類漏洞,在計算機程序向特定緩衝區內填充數據時,超出了緩衝區自己的容量,致使外溢數據覆蓋了相鄰內存空間的合法數據,從而改變了程序執行流程破壞系統運行完整性。
三、Linux平臺上的棧溢出與Shellcode
四、Windows平臺上的棧溢出與Shellcode
五、堆溢出攻擊
六、緩衝區溢出攻擊的防護技術
一、使用FileAnalysis分析文件MD5值
二、使用Process Monitor監視RaDa.exe的行爲,發現它在C盤建立了RaDa文件夾,下面建立了bin和tmp兩個文件夾
三、再查看程序行爲,發現其在註冊表中設置了值,即在建立的RaDa\bin\RaDa.exe程序路徑加入了註冊表
四、後將路徑切換到bin文件夾下,打開RaDa的圖形化界面和做者等信息
五、使用PEiD程序掃描RaDa.exe,發現exe使用了UPX進行了加殼
六、後使用超級巡警之虛擬機自動脫殼器將該exe進行脫殼,生成RaDa_unpacked.exe
七、再掃描RaDa_unpacked.exe,發現該程序是使用VB進行編寫開發
這是一個後門程序,運行並按照攻擊者命令進行工做;RaDa除讀取註冊表和文件信息外,沒有更多改寫文件和註冊表等行爲;這個樣本不具備傳播和感染的性質,因此它不屬於病毒和蠕蟲;它也沒有將本身假裝成有用的程序以欺騙用戶運行,因此他也不屬於木馬。
在 /tmp 目錄下新建一個 stack.c 文件:
$ cd /tmp
$ vi stack.c
按 i 鍵切換到插入模式,再輸入以下內容:
經過代碼能夠知道,程序會讀取一個名爲「badfile」的文件,並將文件內容裝入「buffer」。
GCC編譯器有一種棧保護機制來阻止緩衝區溢出,因此咱們在編譯代碼時須要用 –fno-stack-protector 關閉這種機制。 而 -z execstack 用於容許執行棧。-g 參數是爲了使編譯後獲得的可執行文檔能用 gdb 調試。
注意下面的代碼,\x??\x??\x??\x?? 處須要添上 shellcode 保存在內存中的地址,由於發生溢出後這個位置恰好能夠覆蓋返回地址。而 strcpy(buffer+100,shellcode); 這一句又告訴咱們,shellcode 保存在 buffer + 100 的位置。
其中,disass指令用於反彙編stack中的main函數:
接下來的操做:
根據語句 strcpy(buffer + 100,shellcode); 咱們計算 shellcode 的地址爲 0xffffd060(十六進制) + 0x64(100的十六進制) = 0xffffd0c4(十六進制)。如今修改exploit.c文件!將 \x??\x??\x??\x?? 修改成 \xc4\xd0\xff\xff,以下圖所示:
先運行攻擊程序 exploit,再運行漏洞程序 stack,觀察結果:
可見,經過攻擊,得到了root 權限。
壓力測試經過肯定一個系統的瓶頸或者不能接受的性能點,來得到系統可以提供的最大的服務級別的測試。通俗地講,壓力測試是爲了測試應用程序的性能會變得不可接受。
Kali下壓力測試工具包含VoIP壓力測試、Web壓力測試、網絡壓力測試及無線壓力測試。
Voip壓力測試,包括iaxflood和inviteflood
web壓力測試工具:THC-SSL-DOS
藉助THC-SSL-DOS攻擊工具,任何人均可以把提供SSL安全鏈接的網站攻擊下線,這種攻擊方法稱爲SSL拒絕服務攻擊(SSL-DOS)。德國黑客組織發佈THC SSL DOS,利用SSL中已知的弱點,迅速耗費服務器資源,與傳統DDoS工具不一樣的是,它不須要任何帶寬,只須要一臺執行單一攻擊的電腦。
網絡壓力測試工具:dhcpig
耗盡DHCP資源池的壓力測試。
ipv6攻擊工具包
IDS/IPS/WAF 壓力測試工具:Inundator
Macof
Macof工具可作泛洪攻擊。交換機Mac表的空間有限,當Mac表存滿Mac地址時就會報錯,而且進入非正常狀態。在此狀態下交換機會把接收的信息用廣播的形式發出去,這樣就能夠用抓包工具把廣播的信息抓到。
Siege
Siege是一個壓力測試和評測工具,設計用於Web開發,評估應用在壓力下的承受能力,能夠根據配置對一個Web站點進行多用戶的併發訪問,記錄每一個用戶全部請求過程的響應時間,並在必定數量的併發訪問下重複進行。
T50壓力測試
功能強大,且具備獨特的數據包注入工具,T50支持 nix系統,可進行多種協議數據包注入,實際上支持15種協議。
無線壓力測試,包括MDK3和Reaver
數字取證技術將計算機調查和分析技術應用於潛在的、有法律效力的電子證據的肯定與獲取,一樣他們都是針對黑客和入侵的,目的都是保障網絡安全。
PDF取證工具
pdf-parser和peepdf。peepdf是一個使用python編寫的PDF文件分析工具,它能夠檢測到惡意的PDF文件。其設計目標是爲安全研究人員提供PDF分析中可能用到的全部組件,無需使用3或4種工具來完成同一件任務。
反數字取證chkrootkit
Linux系統下查找rootkit後門工具。判斷系統是否被植入Rootkit的利器。
內存取證工具
Volatility是開源的Windows、Linux、Mac、Android的內存取證分析工具,由python編寫成,命令行操做,支持各類操做系統。
取證分析工具binwalk
Binwalk是一個固件的分析工具,旨在協助研究人員對固件分析,提取及逆向工程。簡單易用,徹底自動化腳本,並經過自定義簽名,提取規則和插件模塊,更重要的一點是能夠輕鬆擴展。
藉助binwalk中的一個很強大的功能——提取文件(壓縮包)中的隱藏文件(或內容文件)。亦可分析文件格式。
分析壓縮包 binwalk .zip。
binwalk -e *.zip 將文件所有解壓,產生新的目錄_zip.zip.extracted,還能夠做爲文件格式分析的工具。
取證哈希驗證工具集
md5deep是一套跨平臺的方案,能夠計算和比較MD5等哈希加密信息的摘要MD5,SHA-1,SHA-256,Tiger,Whirlpool。
取證鏡像工具集
針對鏡像文件的取證工具,如mmsstat與mmls等命令。
數字取證套件
Autopsy是一款數字取證平臺,提供了一個瀏覽器平臺,訪問本地端口9999。DFF是數字取證工做輔助工具,它具備靈活的模塊系統,具備多種功能,包括:回覆錯誤或崩潰致使的文件丟失,證據的研究和分析。DFF提供了一個強大的體系結構和一些列有用的模塊。
一次完整的滲透測試,最後要完成一份報告做爲一個小結。相應的,Kali Linux爲安全工程師準備了報告工具集:
Dradis
Dradis用於提升安全檢測效率的信息共享框架(協做平臺)。Dradis提供了一個集中的信息倉庫,用於標記咱們目前已經作的工做和下一步計劃。基於瀏覽器的在線筆記。
keepnote
一款本地精簡的筆記本軟件,有以下特色:
- 富文本格式:彩色字體、內置圖片、超連接,能保存網頁圖片文字等完整內容。
- 樹形分層組織內容,分門別類,一目瞭然。
- 全文搜索
- 綜合截圖
- 文件附件
- 集成的備份和恢復
- 拼寫檢查(經過gtkspell)
- 自動保存
- 內置的備份和恢復(zip文件存檔)
媒體捕捉工具Cutycapt
將網頁內容截成圖片保存。
Recordmydesktop
屏幕錄像工具,能夠把桌面的操做錄製下來。
Maltego Casefile
證據管理。
MagicTree
一個面向滲透測試人員的工具,能夠幫助攻擊者進行數據合併、查詢、外部命令執行(好比直接調用nmap)和報告生成。全部數據都會以樹形結構存儲,很是方便。
Truectypt
免費開源的加密軟件,同時支持Windows,OS,Linux等操做系統。
service 服務名 start
和service 服務名 stop
能夠達到相同效果。