国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關(guān)注微信公眾號(hào)

技術(shù)分享 | 一種檢測(cè)工控設(shè)備Snmp漏洞工具 —— Snmp Fuzzer
2019-01-02   網(wǎng)絡(luò)安全和運(yùn)維

 01
 

 什么是Snmp Fuzzer

snmp fuzzer是一款用于對(duì)目標(biāo)設(shè)備snmp可寫(xiě)oid節(jié)點(diǎn)數(shù)據(jù)進(jìn)行fuzz測(cè)試的小工具。

 

 02

 

 為什么要用Snmp Fuzzer

現(xiàn)如今工控環(huán)境中,存在大量的工控設(shè)備默認(rèn)開(kāi)啟了snmp服務(wù)并支持snmp寫(xiě)操作,且設(shè)備使用了默認(rèn)的snmp community值,由于工控環(huán)境的特殊性,設(shè)備參數(shù)設(shè)定后會(huì)長(zhǎng)時(shí)間不會(huì)修改,導(dǎo)致開(kāi)啟snmp服務(wù)的工控設(shè)備存在數(shù)據(jù)被篡改、覆蓋、以及被大量可寫(xiě)數(shù)據(jù)攻擊致癱瘓的風(fēng)險(xiǎn)。而snmp fuzzer靈活且自動(dòng)化能夠?qū)﹂_(kāi)放了snmp寫(xiě)權(quán)限的工控設(shè)備進(jìn)行檢測(cè),從而評(píng)估設(shè)備的安全性。

 

 03

 

 工控設(shè)備開(kāi)啟snmp的危害

在以往的測(cè)試過(guò)程中,通過(guò)snmp fuzzer發(fā)現(xiàn)過(guò)一些工控設(shè)備的漏洞,這些漏洞主要集中在對(duì)snmp寫(xiě)操作的數(shù)據(jù)沒(méi)有進(jìn)行有效的校驗(yàn)。例如某設(shè)備支持通過(guò)snmp寫(xiě)操作來(lái)修改設(shè)備網(wǎng)卡的mac地址,但是沒(méi)有對(duì)mac地址的長(zhǎng)度進(jìn)行校驗(yàn),只要傳入過(guò)長(zhǎng)或者過(guò)短的mac地址都會(huì)造成設(shè)備癱瘓。還有些設(shè)備的網(wǎng)卡可以通過(guò)snmp寫(xiě)操作來(lái)開(kāi)啟和禁用,這樣直接就會(huì)造成設(shè)備的網(wǎng)絡(luò)中斷影響業(yè)務(wù)。此外通常廠(chǎng)商還會(huì)有其自定義的私有oid節(jié)點(diǎn),這些節(jié)點(diǎn)也很可能會(huì)存在一些安全問(wèn)題,導(dǎo)致設(shè)備出現(xiàn)各種預(yù)期外的異常。

 

 04

 

  Snmp Fuzzer檢測(cè)流程

snmp fuzz測(cè)試機(jī)通過(guò)發(fā)送可寫(xiě)oid的snmp set-request請(qǐng)求去改變工控設(shè)備可寫(xiě)oid控制的數(shù)據(jù),通過(guò)發(fā)送get request、get-next-request請(qǐng)求, 來(lái)接收工控設(shè)備返回的get-response報(bào)文,如果測(cè)試機(jī)沒(méi)有收到get-response的回復(fù)報(bào)文,則利用socket通信,來(lái)監(jiān)測(cè)工控設(shè)備是否崩潰。

 

 05

 

 Snmp Fuzzer安裝

在Ubuntu環(huán)境下安裝與使用snmp fuzzer。

1. 通過(guò)git命令,下載snmp fuzzer 代碼。

https://github.com/dark-lbp/snmp_fuzzer

2. snmp fuzzer運(yùn)行依賴(lài)scrapy,如果沒(méi)有安裝scrapy,需要安裝。

運(yùn)行pip install scrapy命令,安裝scrapy。

 

 06

 
  Snmp fuzzer使用與分析

1. 編寫(xiě)掃描目標(biāo)設(shè)備可寫(xiě)oid的測(cè)試py腳本。

a. 創(chuàng)建一個(gè)test_scan_oid.py的文件。

