持續更新|模糊測試工具合集,附貼心教程(一)

模糊測試

模糊測試是一種暴力可靠性測試技術。它採用黑盒測試的思想,透過自動或半自動的生成大量畸形的隨機資料來作為應用程式的輸入,並監視程式異常,以發現應用程式中可能存在的漏洞或安全缺陷。

當滲透測試者遇到沒有任何已知漏洞的系統時,有必要考慮是否存在0day漏洞的可能性。所有計算機程式的本質都是接收使用者輸入,然後對其解析、處理、計算並返回結果。模糊測試的根本思路就是由測試人員向程式發出大量隨機或半隨機的資料,透過觀察程式對不同輸入資料的處理結果(如程式是否發生異常或崩潰),直觀的判斷程式是否存在漏洞。

利用模糊測試技術可以深度挖掘軟體所隱含的透過其他測試手段無法挖掘出來的漏洞,比如緩衝區溢位、格式化字串、程式碼注入和許多其他型別的漏洞。

模糊測試通常由6個步驟組成:

識別目標

識別輸入

生成模糊測試資料

執行模糊測試資料

監控輸出和鑑別問題的可用性

要進行模糊測試,必然要使用模糊測試工具。市面上的模糊測試工具有很多,這些工具運用在不同的方向上,比如用於測試文字格式、網路通訊協議、Web應用、無線通訊協議等。有輸入的地方就有可能產生攻擊面,不可信的資料輸入源往往會輸入一些不安全的或與規定不一致的資料,從而產生不可預知的後果。因此需要對所有可能的資料輸入進行嘗試,即進行模糊測試,以驗證已知和未知的漏洞。

本文將分為上中下三篇文章,介紹一些現有的運用在不同方向上的優秀fuzzing開源專案,包括

通用Fuzzers

Fuzzers

通訊協議Fuzzers

通用

Fuzzers

檔案Fuzzers

開源網安模糊測試平臺(簡稱:SFuzz)

SFuzz是一款基於模型的通用模糊測試工具,提供豐富的模糊測試模型,可檢測出各種軟、硬體系統部件裡的漏洞,支援檔案格式、網路協議、工業控制協議、硬體裝置及物聯網等的安全測試。SFuzz平臺具有效率高、可併發、可擴充套件、可回溯等優點,能夠自動產生大量邊界用例、畸形用例、隨機用例等,透過這些測試用例發現被測物件是否有潛在安全漏洞。

1。1、SFuzz的

工作原理

SFuzz平臺透過模型庫提供最廣泛的協議測試等功能,累計200種左右。SFuzz根據被測物件的協議格式,透過對協議的解析分析,生成報文資料包(即種子輸入),然後再利用SFuzz的變異演算法,得到大量的測試用例。值得一提的是,SFuzz透過隨機化序列技術,只要Fuzzing一直在執行,可以不斷的生成測試用例,透過對這些測試用例的執行,最終得到Crash

持續更新|模糊測試工具合集,附貼心教程(一)

(工作原理)

1。2、SFuzz檢測的業務流程

持續更新|模糊測試工具合集,附貼心教程(一)

(SFuzz檢測的整體流程)

SFuzz平臺採用框架式結構設計,可靈活配置不同的測試模型,適用於韌體、驅動、軟體、網路協議、API介面等不同產品、不同場景、不同層次的模糊測試。

通訊協議

Fuzzers

我們知道,為了完成通訊或特定服務,通訊雙方實體必須遵循一定的規則和約定,這裡的規則和約定就是通訊協議。但在網路協議組裝、解析的過程中可能存在漏洞,比如攻擊方在與目標應用通訊的過程中,向目標應用傳送了變異或錯誤的值,使得目標應用發生了異常。因此,我們針對通訊協議進行測試。

原始的做法是在知道產品服務端與客戶端的通訊協議後,根據協議的格式和定義來準備大量測試資料,然後手動地傳送給伺服器端,試圖找到一些安全漏洞。但分析通訊協議本身就是一件難事,需要測試人員掌握一定的協議知識,而且自己準備資料,耗時耗力,成本太高。這時,模糊測試就派上用場了。透過模糊測試,測試人員只需要把測試目標告訴測試工具,測試工具將自動生成大量測試資料,並將資料傳送給目標伺服器,最後由測試人員對測試結果進行分析即可。

網路協議模糊器的測試物件主要是各類網路產品中的網路協議解析模組,目的是測試其在組裝、解析網路協議過程中是否存在漏洞。網路協議模糊測試的思想是模糊器與被測目標進行通訊,向被測目標應用傳送變異或包含錯誤的模糊值,並監視目標應用,以發現錯誤。

1、什麼是SFuzz

針對通訊協議的開源的Fuzz工具——BED

BED(Bruteforce Exploit Detector)是一款純文字協議的模糊測試工具,常用於檢測程式是否存在潛在的漏洞,如緩衝區溢位、格式化字串、整體溢位等漏洞。它可以根據指定的協議,自動傳送各種模糊資料或含有問題字串的命令組合,測試目標的處理方式,從而判斷目標是否存在緩衝區溢位等常見漏洞。它預置了是一種外掛,這些外掛針對不同的服務或系統,如FTP、POP等。同時,這些外掛內包含了已知的各種攻擊載荷。BED透過載入外掛,向目標主機發送攻擊資料,如果發現目標無法響應,則說明目標可能存在緩衝區溢位等漏洞。

