概述
2017年5月24日samba釋出了4.6.4版本,中間修複了一個嚴重的遠端代碼執行漏洞,漏洞編号cve-2017-7494,漏洞影響了samba
3.5.0 和包括4.6.4/4.5.10/4.4.14中間的版本。360網絡安全中心 和 360資訊安全部的gear
team第一時間對該漏洞進行了分析,确認屬于嚴重漏洞,可以造成遠端代碼執行。
技術分析
如官方所描述,該漏洞隻需要通過一個可寫入的samba使用者權限就可以提權到samba所在伺服器的root權限(samba預設是root使用者執行的)。
從patch來看的話,is_known_pipename函數的pipename中存在路徑符号會有問題:
再延伸下smb_probe_module函數中就會形成公告裡說的加載攻擊者上傳的dll來任意執行代碼了:
具體攻擊過程:
構造一個有’/’ 符号的管道名或路徑名,如 “/home/toor/cyg07.so”
通過smb的協定主動讓伺服器smb傳回該fid
後續直接請求這個fid就進入上面所說的惡意流程
具體攻擊結果如下:
嘗試加載 “/home/toor/cyg07.so” 惡意so
其中so 代碼如下(加載時會調用 samba_init_module 導出函數)
最後我們可以在/tmp/360sec中看到實際的執行權限(帶root權限)
解決方案
360網絡安全響應中心和360資訊安全部建議使用受影響版本的使用者立即通過以下方式來進行安全更新操作,
使用源碼安裝的samba使用者,請盡快下載下傳最新的samba版本手動更新;
使用二進制分發包(rpm等方式)的使用者立即進行yum,apt-get update等安全更新操作;
緩解政策:使用者可以通過在smb.conf的[global]節點下增加 nt pipe support = no 選項,然後重新啟動samba服務, 以此達到緩解該漏洞的效果。
作者:佚名
來源:51cto