SNMP被爆存在一個嚴重的認證繞過漏洞可獲得遠程讀寫權限

簡介

在DEFCON 24 IoT Village中,我就此研究發現了SNMP寫入屬性的危險大多受影響的是在物聯網,警察巡邏,救護車和其他“關鍵任務車輛”中。

在2016年12月與阿根廷的同事(Ezequiel Fernandez),我們決定在互聯網上再次“Fuzzing ”SNMP協議,但這次在字符串中使用不同的組合,例如,如果我們使用SNMP隨機測試來自互聯網的哪些共同字符串中的值如“root”“admin”“user”將會響應我們的請求?為了快速回顧SNMP基礎知識,我們知道有3種方法來驗證客戶端和遠程SNMP設備中的請求,SNMP版本1和2使用可讀的字符串數據類型值稱為“共同字符串”(通常為公有或私有) )在SNMP版本3中,您可以選擇使用用戶,密碼和身份驗證方法。此外,所有信息,如oid,trap和其他內容都存儲在管理信息庫(MIB)中。

測試

我們使用套接字從頭開始編寫一個簡單的python腳本,以便構建“snmpget”請求,在我們使用sysDescr OID的請求中,如果我們正在測試的字符串值(admin,root etc等)與SNMP中存儲的相同代理身份驗證,我們將成功檢索sysDescr OID信息,就像“爆破”。經過幾天的掃描,我們注意到有些奇怪的東西,有些設備/指紋始終都在響應,無論我們使用哪個值,那麼這裡有什麼? 如前所述,SNMP版本1&2認證只能接受存儲在SNMP代理認證機制中的值,但是我們的結果中的行為與前面所說明的語句不同。 我們發現以下幾點:您可以使用任何值字符串或整數,以便在某些特定設備中成功驗證SNMP代理,但最糟糕的是:您可以使用任何字符串/整數進行完全讀/寫遠程權限值。

反饋

該CVE 2017-5135中遠程執行代碼SNMP已經要求,創建和保留此問題,漏洞類型: 訪問控制配置錯誤。我們選擇了CISCO DPC3928SL作為測試,但是CISCO的技術主管technicolor確認這是ISP配置出錯

SNMP被爆存在一個嚴重的認證繞過漏洞可獲得遠程讀寫權限

SNMP被爆存在一個嚴重的認證繞過漏洞可獲得遠程讀寫權限

現在你有什麼問題的想法,但可能你會想有沒有更多的設備有同樣的問題在互聯網?答案是肯定的,我們可以證明來自不同供應商/品牌的其他設備也受到SNMP中相同的行為的影響。 我們稱之為STRINGBLEED :-D 我們決定再次掃描,但是這不會產生特定的可讀字符串,因此我們決定生成一個隨機哈希值,並將其發送到互聯網上的所有SNMP設備,結果令人震驚,此時我們檢測到150多個獨特指紋受到影響,

這表明technicolor答案是錯誤的,問題不是ISP錯配,問題似乎在代碼中。

結論

  • 我們發現一個完整的遠程操作執行,繞過SNMP中的控制訪問,使用任何字符串/整數值
  • 您可以在MIB中寫入字符串
  • 您可以輕鬆地檢索密碼和其他敏感信息,而無需猜測公共字符串。
  • 由於我們的掃描,因為幾個供應商/品牌受到影響,並且每天都在增加列表,故障很難解決
  • Technicolor決議缺乏技術分析,根據我們的結果是不可接受的

PoC

[Attack Vectors]: Community string IP of theoric cablemodems vulnerable:"192.168.0.1"

[usr@pwn:~$] snmpset -v 1 -c "#Strigbleed" 192.168.0.1 1.3.6.1.2.1.1.6.0 s "test" 
iso.3.6.1.2.1.1.6.0 = STRING: "test"
[usr@pwn:~$] snmpget -v 1 -c "#Strigbleed" 192.168.0.1 iso.3.6.1.2.1.1.1.0
iso.3.6.1.2.1.1.1.0 = STRING: "Cisco DPC3928SL DOCSIS 3.0 1-PORT Voice Gateway <>"


分享到:


相關文章: