MikroTik 路由器多個漏洞安全通告

發布時間 2019-10-31

漏洞編號和級別


CVE編號:CVE-2019-3976,危險級別:高危,CVSS分值:官方未評定

CVE編號:CVE-2019-3977,危險級別:高危,CVSS分值:官方未評定

CVE編號:CVE-2019-3978,危險級別:高危,CVSS分值:官方未評定

CVE編號:CVE-2019-3979,危險級別:高危,CVSS分值:官方未評定


影響版本


RouterOS Stable 6.45.6 and below

RouterOS Long-term 6.44.5 and below


漏洞概述


MikroTik RouterOS是拉脫維亞MikroTik公司的一套基于Linux開發的路由器操作系統。該系統可部署在PC中,使其提供路由器功能。


MikroTik 路由器中被曝多個漏洞,可導致攻擊者獲得后門。該利用鏈始于 DNS 投毒,然后降級所安裝的 MikroTik RouterOS 軟件的版本,最終啟用后門。


漏洞簡述如下:


CVE-2019-3976 路徑遍歷漏洞,該漏洞源于網絡系統或產品未能正確地過濾資源或文件路徑中的特殊元素。攻擊者可利用該漏洞訪問受限目錄之外的位置。


CVE-2019-3977 該漏洞源于程序沒有充分驗證更新包下載的來源。攻擊者可利用該漏洞獲取系統全部的用戶名稱和密碼。


CVE-2019-3978 攻擊者可借助8291端口利用該漏洞進行DNS查詢,可能造成緩存中毒。


CVE-2019-3979 遠程攻擊者可借助惡意的響應利用該漏洞污染路由器的DNS緩存。


研究人員建議禁用Winbox,而改用SSH,但已經發現超過50萬個Winbox實例面向互聯網。


漏洞驗證


通過利用以上漏洞,未經驗證的遠程攻擊者能夠訪問路由器上的端口8291,執行 RouterOS 降級,重新設置系統密碼并可能獲得 root shell。


漏洞利用過程如下:


1. DNS緩存中毒


DNS服務器在默認禁用的情況下仍有其自身的DNS緩存,DNS查找由“解析器”二進制文件處理,該二進制文件是掛接在RouterOS的Winbox協議中;


禁用的DNS服務器


DNS緩存


發送到Winbox端口的消息可以發送到不同的二進制文件及解析器;


然后調用如下圖片中的三條命令(3,4,6)就能允許未經身份驗證的遠程用戶通過路由器向自己選擇的DNS服務器發送DNS請求;


命令3、4、6


使用自定義的惡意DNS服務器,攻擊者可以將一系列惡意IP地址(包括下載地址)寫入到路由器的緩存中,當路由器升級時,將轉到攻擊者的惡意站點,其提供RouterOS的早期版本。


2. 管理員身份登錄


從6.43版開始,MikroTik密碼處理機制做了更改,在MikroTik的相關變更日志中:“降級到6.43之前的任何版本,將清除所有用戶密碼并允許無密碼身份驗證”。


研究人員說:“當用戶安裝‘新更新’時,繞過禁止通過更新降級的常規邏輯,并降級到RouterOS 6.41.4,由此管理員密碼重置到了默認的空密碼,攻擊者可以使用管理員身份登錄”。


用戶檢查更新顯示changelog


3. 后門啟用文件/目錄


“6.41.4版本系統存在后門,攻擊者可以利用該后門獲取完整的busybox shell”,“6.41.4的后門啟用文件或目錄就是/pckg/option,只要該文件或目錄存在,就可以啟用后門”,研究人員表示。


4. 創建任意目錄


研究人員在軟件包中發現另外一個漏洞,該漏洞使攻擊者可以在系統上創建任意目錄。MikroTik在更新期間處理.NPK文件的方式:一旦遇到簽名部分,將停止軟件包中SHA-1的計算,這種處理方式導致只解析部分信息字段,可用于在磁盤上的任何位置創建目錄。


研究人員編寫的一個名為option_npk的工具


修復建議


目前廠商已發布升級補丁以修復漏洞,詳情請關注廠商主頁:https://mikrotik.com。


參考鏈接


https://www.securityweek.com/mikrotik-router-vulnerabilities-can-lead-backdoor-creation