2017-2018-2 20179207 《網絡攻防技術》第九周做業

kali視頻(36-38)

壓力測試工具

壓力測試經過肯定一個系統的瓶頸或者不能接收的性能點,來得到系統能提供的最大的服務級別的測試。html

Kali下壓力測試攻擊包括VoIP壓力測試、WEB壓力測試、網絡壓力測試及無線壓力測試(包括以前介紹的MDK3和Reaver,本章再也不贅述)四個分類。python

VoIP是將模擬信號數字化,以數據封包的形式在IP網絡上作實時傳遞。Voip壓力測試工具包括iaxflood和inviteflood。linux

Asterisk做爲應用最爲普遍的開源VoIP產品,提出了基於統一服務端口的IAX協議,用於Asterisk服務器以及客戶端之間的信令及音視頻傳輸。iaxflood是利用IAX設計缺陷而發起洪水式攻擊的工具web

SIP是目前使用最廣且接受度最高的VoIP信令協議。INVITE是SIP協議中負責發起會話請求的指令,inviteflood是針對該指令發起洪水式攻擊的工具算法

藉助WEB壓力測試工具THC-SSL-DOS,任何人均可以把提供SSL安全鏈接的網站攻擊下線,這種攻擊方法稱爲SSL拒絕服務攻擊(SSL-DOS)。該工具由德國黑客組織發佈,默認同服務器創建400個SSL鏈接,而且快速進行從新協商renegotiation(renegotiation被用於瀏覽器到服務器之間的驗證。),以達到大量消耗服務器CPU資源的目的。與傳統DDoS工具不一樣的是,它不須要任何帶寬,只須要一臺執行單一攻擊的電腦。命令thc-ssl-dos -l 500 目標IP 443 --accept 對目標IP及其端口(默認443端口)創建500個SSL鏈接,進行泛洪攻擊,參數 -l 表示限制鏈接數量。shell

網絡壓力測試工具瀏覽器

dhcpig是耗盡DHCP資源池的壓力測試。DHCP服務爲新接入內網的計算機自動分配IP地址,而dhcpig工具藉助Scapy大量僞造Mac地址,從DHCP服務器那裏騙取IP,進而把DHCP所能分配的IP地址所有耗盡。這樣,新加入網絡的計算機將沒法獲取IP地址,從而沒法上網。安全

Macof工具可作泛洪攻擊。交換機Mac表的空間有限,當Mac表存滿Mac地址時就會報錯,而且進入非正常狀態。在此狀態下交換機會把接收的信息用廣播的形式發出去,這樣就能夠用抓包工具把廣播的信息抓到。服務器

Siege是一個壓力測試和評測工具,設計用於評估WEB應用在壓力下的承受能力。能夠根據配置對一個Web站點進行多用戶的併發訪問,記錄每一個用戶全部請求過程的響應時間,並在必定數量的併發訪問下重複進行。cookie

T50具備獨特的數據包注入工具,功能強大,支持unix系統,可進行多種協議數據包注入,是惟一可使用GRE封裝協議的工具。除了可以修改網絡路由,讓IT安全專家執行高級的「滲透測試」外,它還能在單個SOCKET上順序發送全部的協議數據包。

數據取證工具

數字取證技術將計算機調查和分析技術應用於潛在的、有法律效力的電子證據的肯定與獲取,一樣他們都是針對黑客和入侵的,目的都是保障網絡安全。

PDF取證工具peepdf是一個使用python編寫的PDF文件分析工具,它能夠檢測到惡意的PDF文件。其設計目標是爲安全研究人員提供PDF分析中可能用到的全部組件,無需使用3或4種工具來一塊兒做業了。peepdf還對PDF嵌入的Javascript代碼提供專門的分析功能,能夠提取Javascript腳本進行解碼、反轉義、執行等各類操做。

反數字取證chkrootkit

chkrootkit是一個Linux系統下的查找檢測rootkit後門的工具,是判斷系統是否被植入Rootkit的利器。

內存取證工具

Volatility是開源的Windows、Linux、Mac、Android的內存取證分析工具,由python編寫成,命令行操做,支持各類操做系統。該工具能夠經過抓取的內存狀態文件,分析出當時系統當時運行着哪些程序,系統的部分數據等。

詳見 Linux下內存取證工具Volatility的使用

取證分割工具binwalk

固件的分析工具,旨在協助研究人員對固件分析,提取及逆向工程。簡單易用,徹底自動化腳本,並經過自定義簽名,提取規則和插件模塊,更重要的一點是能夠輕鬆擴展。

