當前位置:
首頁 > 最新 > CVE-2018-7600漏洞分析

CVE-2018-7600漏洞分析

大家好,我是小編

小米正式提交IPO

那些曾經不看好它的黑粉們

Are you OK?

前言

3月底,Drupal核心安全團隊發布了安全諮詢SA-CORE-2018-002,該安全諮詢討論了一個非常嚴重的漏洞CVE-2018-7600,該漏洞存在於眾多Drupal版本中,本文將對該漏洞進行詳細分析。

這個漏洞影響著超過一百萬個Drupal用戶和網站,它可以啟用遠程代碼執行,並且可以在Drupal 7 Form API上進行不完整的輸入驗證。

攻擊者可以使用此漏洞強制運行Drupal的伺服器,並執行可能危害Drupal安裝的惡意代碼。根據具體配置的不同,這也很可能會危及到主機。

由於沒有任何措施可以緩解對該漏洞的訪問,所以這個漏洞顯得尤為嚴重,這代表著匿名用戶使用此漏洞遠程執行代碼而無需身份驗證。

脆弱性根源分析

「可渲染數組(Renderable Arrays)」是在Drupal 7中正式引入的。這些結構由關聯數組實現,並將鍵值對作為函數參數或表單數據傳遞,以便更好的呈現標記和UI元素。

標記元素屬性具有以「#」字元為前綴的鍵。以下是在普通PHP函數中使用的渲染數組的示例。

圖1.渲染數組鍵值對的Drupal核心示例

在對Drupal安全補丁的快速檢查中發現了一個名為RequestSanitizer的分類。值得注意的是stripDangerousValues方法,該方法在另一個稱為sanitize的方法中調用。

前面的函數從數組參數的索引零處去掉了一個控制字元「#」。以下是補丁函數的一個片段。

圖2. Drupal補丁從參數化輸入中剝離「#」

基於Drupal安全團隊的補丁內容以及Drupal Form API的分析,42位研究人員推斷某些Form API函數能夠執行任意代碼,並且需要對通過前導「#」字元傳遞參數的輸入進行清理,以嘗試和防止代碼執行攻擊。

為了利用此漏洞,攻擊代碼必須將惡意代碼傳遞給Form API可執行函數之一的頁面載入,或者傳遞給AJAX請求的呈現階段。

我們確定可以用於遠程代碼執行的四種可利用的Form API函數是:

[#post_render]

[#pre_render]

[#access_callback]

[#lazy_builder]

利用方法分析

Drupal專家與安全研究人員協作的報告指出,默認配置在新用戶註冊頁面中有一些欄位,在Drupal補丁之前未正確清理。/ user / register中的默認頁面可以被迫發送特定的AJAX請求,該請求可以針對各種表單欄位,包括受漏洞影響的表單欄位,從而執行攻擊者的代碼。

概念證明(POC)代碼在2018年4月12日發布。初始POC使用#post_render函數針對郵件數組執行PHP函數exec,後者執行底層操作系統函數Web伺服器用戶的上下文。

以下是在本地地址10.3.228.197處捕獲到易受攻擊的Drupal實例的流量。它使用的PHP命令是exec,有效載荷是一個簡單的wget命令,用於外部IP地址172.217.6.36。

在POST內容類型:application / x-www-form-urlencoded和multipart / form-data傳遞時,可以利用已知的POC進行開發。

圖4. x-www-form-urlencoded表單數據有效載荷

研究人員發現的第二個POC以時區格式欄位為目標。伺服器響應一個HTTP 500服務不可用的響應。

圖5.利用時區和#lazy_builder函數進行利用

圖6.通過multipart / form-data的時區#lazy_builder

由於8.x和7.x版本上的/ user / register頁面的默認配置,第一個公開可用的POC出現在脆弱的Drupal 8.x實例上才有效。

其他默認配置URI包括/ user / password頁面,可以成功地利用7.x版本。這個特定的漏洞利用目標是_triggering_element_name表單,並要求發送兩個請求。

圖7.通過兩個HTTP請求開發Drupal 7.x

在進行這樣的分析時,攻擊者試圖對惡意有效載荷調用wget,curl和其他第二階段機制,以啟動對Drupal站點的收購。就像任何遠程代碼執行漏洞一樣,已經發現了包含反向shell,後門,殭屍網路,甚至加密礦工的武器化有效載荷。

潛在的威脅

幾乎所有公開可用的POC樣本都通過將[#post_render] []的渲染數組鍵與PHP函數exec的值一起傳遞給Drupal的易受攻擊實例,緊接著是第二個鍵值對[#markup],其值為操作系統函數由exec調用。

但是,其他成功的漏洞利用了上面列出的四個表單API函數([#post_render],[#pre_render],[#access_callback]和[#lazy_builder])。

我們在Palo Alto Networks覆蓋利用這些API函數的流量,以及可能被利用的其他「危險」PHP函數。應該篩選的PHP函數包括:

Exec

` (backtick)

$ (dollar)

system

popen

pcntl_exec

eval

preg_replace

create_function

include

require

passthru

shell_exec

proc_open

assert

include_once

require_once

$_GET

$_POST

$_SERVER

$_FILES

$_REQUEST

$_SESSION

$_ENV

$_COOKIE

除exec外,惡意軟體樣本還包括系統、passthru和eval。可以肯定的是,更多攻擊者將會製作利用這些功能的請求。

結論和緩解

CVE-2018-7600處於瘋狂傳播狀態,未來很可能會繼續被利用。具體措施請參照Drupal小組的說明:

Palo Alto Networks客戶可以通過以下產品和服務免受此漏洞的侵害:

威脅防護簽名40627,用於識別包含漏洞利用代碼的HTTP請求

PAN-DB阻止攻擊者的C&C伺服器IP和域

WildFire和Antivirus標識並阻止開發負載

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 漏洞銀行 的精彩文章:

利用Apple漏洞逃離沙箱
礦機失竊,4G、思科屢爆漏洞,50萬PC被感染……

TAG:漏洞銀行 |