beSTORM之網絡協議Fuzz入門教程

轉載自FreeBuf.COMcss

本文將以SNMP協議爲例介紹如何使用beSTORM進行網絡協議Fuzz。服務器

實驗環境

Windows 7 X64 (IP:192.168.0.123)網絡

                   beSTORM 3.7架構

被測機器:Centos (IP:192.168.0.120)併發

                  Perl 5tcp

1、beSTORM架構簡介

beSTORM的架構分爲兩個部分,一部分爲Client,另外一部分爲Monitor。其中Client用於向被測程序發送畸形數據包;Monitor用於監控被測程序的狀態,一旦發現被測程序出現異常當即記錄下來,併發送給Client端,以下圖所示。ide

beSTORM架構_v2.png

 

2、配置Monitor

一般在Windows環境下的對被測程序的監控使用GUI版本的Monitor,以下圖所示。工具

beSTROM_Monitor.png

在Linux環境下對被測程序的監控利用gdb調試工具,gdb能夠在被測程序發生異常時通知beSTORM的Client端。beSTORM提供一個Perl腳本(gdb_monitor.pl文件),該腳本將gdb做爲被測程序的調試器,而且將運行信息經過UDP發送給beSTORM的Client端。性能

首先在beSTORM的安裝目錄下找到gdb_monitor.pl文件。該腳本共有4個參數,分別是:(1)host,指定beSTORM client的host。(2)port,指定beSTORM的client的UDP端口用於接收異常信息。(3)file,指定被測程序。(4)pid,指定須要附加進程的PID。測試

gdb_monitor.pl_mosaic.png

本文對遠程服務器的SNMP協議進行Fuzz,首先查看SNMP協議161端口對應的進程,以下圖所示,對應進程的PID爲4670。

查看161端口對應的進程_mosaic.png

故pl腳本的執行命令以下:

perl gdb_monitor.pl --host 192.168.0.123 --pid 4670

0×3 配置beSTORM

(1)嚮導步驟1。首先新建beSTORM的工程,嚮導第一步以下圖所示。這裏選擇「Advanced」。

beSTORM_Wizard_1.png

 

(2)嚮導步驟2。注意在predefined modules中選擇SNMP協議,Hostname or IP address編輯框中填寫被測服務器的IP地址192.168.0.120。

beSTORM_Wizard_2.png

 

(3)嚮導步驟3。

Wizard_3.png

 

選中「Run in batch mode」(以批處理模式運行)複選框時,beSTORM發現首個錯誤後會繼續運行。注意,在這種狀況下,不管採用從新啓動仍是其餘方法,都應從以前的錯誤中恢復被測程序。

選中「Make sure monitor is up before starting」(確保開始前開啓監控器)複選框時,beSTORM收到測試環境發出的約定信號後纔會開始測試。這樣,beSTORM就可肯定測試環境是否運行正常。

選中「Report connectivity issues as exceptions」(報告異常鏈接問題)複選框時,若是beSTORM沒法接收測試環境發出的網絡流量,即視爲存在潛在問題或漏洞。這一功能會將全部網絡問題識別爲潛在漏洞,所以對於測試監控難度較大的環境(例如專用硬件設備)大有幫助。經過這種方式,beSTORM能夠在後續的處理中輕鬆地發現一樣的問題,並找出緣由。

選中「Periodically test connection and report vulnerability upon failure」(按期測試鏈接並在出現故障時報告漏洞)複選框時,beSTORM會測試被測程序的操做,並對於非正常流量作出迴應。若是沒有出現預期響應,beSTORM會生成異常報告。

(4)嚮導步驟4。在步驟4能夠查看本工程中的已有配置,能夠手動修改相關配置。

beSTORM_Wizard_4.png

 

(5)嚮導步驟5。SPS(Session per Second)即爲每秒鏈接次數,請根據服務器性能設置。Host or IP address須要填寫Monitor的IP地址,通常狀況下,Monitor的IP地址與被測目標程序所在IP地址是一致的。

beSTORM_Wizard_5.png

 

(6)嚮導步驟6。

beSTORM_Wizard_6.png

 

beSTORM Client運行界面以下圖所示。

beSTORM_Main_run.png

0×4 Fuzz測試

配置完畢後,能夠查看的這次Fuzz測試的架構,以下圖所示。

beSTORM_Architecture_mosaic.png

當beSTORM Client開始發送畸形數據包時,能夠配置tcpdump抓取到beSTROM發送到161端口的畸形數據包,tcpdump抓取結果以下圖所示,抓取命令爲:tcpdump –nn –i eth0 port 161。

tcpdump_mosaic.png

此時能夠坐等被測程序出現異常,Monitor能夠檢測到異常,並將異常發送給beSTORM Client。

ref: 《beSTORM – User Guide》 

*本文做者:dolphin,轉載自FreeBuf.COM

相關文章
相關標籤/搜索