Comodo殺毒軟體爆多個漏洞
Comodo是一家位於美國的軟體公司,總部設在新澤西州澤西城,成立於1998年,是世界著名的IT安全服務提供商和SSL證書的供應商之一。
研究人員在Comodo Antivirus / Comodo Antivirus Advanced等產品中發現多個漏洞,CVE編號為CVE-2019-3969、CVE-2019-3970、CVE-2019-3971、CVE-2019-3972、CVE-2019-3973。除CVE-2019-3973隻影響11.0.0.6582及低版本外,其他漏洞都影響至12.0.0.6810版本。
CVE-2019-3969: CmdAgent.exe本地許可權提升漏洞
CmdAgent.exe驗證來自Cmdagent.exe的請求介面的COM客戶端使用的是簽名的二進位文件。攻擊者可以通過修改PEB(Process Environment Block)中客戶端的進程名或用惡意代碼來process hollowing一個Comodo/Microsoft簽名進程來繞過簽名檢查機制。這是因為CmdAgent的簽名檢查機制使用的來自COM客戶端PID的EnumProcessModules / GetModuleFilename。只要通過可信的二進位文件檢查,攻擊者就可以獲取IServiceProvider的實例。有了IServiceProvider,攻擊者就可以查詢到SvcRegKey 的介面通過Out-Of-Proc COM伺服器來進行註冊表表操作,以完成本地許可權itself。
關於CVE-2019-3969漏洞的更多細節參見:https://medium.com/tenable-techblog/comodo-from-sandbox-to-system-cve-2019-3969-b6a34cc85e67
CVE-2019-3970: 任意文件寫漏洞(修改AV簽名)
Comodo將病毒定義資料庫(virus definition database)保存在硬碟的受保護文件夾中,但Cavwp.exe可以以沒有ACL的Global Section Objects來載入簽名,允許低許可權的進程在內存中進行修改。修改這一section object會修改Cavwp.exe翻譯的AV定義,攻擊者就可以創建假陽性結果或通過刪除或修改資料庫數據來繞過AV簽名。
CVE-2019-3971: DoS (CmdVirth.exe)
DoS攻擊發生在CmdVirth.exe的LPC埠cmdvrtLPCServerPort處。低許可權的進程可以連接到該埠並發送LPC_DATAGRAM,由於用於memcpy source address(內存複製源地址)硬編碼為NULL,因此會觸發Access Violation。最終導致CmdVirth.exe和其子svchost實例終止。
CVE-2019-3972:越界讀漏洞(CmdAgent.exe)
CmdAgent.exe會從名為"Global\_CisSharedMemBuff"的Section Object讀取內容,這是everyone都可以寫的Windows組。內存的內容為Comodo SharedMemoryDictionary結構。修改該結構數據會引發越界讀,最終導致CmdAgent.exe奔潰。
CVE-2019-3973: 越界寫漏洞(Cmdguard.sys)
Cmdguard.sys會暴露一個名為\cmdServicePort的過濾埠。一般來說只有CmdVirth.exe可以連接,而且MAX_CONNECTION(最大連接數)為1。但低許可權的進程可以使CmdVirth.exe奔潰來減少埠的連接數,然後用惡意代碼來process hollow一個CmdVirth.exe的副本來獲取port handle。如果這些都發生了,然後用filtersendmessage API來發送一個精心偽造的消息給cmdServicePort,如果lpOutBuffer參數接近緩存邊界,那麼就會觸發越界寫漏洞。利用一個小的dwOutBufferSize(在lpOutBuffer邊界範圍內)就可以繞過ProbeForWrite檢查,然後執行memset操作,將提供的地址設置為超出lpOutBuffer邊界的0x734位元組就會導致kernel crash。
目前Comodo還沒有發布任何關於這些漏洞的補丁。
PoC
PoC代碼見:https://github.com/tenable/poc/tree/master/Comodo


※將惡意代碼隱藏在圖像中:揭秘惡意軟體使用的隱寫術
※分享DEF CON China 1.0胸卡開啟之路!
TAG:嘶吼RoarTalk |