多種設備基於 SNMP 協議的敏感信息泄露漏洞數據分析報告
作者:知道創宇404實驗室
1. 更新情況
2. 事件概述
SNMP協議[1],即簡單網路管理協議(SNMP,Simple Network Management Protocol),默認埠為 161/UDP,目前一共有3個版本:V1,V2c,V3。V3是最新的版本,在安全的設計上有了很大改進,不過目前廣泛應用的還是存在較多安全問題的V1和V2c版本。SNMP協議工作的原理簡單點來說就是管理主機向被管理的主機或設備發送一個請求,這個請求包含一個community和一個oid。oid就是一個代號,代表管理主機這個請求想要的信息。被管理的主機收到這個請求後,看請求community是否和自己保存的一致,如果一致,則把相應信息返回給管理主機。如果不一致,就不會返回任何信息。所以community相當與一個認證的口令。V1和V2c版本的SNMP協議都是明文傳輸數據的,所以可以通過抓包嗅探等手段獲取認證需要的community。
2018年12月25日,Seebug 平台收錄了多個基於SNMP協議的敏感信息泄露漏洞[2]。在多種廠商提供的網關類設備中,可以使用任意 community非常容易地讀取SNMP提供的明文形式的的Web管理系統的用戶名和密碼、Wi-Fi憑證等信息。也可以使用任意community通過SET協議指令發送配置更新或控制請求,攻擊者可以注入惡意的配置,如在Cisco DPC3928SL通過注入SSID造成Web管理系統的XSS(CVE-2018-20379)。
該漏洞最早於 2017 年 4 月 4 日曝出,CVE編號為CVE-2017-5135,漏洞發現者將該漏洞稱之為 Stringbleed[3]。2018年12月22日,時隔一年多,漏洞發現者進行全球探測後提供了一個很全的漏洞影響列表,其中包含23個不同廠商78個不同型號的網關設備,同時申請了多個CVE編號(CVE-2018-20380~CVE-2018-20401)。關於漏洞的成因一直都在爭論之中,截止目前依然沒有最終定論[4]。該類設備一般由ISP提供,我們暫時沒有找到漏洞設備或固件對漏洞原理進行研究。根據社區的討論結果,產生該漏洞的原因可能有以下幾種情況:
- 這些存在漏洞的設備使用了同一個存在邏輯缺陷的SNMP協議實現,該實現代碼沒有正確處理 community 字元串認證,導致任意 community 均可以通過認證,進一步導致敏感信息泄露。
- ISP 配置錯誤,無效的訪問控制規則。
本文不包含漏洞分析,而是針對全球該類設備漏洞存在情況的數據分析報告。
3. 漏洞復現
直接使用 snmpget
命令發送 SNMP GET 請求即可, -c 選項指定任意字元串作為 community 均可通過認證。
snmpget -v 1 -c public $IP iso.3.6.1.2.1.1.1.0 snmpget -v 1 -c #Stringbleed $IP iso.3.6.1.4.1.4491.2.4.1.1.6.1.1.0 snmpget -v 1 -c #Stringbleed $IP iso.3.6.1.4.1.4491.2.4.1.1.6.1.2.0
復現結果如下:
如果目標設備開放了Web服務,則可使用泄露的用戶名和密碼登陸Web管理系統,如下:
值得一提的是,用戶名和密碼存在為空的情況。
發送 SNMP SET 請求進行配置更新,-c 選項指定任意 community。如下所示,我們通過snmpset修改了 Web 系統用戶名。
4. 漏洞影響範圍
我們通過提取漏洞設備相關的「關鍵詞」,在ZoomEye網路空間搜索引擎[5]上共發現了1,241,510個 IP數據。
通過使用 zmap
對這 124 萬的IP數據進行存活檢測,發現約有 23 萬的IP 存活。進一步對存活的 23 萬IP進行漏洞存在檢驗,發現有15882 個目標設備存在該敏感信息泄露漏洞,涉及23個廠商的多個型號設備的多個固件版本。
對這 15882 個漏洞設備的信息進行聚合,得到廠商及版本等統計信息如下(各個型號的ZoomEye dork 為: Vendor +Model +相應型號,如搜索DPC3928SL的語法為:Vendor +Model +DPC3928SL)
漏洞設備的廠商分布餅圖如下(有一點需要說明的是,DPC3928SL網關設備屬於受此漏洞影響最嚴重的網路設備之一,原來屬於Cisco公司, 現在屬於Technicolor。)
國家分布前十如下,主要分布在中國、泰國、韓國等國家。
中國存在漏洞的設備全部分布在廣東、台灣兩個省份,呈現一定的地域性。其中廣東最多,為6318 台。
進一步分析發現,在原全球124萬161/udp 埠的該類設備IP數據中,屬於中國的幾乎全部分布在廣東省和台灣省,其他省份基本上沒有探測到公網上該類設備埠開放(運營商禁用了SNMP服務或者沒有使用同類設備?)。
廣東省受影響的設備的ISP分布如下,98% 以上歸屬於 「珠江寬頻/聯通「 這個ISP,存在漏洞的設備大部分為Technicolor CWA0101 Wireless Gateway ,version :gz5.0.2。
台灣的181台漏洞設備都歸屬於ISP:http://twmbroadband.com,存在漏洞的設備大部分為Ambit T60C926。結合以上數據分析,我們斷定中國存在該漏洞設備的地理分布和當地的ISP有很大關係。
針對所有存在該漏洞的設備,我們統計了憑證的使用情況,如下:
常用用戶名,主要包含admin、login、user、dlink等。
常用密碼,主要包含 admin、password、dream01、空、br0adband、gzcatvnet、user、Broadcom、dlink、ambit、root等,大部分為常見的弱密碼。
非常有意思的是,我們發現以下使用次數最多的用戶名密碼組合,和使用該憑證組合最多的漏洞設備,以及漏洞設備所在的國家,都存在一定的關聯性。
(如第一行記錄:中國所有含有該漏洞的設備中約有 5502 台都使用了 admin:admin 憑證,且受影響設備型號數量最多的為 Technicolor/CWA0101。)
5. 總結
基本可以肯定的是,這不是SNMP協議本身的問題,而是協議的實現代碼存在漏洞或者ISP配置錯誤。該漏洞影響廠商、設備型號非常多,且呈現出一定的區域性。
路由器、Modem、攝像頭等IoT設備的信息泄露漏洞層出不窮,對個人隱私造成極大的威脅,關閉非必要的埠或者使用防火牆限制非法訪問是個值得考慮的舉措。
系統的安全性往往取決於最短的那塊木板-「木桶效應」,通過SNMP協議泄露HTTP服務憑證很好的說明了這一點。
用戶可根據PoC自行驗證設備是否存在漏洞,如果存在漏洞可聯繫相應的ISP尋求解決方案。
6. 相關鏈接
[1] SNMP 協議
https://baike.baidu.com/item/SNMP/133378?fr=aladdin[2] Seebug 漏洞收錄
https://www.seebug.org/vuldb/ssvid-97741https://www.seebug.org/vuldb/ssvid-97742https://www.seebug.org/vuldb/ssvid-97736[3] Stringbleed
https://stringbleed.github.io/#[4] 關於該漏洞的討論
https://www.reddit.com/r/netsec/comments/67qt6u/cve_20175135_snmp_authentication_bypass/[5] ZoomEye網路空間搜索引擎
https://www.zoomeye.org/searchResult?q=MODEL%20%2BVENDOR%20%2Bport%3A%22161%22[6] SNMP 歷史漏洞參考
http://drops.the404.me/1033.html本文由 Seebug Paper 發布,如需轉載請註明來源。
歡迎關注我和專欄,我將定期搬運技術文章~
也歡迎訪問我們:知道創宇雲安全
推薦閱讀: