唐磊
(重慶三峽職業(yè)學(xué)院信息中心,重慶 404155)
[關(guān)鍵字] SNMP;SNMPUTIL;GFILAN guard;MIB;團(tuán)體名
SNMP(Simple Network Management Protocol)協(xié)議[1]是由IETF為網(wǎng)絡(luò)管理服務(wù)定義的應(yīng)用層通信協(xié)議。SNMP網(wǎng)絡(luò)架構(gòu)由NMS、Agent和MIB組成[2],包含SNMPv1(采用團(tuán)體名認(rèn)證機(jī)制)、SNMPv2c(同版本1,提供更多的錯(cuò)誤識(shí)別代碼)和SNMPv3(采用基于用戶的安全模型認(rèn)證機(jī)制)三個(gè)版本[3]。該協(xié)議容易實(shí)現(xiàn)且其廣泛的TCP/IP應(yīng)用基礎(chǔ)被眾多設(shè)備廠商支持,用于防火墻、路由器、交換機(jī)和網(wǎng)橋等設(shè)備。但該協(xié)議v1和v2版本存在“public”和“private”團(tuán)體默認(rèn)值漏洞[4],攻擊者可利用“public”默認(rèn)值遠(yuǎn)程讀取網(wǎng)絡(luò)設(shè)備信息,利用“private”默認(rèn)值獲取網(wǎng)絡(luò)設(shè)備管理權(quán),對(duì)網(wǎng)絡(luò)進(jìn)行攻擊和破壞,發(fā)現(xiàn)并修補(bǔ)此漏洞迫在眉睫。
SNMPUTIL是基于Windows命令行下的軟件,可以用于檢測(cè)網(wǎng)絡(luò)服務(wù)器的運(yùn)行環(huán)境,支持服務(wù)器端口檢測(cè)、網(wǎng)絡(luò)代理檢測(cè)、路由訪問IP檢測(cè)等多種操作模式,幫助用戶發(fā)現(xiàn)SNMP協(xié)議中存在的漏洞,獲得更加高級(jí)的安全保障。使用語法如下:
snmputil[get|getnext|walk]agent community oid[oid...],其中[get|getnext|walk]為消息類型,agent表示代理進(jìn)程的IP地址,community表示團(tuán)體名,即密碼,默認(rèn)是public,oid表示MIB對(duì)象ID。
常用命令如下:
snmputil walk主機(jī)IP public.1.3.6.1.2.1.25.4.2.1.2列出系統(tǒng)進(jìn)程
snmputil get主機(jī)IP public.1.3.6.1.4.1.77.1.4.1.0列出域名snmputil walk主機(jī)IP public.1.3.6.1.2.1.1列出系統(tǒng)信息snmputil walk主機(jī)IP public.1.3.6.1.4.1.77.1.2.25.1.1顯示系統(tǒng)用戶列表
snmputil walk主機(jī)IP public.1.3.6.2.1.25.6.3.1.2列出安裝的軟件
GFI LANguard由GFI公司開發(fā),此軟件擁有全面的漏洞評(píng)估數(shù)據(jù)庫(kù),含OVAL(2000個(gè)以上的檢測(cè))和SANS前20名的網(wǎng)絡(luò)漏洞風(fēng)險(xiǎn)調(diào)查報(bào)告,通過BugTrag、SANS、OVAL、CVE和其他社區(qū)信息資料庫(kù)等為數(shù)據(jù)庫(kù)進(jìn)行自動(dòng)更新。GFI LANguard可作出超過15000種漏洞評(píng)估,基于每個(gè)IP,對(duì)網(wǎng)絡(luò)中多種操作系統(tǒng)(Windows,Mac OS,Linux)進(jìn)行掃描,識(shí)別分類安全漏洞,并提出解決這些問題的工具,在系統(tǒng)被入侵之前修復(fù)所有漏洞。
GFI LANguard檢查SNMP漏洞有兩種方式[7]:這里以GFI LANguard9.0為例,第一種在軟件主界面中選擇“SNMP Audit”,在IP or range of IPs中輸入待檢查的IP地址,點(diǎn)擊“Retrieve”按鈕,即可檢測(cè)出SNMP中的讀寫團(tuán)體名漏洞;第二種在軟件主界面中選擇“SNMP Walk”,在IP or range of IPs中輸入待檢查的IP地址,點(diǎn)擊“Retrieve”按鈕,即可顯示出對(duì)應(yīng)設(shè)備的MIB[8]信息。
在分析漏洞過程中,這里要用到SNMPUTIL工具及GFI LANguard工具作漏洞詳細(xì)檢查和分析。以我校在一次網(wǎng)絡(luò)巡檢中發(fā)現(xiàn)此漏洞為例來說明漏洞的分析過程。
在命令提示符下輸入命令:snmputil walk我校網(wǎng)站域名public.1.3.6.1.2.1.1|more,顯示出該系統(tǒng)所對(duì)應(yīng)的sysObjectID值(以255字節(jié)的16進(jìn)制數(shù)對(duì)硬件、操作系統(tǒng)等的說明),sysObjectID值(網(wǎng)絡(luò)管理子系統(tǒng)供應(yīng)商授權(quán)身份),sysUp-Time(系統(tǒng)網(wǎng)絡(luò)管理部最近一次重啟時(shí)間),sysContact(被管理節(jié)點(diǎn)供應(yīng)商名稱和聯(lián)系地址),sysName(被管理節(jié)點(diǎn)防火墻型號(hào)),sysLocation(該節(jié)點(diǎn)所在物理位置)和sysServices(該實(shí)體最初提供服務(wù)的設(shè)置值)。如果要獲取系統(tǒng)的if-Number[9]值(網(wǎng)絡(luò)接口數(shù)量),ifTable值(接口條目列表),at值(地址轉(zhuǎn)換映射),ipAddrTable值(公網(wǎng)IP信息)和ipRouteTable值(IP路由表)等信息,在命令提示符下輸入命令:snmputil walk學(xué)院網(wǎng)站域名1.3.6.1.2.1|more,顯示結(jié)果如圖1所示。
圖1 snmputil運(yùn)行結(jié)果
使用GFI LANguard對(duì)我校網(wǎng)站進(jìn)行進(jìn)一步的檢查,使用“SNMP Audit”方式,檢查結(jié)果中發(fā)現(xiàn)界面中的public和private出現(xiàn)紅色圓點(diǎn)標(biāo)記,如圖2所示。然后使用“SNMP Walk”方式,檢查結(jié)果以樹形目錄方式顯示網(wǎng)絡(luò)中相關(guān)信息。點(diǎn)擊“NetWork Audit”,出現(xiàn)檢查結(jié)果報(bào)表,其中SNMP信息如圖3所示。
圖2 GFI LANguard使用SNMPWalk方式檢查結(jié)果
圖3 報(bào)表中SNMP信息
通過以上方法可獲取整個(gè)網(wǎng)絡(luò)的設(shè)備、公網(wǎng)IP、地址轉(zhuǎn)換和路由表等信息,其中設(shè)備信息中出現(xiàn)設(shè)備型號(hào)USG5330及供應(yīng)商信息Huawei??芍谖倚7阑饓Φ腟NMP配置中存在public及private弱口令漏洞。以上信息來源于MIB(管理信息庫(kù))—被管理設(shè)備中的數(shù)據(jù)庫(kù)[10],其描述了包含在數(shù)據(jù)庫(kù)中的對(duì)象或表項(xiàng)。每一對(duì)象或表項(xiàng)都有對(duì)象類型、語法、存取和狀態(tài)等四個(gè)屬性組成[11]。MIB采用樹型結(jié)構(gòu)(如圖4所示),每個(gè)節(jié)點(diǎn)分配一個(gè)字符串和一個(gè)小整數(shù)作為OID[12]標(biāo)號(hào)。任意對(duì)象的名字就是從root(根)節(jié)點(diǎn)到對(duì)象節(jié)點(diǎn)路徑上各節(jié)點(diǎn)的標(biāo)號(hào)序列,標(biāo)號(hào)間用點(diǎn)分隔[13]。例如:mib-2節(jié)點(diǎn)表示為iso.org.dod.internet.mgmt.mib-2[14],數(shù)字表示為1.3.6.1.2.1,interface接口信息數(shù)字表示為1.3.6.1.2.1.2[15]。以上信息若被攻擊者利用,會(huì)對(duì)網(wǎng)絡(luò)造成嚴(yán)重的破壞。
圖4MIB結(jié)構(gòu)樹
通過以上分析可知防火墻中存在團(tuán)體名[16]弱口令漏洞,通過修改防火墻中SNMP配置命令可修復(fù)此漏洞。修復(fù)步驟為:
第1步,使用Secure CRT連接防火墻,輸入密碼登錄防火墻進(jìn)入用戶模式;
第2步,在用戶模式下輸入sys命令進(jìn)入系統(tǒng)模式,輸入如下命令:
重新設(shè)置讀團(tuán)體名值
[USG5330]snmp-agent community read讀團(tuán)體名值
重新設(shè)置寫團(tuán)體名值
[USG5330]snmp-agent community write寫團(tuán)體名值
允許向網(wǎng)管工作站10.0.100.10發(fā)送Trap[17]報(bào)文,使用的團(tuán)體名為新設(shè)置的讀團(tuán)體名值。
[USG5330]snmp-agent target-host trap address udp-domain 10.0.100.10 params securityname讀團(tuán)體名值
第3步,輸入quit命令退出系統(tǒng)模式,在用戶模式下輸入save命令保存配置,輸入quit命令退出用戶模式。
使用GFI LANguard對(duì)漏洞修復(fù)結(jié)果進(jìn)行驗(yàn)證,當(dāng)使用“SNMPAudit”方式再次檢查我校網(wǎng)站時(shí),檢查結(jié)果未發(fā)現(xiàn)界面中“public”或“private”出現(xiàn)任何標(biāo)記,如圖5所示,漏洞已修復(fù)成功。
圖5 漏洞修復(fù)后檢查結(jié)果
SNMP協(xié)議功能強(qiáng)大,在網(wǎng)絡(luò)管理工作帶給用戶極大的便利。由于其默認(rèn)讀寫團(tuán)體名被廣大用戶知道,使其成為了攻擊者破壞網(wǎng)絡(luò)的途徑。在網(wǎng)絡(luò)管理工作中,要養(yǎng)成不使用設(shè)備廠商默認(rèn)密碼作為設(shè)備登錄密碼或通信密碼的習(xí)慣,以免給攻擊者留下網(wǎng)絡(luò)安全漏洞。