三菱smartRTU操作系統命令注入漏洞安全通告

發布時間 2019-09-20

漏洞編號和級別


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


影響版本


產品: 三菱電機smartRTU 和INEA ME-RTU


固件版本: 三菱電機2.02及之前版本/INEA 3.0及之前版本


漏洞概述


三菱電機的smartRTU和INEA ME-RTU中存在未經身份驗證的遠程操作系統命令注入漏洞。


該漏洞允許攻擊者在相關RTU上遠程執行任意操作系統命令,因為RTU基于web的遠程配置應用對用戶輸入數據不做任何過濾。在“mobile.php”頁面提供的“Mobile Connection Test”功能中,允許用戶ping任意網址或者IP地址;黑客可以在輸入IP地址或者網址的尾部添加shell命令分隔符(;),之后接著輸入所需要執行的操作系統指令。


當“Mobile Connection Test”功能被執行的時候,RTU會調用“action.php”,該腳本的內容如下:




由于缺乏對用戶輸入數據的過濾,黑客可以在$command變量后面加掛需要執行的操作系統命令。例如,host變量可以是字符串:“www.inea.si;ping 127.0.0.1”,那么系統首先會執行合法的ping命令來測試www.inea.si的連通性,然后再執行非法ping命令來測試本地主機的連通性。


通過配置文件可以發現,用戶“www-data”可以通過sudoers執行若干具有root權限的指令,該配置文件的存儲的文件路徑為/etc/sudoers.d/viswww。下表所示為用戶“www-data”的所有權限。




雖然允許以root權限執行的命令非常有限,但是仍然可以利用/usr/sbin/service命令來繞過授權限制。通過利用“service”命令,可以在RTU上啟動netcat服務并創建一個具有root權限的shell。具體操作如下:




下面代碼所示為成功在RTU上成功以root權限運行shell:




由于session檢查的缺失,使得黑客可以直接把payload發送給“action.php”從而實現上述攻擊。下圖所示為在攻擊主機上遠程執行curl命令。




漏洞驗證


POC:https://cxsecurity.com/issue/WLB-2019080056。


修復建議


目前官方沒發布相關補丁,請關注官網:https://www.mitsubishielectric.com/。


參考鏈接


https://www.mogozobo.com/?p=3593