邊界設備SNMP服務攻擊思考
0x01 SNMP協議分析
1. 概述
網絡設備越來越大,就需要實時去管理如此諸多的設備,SNMP應運而生。
SNMP協議,可以用來接收網絡節點的通知消息和警告時間報告等,從而獲知網絡出現的問題。
SNMP協議版本
- SNMP V1: SNMP協議最初版本(1998年)
- SNMP V2: SNMP協議第二個版本,對比第一版,再性能、安全、機密性和管理者之間通信等方面進行了大量改進
- SNMP V3: SNMP協議目前最新的版本(2004年),提升協議的安全性,增加了認證和密文傳輸功能。
代理在UDP的161端口接收NMS的讀寫請求消息
管理站在UDP的162端口接收代理的事件通告消息
2. SNMP架構組成
- 社區:同一個管理框架下的網絡管理站和所有的節點的集合
- 網絡管理站:一個管理控制臺,也稱為網絡管理系統(NMS)
- 節點:網絡上的設備(被管理的設備)
3. 工作原理
發現、查詢和監視網絡中其他設備的狀態信息。

管理員通過NMS獲取網關監控數據的工作流程,其中涉及了一些SNMP協議的關鍵信息
- MIB(管理信息庫): 任何一個被管理設備都表示成一個對象,并稱為被管理對象。而MIB就是被管理對象的集合。定義了被管理對象的一系列屬性,如對象的名稱、對象的訪問權限和對象的數據類型等。
- SNMP代理: 是一種嵌入再設備中的網絡管理軟件模塊,主要來控制本地機器的管理信息,負責將管理信息轉換成SNMP兼容的格式,傳遞給NMS
工作流程步驟:
- 管理員查詢被管理設備中的對象相關值時,通過網絡管理站NMS中的MIB找到相關對象
- 網絡管理站NMS向SNMP代理申請MIB中定義對象的相關值
- SNMP代理在自己的MIB庫中進行查找
- SNMP代理將找到的對象相關值返回給網絡管理站NMS
4. 通信方式
SNMP采用特殊的客戶機/服務器模式進行通信。
客戶端 —— 網絡管理站NMS
服務器 —— SNMP代理
- 網絡管理站NMS向SNMP代理發出請求,詢問一個MIB定義的信息的參數值
- SNMP代理收到請求后,返回關于MIB定義信息的各種查詢
5. 操作類型及命令
操作類型
- get-request: NMS從SNMP Agent處提取一個或多個參數值
- get-response:返回一個或多個參數的值
- get-next-request: 網絡管理站NMS從SNMP代理處提取一個或者多個參數的下一個參數值
- set-request: 網絡管理站NMS設置SNMP代理處獲取MIB的相關參數值
- trap: SNMP代理主動向網絡管理站NMS發送報文消息
- informRequest:SNMP代理主動向網絡管理站NMS發送報文消息,NMS進行響應
操作命令
Get:管理站讀取代理者處對象的值
Set:管理站設置代理者處對象的值
Trap:代理者主動向管理站通報重要事件
6. 報文分析
利用wireshark抓取報文

0x02 SNMP服務攻擊
Cisco、H3C、華為等廠商生產的網絡設備大多支持SNMP網管協議,可以通過SNMP設置設備的某個參數對設備配置進行備份或者更新。
1. MIB文件
鑒于每種設備MIB是不一樣的,所對應能執行的操作也是不一樣。
2. 敏感信息
GNS3 構造一個思科路由器環境

2.1 修改設備信息
修改思科路由器名字
條件: 獲得SNMP可讀寫團體名
修改之前的名字

修改之后

查看命令

2.2 獲取配置文件
獲取思科路由器配置文件(模擬測試)
配置開啟路由器snmp服務
Router>enable Router# configure terminal Router(config)# snmp-server community public RO //讀Router(config)# snmp-server community private RW //寫Router(config)# snmp-server host 192.168.32.2 host //指定客戶端,可以設置任意主機Router(config)# snmp-server enable traps snmp
檢測是否開啟

下載路由器配置
使用msfconsole內置模塊

攻擊流程

查看配置文件(可以查看路由器的配置信息,如telnet密碼、特權密碼、路由、mac地址表等關鍵信息)

2.3 利用敏感信息獲取設備權限
強網擬態的實戰題—(如何獲取設備權限)
1.端口掃描發現設備開啟(161端口、22端口)
獲取設備名稱以及型號

確定設備為一臺huawei路由器
2.是否能夠獲取ssh用戶名
查詢該設備MIB,定位到查詢用戶名的OID

查詢該路由器用戶名

3.嘗試暴力破解(是否存在弱口令)

破解得到密碼123456
4.登錄設備

Huawei的命令行提供了諸如ping、traceroute、telnet等工具,這就意味著你可以對內網的其它主機進行探測,進行進一步的內網滲透。