取證哈希驗證工具集主要用做哈希驗證,如對下載的文件進行哈希計算,計算它的MD5值並和官網的MD5值進行比較,以肯定該文件是否被植入後門信息。

  • md5deep 是一套跨平臺的方案,能夠批量計算文件的哈希值,並和哈希值列表進行比對。該工具支持多種哈希算法,能夠避免哈希碰撞問題。
  • rahash2 能夠快速對文件總體、部分區塊、字符串等執行加密解密和hash等各類操做。

數字取證套件

Autopsy是一款數字取證平臺,也是Sleuth Kit和其餘數字取證工具的圖形接口。它被用於關於計算機的法律執行、軍事、企業審查等,甚至還能夠用它來恢復從相機記憶卡中的照片。Autopsy提供了一個瀏覽器平臺,訪問本地端口9999。

DFF是數字取證工做輔助工具,它具備靈活的模塊系統,具備多種功能,包括:回覆錯誤或崩潰致使的文件丟失,證據的研究和分析。DFF提供了一個強大的體系結構和一些列有用的模塊。

取證鏡像工具集主要是針對鏡像文件的取證分析,如mmstat與mmls等命令。Kali Linux 還提供了許多其餘的數字取證工具,你們能夠作進一步研究,取證的思路對安全測試也有幫助。

報告工具與系統服務

一次完整的滲透測試,最後總要完成一份優雅的報告做爲一個小結。相應的Kali爲安全工程師準備了報告工具集。對於Kali下各項系統服務,也整理了單獨的目錄。

Dradis是一個用於提升安全檢測效率的信息共享框架(協做平臺),提供了一個集中的信息倉庫,用於標記咱們目前已經作的工做和下一步計劃。Dradis是一個獨立的web應用程序,它會自動在瀏覽器中打開https://127.0.0.1:3004。設置密碼,使用任何登陸名便可進入Dradis框架進行使用。

媒體捕捉工具包括Cutycapt(將網頁內容截成圖片保存)和Recordmydesktop(屏幕錄像工具)。

證據管理:Maltego

MagicTree是一個面向滲透測試人員的工具,能夠幫助攻擊者進行數據合併、查詢、外部命令執行(如直接調用nmap,將掃描結果直接導入tree中)和報告生成,全部數據都會以樹形結構存儲。

Truectypt:免費開源的加密軟件,同時支持Windows,OS,Linux等操做系統。

系統服務目錄主要是方便咱們及時啓動或關閉某些服務,命令行輸入service 服務名 startservice 服務名 stop能夠達到相同效果。

  • BeEF:對應XSS測試框架BeEF的啓動與關閉
  • Dradis:對應筆記分享服務Dradis的啓動與關閉
  • Openvas:對應Openvas服務的啓動與關閉

教材學習

RaDa惡意代碼分析

使用 file 命令,strings 命令,以及文件脫殼器等對惡意程序 RaDa.exe 進行基本檢測.

seed緩衝區溢出

1.首先先關閉 ASLR.

sudo sh -c "echo 0 > /proc/sys/kernel/randomize_va_space"

2.先把緩衝區中所有填充 A ,即讓咱們增長的部分,下面的代碼來填入:

memset(&buffer,'A',517);

而後編譯運行生成 badfile。

3.編譯執行 stack.c,咱們發現有段錯誤(這是預料之中的)。

4.下面咱們開始 gdb 調試 stack 了。 咱們在 bof 函數入口處加個斷點,而後能夠觀察一下 ebp 棧基址周圍的內存,咱們再看 一下 bof 反彙編的代碼,這段反彙編代碼很容易讀懂,首先是 ebp 入棧,ebp 做爲棧基址, 而後給 bof 函數在棧上分配一個 0x18 的空間。將 bof 的參數即 str 的地址放到 esp+4 位置, 將 bof 函數中的 buffer 的地址放到 esp 位置,即 strcpy 函數調用所須要的兩個參數,調用完 strcpy 函數後函數就返回。所以,咱們知道棧上 buffer+12 的位置 EBP,buffer+16 的位置是 RET,所以,就須要在 buffer+16 的地方覆蓋返回地址。

5.咱們已經找到函數返回地址的位置了,那麼咱們該使返回地址跳轉到什麼位置呢?咱們 看圖 2,在離 bof 函數的棧基址 EBP 如下不遠處有大量的 41414141,這個是 main 函數棧幀 上的 str[517]。咱們使用 linux 下 RNS 攻擊方式,須要在 str 中放入很長的 NOPs 及 shellcode, 那麼咱們可使返回地址指向 str[517]所覆蓋的內存區域中的某一點,這一點應該指向 NOPs。
咱們設定一個返回地址:0xbffff3c0,這個地址大概是 str[200]的位置。那麼 shellcode 放在 str[400]的位置,下面是我構造 buffer 的代碼:

