唐磊
(重慶三峽職業學院信息中心,重慶 404155)
[關鍵字] SNMP;SNMPUTIL;GFILAN guard;MIB;團體名
SNMP(Simple Network Management Protocol)協議[1]是由IETF為網絡管理服務定義的應用層通信協議。SNMP網絡架構由NMS、Agent和MIB組成[2],包含SNMPv1(采用團體名認證機制)、SNMPv2c(同版本1,提供更多的錯誤識別代碼)和SNMPv3(采用基于用戶的安全模型認證機制)三個版本[3]。該協議容易實現且其廣泛的TCP/IP應用基礎被眾多設備廠商支持,用于防火墻、路由器、交換機和網橋等設備。但該協議v1和v2版本存在“public”和“private”團體默認值漏洞[4],攻擊者可利用“public”默認值遠程讀取網絡設備信息,利用“private”默認值獲取網絡設備管理權,對網絡進行攻擊和破壞,發現并修補此漏洞迫在眉睫。
SNMPUTIL是基于Windows命令行下的軟件,可以用于檢測網絡服務器的運行環境,支持服務器端口檢測、網絡代理檢測、路由訪問IP檢測等多種操作模式,幫助用戶發現SNMP協議中存在的漏洞,獲得更加高級的安全保障。使用語法如下:
snmputil[get|getnext|walk]agent community oid[oid...],其中[get|getnext|walk]為消息類型,agent表示代理進程的IP地址,community表示團體名,即密碼,默認是public,oid表示MIB對象ID。
常用命令如下:
snmputil walk主機IP public.1.3.6.1.2.1.25.4.2.1.2列出系統進程
snmputil get主機IP public.1.3.6.1.4.1.77.1.4.1.0列出域名snmputil walk主機IP public.1.3.6.1.2.1.1列出系統信息snmputil walk主機IP public.1.3.6.1.4.1.77.1.2.25.1.1顯示系統用戶列表
snmputil walk主機IP public.1.3.6.2.1.25.6.3.1.2列出安裝的軟件
GFI LANguard由GFI公司開發,此軟件擁有全面的漏洞評估數據庫,含OVAL(2000個以上的檢測)和SANS前20名的網絡漏洞風險調查報告,通過BugTrag、SANS、OVAL、CVE和其他社區信息資料庫等為數據庫進行自動更新。GFI LANguard可作出超過15000種漏洞評估,基于每個IP,對網絡中多種操作系統(Windows,Mac OS,Linux)進行掃描,識別分類安全漏洞,并提出解決這些問題的工具,在系統被入侵之前修復所有漏洞。
GFI LANguard檢查SNMP漏洞有兩種方式[7]:這里以GFI LANguard9.0為例,第一種在軟件主界面中選擇“SNMP Audit”,在IP or range of IPs中輸入待檢查的IP地址,點擊“Retrieve”按鈕,即可檢測出SNMP中的讀寫團體名漏洞;第二種在軟件主界面中選擇“SNMP Walk”,在IP or range of IPs中輸入待檢查的IP地址,點擊“Retrieve”按鈕,即可顯示出對應設備的MIB[8]信息。
在分析漏洞過程中,這里要用到SNMPUTIL工具及GFI LANguard工具作漏洞詳細檢查和分析。以我校在一次網絡巡檢中發現此漏洞為例來說明漏洞的分析過程。
在命令提示符下輸入命令:snmputil walk我校網站域名public.1.3.6.1.2.1.1|more,顯示出該系統所對應的sysObjectID值(以255字節的16進制數對硬件、操作系統等的說明),sysObjectID值(網絡管理子系統供應商授權身份),sysUp-Time(系統網絡管理部最近一次重啟時間),sysContact(被管理節點供應商名稱和聯系地址),sysName(被管理節點防火墻型號),sysLocation(該節點所在物理位置)和sysServices(該實體最初提供服務的設置值)。如果要獲取系統的if-Number[9]值(網絡接口數量),ifTable值(接口條目列表),at值(地址轉換映射),ipAddrTable值(公網IP信息)和ipRouteTable值(IP路由表)等信息,在命令提示符下輸入命令:snmputil walk學院網站域名1.3.6.1.2.1|more,顯示結果如圖1所示。

圖1 snmputil運行結果
使用GFI LANguard對我校網站進行進一步的檢查,使用“SNMP Audit”方式,檢查結果中發現界面中的public和private出現紅色圓點標記,如圖2所示。然后使用“SNMP Walk”方式,檢查結果以樹形目錄方式顯示網絡中相關信息。點擊“NetWork Audit”,出現檢查結果報表,其中SNMP信息如圖3所示。

圖2 GFI LANguard使用SNMPWalk方式檢查結果

圖3 報表中SNMP信息
通過以上方法可獲取整個網絡的設備、公網IP、地址轉換和路由表等信息,其中設備信息中出現設備型號USG5330及供應商信息Huawei??芍谖倚7阑饓Φ腟NMP配置中存在public及private弱口令漏洞。以上信息來源于MIB(管理信息庫)—被管理設備中的數據庫[10],其描述了包含在數據庫中的對象或表項。每一對象或表項都有對象類型、語法、存取和狀態等四個屬性組成[11]。MIB采用樹型結構(如圖4所示),每個節點分配一個字符串和一個小整數作為OID[12]標號。任意對象的名字就是從root(根)節點到對象節點路徑上各節點的標號序列,標號間用點分隔[13]。例如:mib-2節點表示為iso.org.dod.internet.mgmt.mib-2[14],數字表示為1.3.6.1.2.1,interface接口信息數字表示為1.3.6.1.2.1.2[15]。以上信息若被攻擊者利用,會對網絡造成嚴重的破壞。

圖4MIB結構樹
通過以上分析可知防火墻中存在團體名[16]弱口令漏洞,通過修改防火墻中SNMP配置命令可修復此漏洞。修復步驟為:
第1步,使用Secure CRT連接防火墻,輸入密碼登錄防火墻進入用戶模式;
第2步,在用戶模式下輸入sys命令進入系統模式,輸入如下命令:
重新設置讀團體名值
[USG5330]snmp-agent community read讀團體名值
重新設置寫團體名值
[USG5330]snmp-agent community write寫團體名值
允許向網管工作站10.0.100.10發送Trap[17]報文,使用的團體名為新設置的讀團體名值。
[USG5330]snmp-agent target-host trap address udp-domain 10.0.100.10 params securityname讀團體名值
第3步,輸入quit命令退出系統模式,在用戶模式下輸入save命令保存配置,輸入quit命令退出用戶模式。
使用GFI LANguard對漏洞修復結果進行驗證,當使用“SNMPAudit”方式再次檢查我校網站時,檢查結果未發現界面中“public”或“private”出現任何標記,如圖5所示,漏洞已修復成功。

圖5 漏洞修復后檢查結果
SNMP協議功能強大,在網絡管理工作帶給用戶極大的便利。由于其默認讀寫團體名被廣大用戶知道,使其成為了攻擊者破壞網絡的途徑。在網絡管理工作中,要養成不使用設備廠商默認密碼作為設備登錄密碼或通信密碼的習慣,以免給攻擊者留下網絡安全漏洞。