b. 打開(kāi)test_scan_oid.py文件,輸入以下內(nèi)容。

如下圖所示:

target:設(shè)置目標(biāo)機(jī)的IP地址。

port:檢查目標(biāo)機(jī)是否崩潰的通信端口。

count:fuzz snmp oid可寫(xiě)報(bào)文的次數(shù)。

nic:目標(biāo)機(jī)的默認(rèn)路由。

Target:創(chuàng)建一個(gè)snmpTarget類(lèi)。

 

SnmpTrarget參數(shù)說(shuō)明:

name:測(cè)試fuzz的名字,測(cè)試人員可以自定義。

monitor_port:目標(biāo)機(jī)是否存活監(jiān)控端口。

community:具備oid可寫(xiě)權(quán)限v2c用戶(hù),通常設(shè)備設(shè)置的v2c用戶(hù)為:public或者private。

oid:開(kāi)始掃描oid結(jié)點(diǎn)。

version:snmp用戶(hù)版本,目前snmp fuzzer只支持snmp v1、v2c。

Target.oid_scan():開(kāi)啟掃描目標(biāo)機(jī)可寫(xiě)oid的功能。

Target.save_scan_result():保存可寫(xiě)oid到pcap文件。

 

c.運(yùn)行test_scan_oid.py文件,開(kāi)始掃描目標(biāo)機(jī)可寫(xiě)的oid。執(zhí)行python test_scan_oid.py命令執(zhí)行完后在snmp_fuzzer/output目錄下會(huì)有一個(gè)Ip+_snmp_set_packet_list.pcap的文件,如:

該文件存儲(chǔ)的是目標(biāo)設(shè)備可寫(xiě)的oid報(bào)文,用于fuzz測(cè)試。

 

2. 編寫(xiě)fuzz測(cè)試腳本,進(jìn)行fuzz測(cè)試。

a. 創(chuàng)建一個(gè)test_snmp_fuzz.py文件。

b. 打開(kāi)test_snmp_fuzz.py文件,輸入以下內(nèi)容,如下圖所示:

 

Target.read_test_case_from_pcap用于從可寫(xiě)的oid報(bào)文中讀取oid

Traget.fuzz()用于開(kāi)始fuzz測(cè)試,通過(guò)不斷發(fā)送snmp set-request請(qǐng)求去設(shè)置snmp fuzz自己造的可寫(xiě)數(shù)據(jù)。如下圖所示:

 

3. 運(yùn)行test_snmp_fuzz.py文件,開(kāi)始fuzz測(cè)試。

python test_snmp_fuzz.py

當(dāng)目標(biāo)設(shè)備對(duì)某個(gè)寫(xiě)請(qǐng)求不進(jìn)行反饋或反饋異常時(shí),會(huì)通過(guò)socket connect 對(duì)目標(biāo)設(shè)備的存活進(jìn)行檢測(cè),具體檢測(cè)原理如下圖所示:

當(dāng)出現(xiàn)如下log信息時(shí)代表目標(biāo)機(jī)已經(jīng)崩潰。

 

 07

 

如何避免開(kāi)啟snmp的危害

開(kāi)啟snmp服務(wù)的設(shè)備采用snmp v3用戶(hù),因?yàn)閟nmp v3支持用戶(hù)認(rèn)證與加密,安全性更好、更可靠。

熱詞搜索:天地和興 工控設(shè)備

上一篇:德國(guó)制定路由器安全指南 完全遵守可獲特殊認(rèn)證標(biāo)簽
下一篇:企業(yè)安全體系建設(shè)之路之Web安全篇

分享到: 收藏
主站蜘蛛池模板: 浮山县| 岳阳市| 林甸县| 黑龙江省| 青川县| 斗六市| 洛扎县| 徐水县| 工布江达县| 阿瓦提县| 东乡县| 洱源县| 陇川县| 浏阳市| 眉山市| 资兴市| 永城市| 宁安市| 布尔津县| 香港| 霍山县| 泗阳县| 墨玉县| 闵行区| 南澳县| 华容县| 乌恰县| 丹棱县| 仁寿县| 宜丰县| 大埔县| 浏阳市| 兰西县| 普宁市| 林甸县| 庆元县| 禄劝| 赤壁市| 观塘区| 吉水县| 泽州县|