unsigned long ret=0xbffff3c0; memcpy(buffer+16,(char *)&ret,4);  memcpy(buffer+400,shellcode,strlen(shellcode));

6.編譯 exploit1.c 並運行,再運行./stack,將獲得 shell。可是這個 shell 並非 root 權限的 shell

  1. 任務 2:
    修改 shellcode,在 shellcode 中增長 setuid(0),使得程序得到 root 權限。

  2. 任務 3:
    咱們先打開 ASLR。而後運行./stack,發現報段錯誤。在 strcpy 函數返回後,返回地址成功的被覆蓋 爲 0xbffff3c0。
    不可以訪問 0xbffff3c0 處的地址,這個內存 地址不在咱們所申請分配的棧空間上。證實這個地址不在 NOPs 上,咱們能夠看到如今 buffer 內存塊上的地址從 0xbfe679XX 開始的,這個和 0xbffff3c0 相差很大,所以沒有如咱們預期的 同樣跳轉到 NOPs 上。
    原來這裏的 EBP 的位置發生了很大的變 化,因此 NOPs 也會跟着變化了,因此 0xbffff3c0 地址不可能跳轉進入 NOPs 上去。

perl(whiledo.sh)腳本,功能是屢次調用./stack 程序,大概一兩分鐘後 就會發現攻擊成功。成功的緣由是某一次bof函數隨機的棧基址EBP和0xbffff3c0很相近時, 恰好讓 0xbffff3c0 落入到 NOPs 上。 若是想使成功的機率儘量的增長,那麼就把 shellcode 移到 512 長度的緩衝區的最末 尾,中間所有用 NOP 填充。

  1. 任務 4:
    咱們從新編譯 stack.c 後運行,發現程序出錯,並吐出內存信息,如圖

Stack Guard 的機制:把%gs:0x14 的 cookie 放入 ebp-4 的位置,也就是緩衝區和返回地址之間。若是咱們想經過覆蓋緩衝區的方法來修改返回地址, 那麼一定會修改 ebp-4 的值。最後在函數返回前,Stack Guard 會把 ebp-4 的值取出來 和%gs:0x14 比較,即判斷原來放入棧上的 cookie 是否被修改了。若是檢查出來被修改了就 調用錯誤處理的函數 –stack_chk_fail@plt,不然正常返回函數地址。

教材內容整理

惡意代碼

惡意代碼的類型

惡意代碼類型 定義特徵 典型實例
計算機病毒(Virus) 經過感染文件(可執行文件、數據文件、電子郵件等)或 磁盤引導扇區進行傳播,通常須要宿主程序被執行或人 爲交互才能運行 Brain, Concept, CIH
蠕蟲(Worm) 通常爲不須要宿主的單獨文件,經過網絡傳播,自動復 制,一般無需人爲交互即可感染傳播 Morris, Code Red, Slammer
惡意移動代碼(Malicious mobile code) 從遠程主機下載到本地執行的輕量級惡意代碼,不須要 或僅須要極少的人爲干預。表明性的開發工具備: JavaScript, VBScript, Java,以及ActiveX Santy Worm
後門(Backdoor) 繞過正常的安全控制機制,從而爲攻擊者提供訪問途徑 Netcat, BO,冰河
特洛伊木馬 (Trojan) 假裝成有用軟件,隱藏其惡意目標,欺騙用戶安裝執行 Setiri 殭屍程序 (Bot) 使用一對多的命令與控制機制組成僵屍網絡 Sdbot, Agobot
內核套件(Rootkit) 經過替換或修改系統關鍵可執行文件(用戶態),或者 經過控制操做系統內核(內核態),用以獲取並保持最高 控制權(root access) LRK, FU,hdef
融合型惡意代碼 融合上述多種惡意代碼技術,構成更具破壞性的惡意代 碼形態 Nimda

緩衝區溢出和shellcode

緩衝區溢出安全漏洞基本原理:

一個根本問題

用戶輸入可控制的緩衝區操做缺少對目標緩衝區的 邊界安全保護

兩個要素

缺少邊界安全保護:漏洞利用點 用戶輸入可控制:漏洞利用路徑

三個挑戰 – 成功溢出攻擊

如何找出緩衝區溢出要覆蓋和修改的敏感位置?

將敏感位置的值修改爲什麼?

執行什麼代碼指令來達到攻擊目的?

相關文章
相關標籤/搜索