前言
協議漏洞一直是一個比較有趣的話題,比如之前二哥在烏云提交的QQ游戲客戶端的偽協議漏洞,比如GeekPwn上的TCP協議棧漏洞,比如后來NSA泄露的思科SNMP的遠程代碼執行,都是各種不同類型的協議漏洞,其實很多著名的協議都存在漏洞而且網上都有對應的漏洞分析。其實無論是對于協議漏洞的挖掘,分析,利用,都需要對協議數據包的構成,處理協議的客戶端/服務端等等有所了解。
當然今天我做的這個分享是最近我看到的一個比較偏門的協議----NMDC協議的遠程代碼執行,之所以會選擇這個協議,是在我調試這個協議漏洞的過程中,發現這個協議從數據包構造,漏洞成因,服務端分析來看都相對簡化易懂,非常適合和我一樣對協議漏洞感興趣或者剛剛入門的小伙伴一起學習,因此分享出來和大家一起交流!有不當之處還望多多包含,多多指正!
先看看SNMP協議
在分析這個NMDC協議之前,想先和大家一起來看看前端時間泄露的思科SNMP協議漏洞,其實在安全客有一篇文章[揭開思科ASA防火墻網絡軍火的面紗]對于這個協議漏洞已經進行了詳細的分析,這里再次提到這個漏洞,是因為想和大家再次回顧一下這個漏洞的數據包構造,因為實際上對于一個協議服務端漏洞,是需要了解協議數據包的結構,才能針對具體的結構構造特殊的參數來挖掘,復現漏洞場景。
首先搭建一個簡單的思科防火墻環境,然后利用Exploit完成利用。

通過wireshark抓包,觀察這個SNMP協議包。

可以看到,在SNMP協議包里包含了getBulkRequest字段,這個字段是SNMPv2之后加入的新的PDU,該PDU是用來有效檢索塊中數據,加快交互效率用的。問題就出現在這個PDU中。
仔細分析SNMP協議,可以看到其中包括了版本號,應答方ID等信息,其中variable-bindings的value值中包含了溢出的payload,在思科防火墻的lina中處理這個數據包時,會引發一個緩沖區溢出。
其實看完這篇分析的文章,可以想到在進行協議分析的時候,對協議數據包的構造,每個指令包含的內容是對協議漏洞分析一個必不可少的環節,接下來通過相對復雜的SNMP協議,來看一下文章的主角NMDC協議。
就愛閱讀www.92to.com網友整理上傳,為您提供最全的知識大全,期待您的分享,轉載請注明出處。
歡迎轉載:http://www.kanwencang.com/bangong/20161206/64958.html
文章列表