BED目前支援的協議有finger、ftp、http、imap、irc、lpd、pjl、pop、smtp、socks4和socks5。

1、什麼是BED?

Kali Linux系統中自帶了BED網路監測工具,它透過不斷的向目標伺服器傳送已有的通訊測試包以及基於這些包的一些變異用例來測試目標伺服器的通訊協議是否存在漏洞。

BED的相關檔案存放在Kali Linux的/usr/share/bed路徑下,執行bed。pl檔案將顯示BED的使用說明,你也可以直接在終端執行bed命令檢視。

持續更新|模糊測試工具合集,附貼心教程(一)

根據使用說明,我們可用清楚地看到BED的基本使用命令格式大致為:。/bed。pl -s-t-p-o[ depends on the plugin ]

其中-s標誌用於掃描;指定要選擇的協議;-t標誌用於指定目標(IP地址),注意,不能指定為localhost;-p標誌用於指定埠;最後使用-o標誌來設定超時。

也可以直接使用bed命令,若使用。/bed。pl命令,需要在該檔案所在目錄下執行。舉個簡單的例子,現在有一個http伺服器在主機192。168。153。145的80埠,你試圖使用BED來找到它的漏洞,那麼你需要執行的命令為:bed -s HTTP -t 192。168。153。145 -p 80 -o 10

或者在/usr/share/bed目錄下執行命令:。/bed。pl -s HTTP -t 192。168。153。145 -p 80 -o 10

持續更新|模糊測試工具合集,附貼心教程(一)

如果它有漏洞,BED將會顯示錯誤。比如若在上圖Normal tests中+Bufferoverflowtesting的“testing:3”下顯示了類似“attempt failed”這樣的報錯,則說明程式在進行第3項緩衝區溢位測試時出現了錯誤,也就是說這裡可能存在緩衝區溢位問題。那麼我們就要根據報錯進行調查,首先要調查特定測試模組,檢查測試指令(/bed/bedmod/http。pm檔案),然後將目標程式恢復到正常狀態,增加BED的超時時間,再進行幾次重複實驗,一步步確認問題是否真的存在。經過多次測試驗證,就可以判斷出漏洞出現的位置,然後透過手工執行驗證、程式碼稽核等方式找出漏洞的具體觸發機制,從而加以利用。

最後,一起來動手試試吧!

參考連結:https://tools。kali。org/vulnerability-analysis/bed

2、BED的簡單使用

針對通訊協議的開源的Fuzz工具——Doona

Doona繼承自BED,是BED的分支。它在BED的基礎上修正了一些bug,並添加了一些新的功能,例如dump測試用例到標準輸出流中,支援中斷以及恢復測試等。此外,它增加了一些外掛,如proxy、rtsp、tftp、whois等。Doona對各個外掛擴充了攻擊載荷(也稱為模糊用例),可以更徹底地檢測目標是否有潛在的緩衝區溢位和格式化字串等漏洞。

1、什麼是Doona

跟BED一樣,Doona也是Kali Linux系統自帶的一個測試工具。其相關檔案一般存放於/usr/share/doona目錄下。

在終端輸入“doona”並執行,即可看到Doona的使用方法。

持續更新|模糊測試工具合集,附貼心教程(一)

這裡給出了Doona的基本使用命令格式:。/doona。pl -m [module],注意,該命令是以執行檔案的形式進行的,需進入到doona。pl檔案所在目錄下(即/usr/share/doona目錄)執行。也可以直接執行doona -m [module]。

其中,-m用於指定模組,可以是說明中列出DICT、FINGER、FTP等,此項是必要的,是可選項,你可以根據自己的需求選擇說明中的選項;-c表示在每個 模糊案例之後執行健康檢查;-t用於指定目標主機;-p指定埠;-o用於設定超時;-r用於在測試用例索引處恢復模糊測試;-k標誌表示繼續嘗試直到伺服器透過健康檢查;-d將測試用例轉儲到標準輸出(與 -r 結合使用);-M設定目標在第個案例後停止;-h是幫助選項。

舉個例子,我想使用HTTP外掛(-m HTTP)來對目標192。168。153。23(-t 192。168。153。23)進行模糊測試,並設定該目標在第5個案例後停止(-M 5),我將執行:doona -m HTTP -t 192。168。153。23 -M 5

下面我將使用doona來對baidu。com進行模糊測試。

首先透過ping baidu。com得到它的IP地址

持續更新|模糊測試工具合集,附貼心教程(一)

執行命令:doona -m HTTP -t 220。181。38。251 ,開始測試

持續更新|模糊測試工具合集,附貼心教程(一)

參考連結:https://tools。kali。org/vulnerability-analysis/doona

https://latesthackingnews。com/2016/12/04/use-doona-bruteforce-exploit-detector-tool-kali-linux/

持續更新|模糊測試工具合集,附貼心教程(一)

靜候下文,仍有更多工具彙總