基於Click2Gov的攻擊行動分析
FireEye今年一直在跟蹤一項針對涉及Click2Gov本地部署的Web支付入口網站的攻擊活動。 ofollow,noindex">Click2Gov 是Superion開發的基於Web、互動的自助式賬單支付軟體解決方案。它包括各種模組,允許使用者支付與各種當地政府服務相關的賬單,如公用事業,建築許可和營業執照。2017年10月,Superion釋出宣告,確認可疑行動影響了少數客戶。在2018年6月中旬,多個媒體報道涉及到至少七個可能受此行動影響的Click2Gov客戶。自2018年6月以來,通過公開報道中確認了其他受害者。對這些機構的審查證實了與Click2Gov被感染相關。
在2018年6月15日,Superion釋出了一份宣告,描述了他們向受影響客戶推送的主動通知,與第三方取證公司(非Mandiant)合作,以及為Click2Gov軟體和相關第三方元件部署補丁。 Superion隨後得出結論,沒有證據表明使用Click2Gov在託管或安全的內部網路上使用推薦的補丁和配置進行付款是不安全的。
Mandiant取證分析了受攻擊系統並恢復了與此行動相關的惡意軟體,從而深入瞭解了這一新攻擊者的能力。截至本文釋出之前,根據VirusTotal的確反饋,所討論的惡意軟體家族的防病毒解決方案檢測率非常低。
一、攻擊簡述
該行動的第一階段通常始於攻擊者上傳SJavaWebManage webshell以便在與受感染的Click2Gov網路伺服器的互動。通過與webshell的互動,攻擊者在Click2Gov配置檔案中啟用了除錯模式,導致應用程式將支付卡資訊寫入純文字日誌檔案。然後,攻擊者將一個FireEye稱為FIREALARM的工具上傳到Web伺服器,解析這些日誌檔案,獲取支付卡資訊,並刪除所有不包含錯誤訊息的日誌條目。此外,攻擊者使用另一個工具SPOTLIGHT攔截來自HTTP的支付卡資訊。本博文的其餘部分將詳細介紹攻擊者的策略,技術和程式(TTP)。
二、SJavaWebManage Webshell
目前尚不清楚攻擊者是如何攻破Click2Gov網路伺服器的,但他們可能採用針對Oracle Web Logic的攻擊,如CVE-2017-3248,CVE-2017-3506或CVE-2017-10271,這些漏洞利用能提供上傳任意檔案或實現遠端訪問的功能。成功利用此漏洞後,攻擊者上傳了一個公開可用的JavaServer Pages(JSP)webshell SJavaWebManage的變體,用來維護Web伺服器上的永續性。SJavaWebManage需要身份驗證才能訪問四個特定頁面,如圖1所示,並將在Tomcat服務的上下文中執行命令,預設情況下為本地系統帳戶。
圖1: SJavaWebManage 介面
· EnvsInfo:顯示有關Java,Tomcat版本以及與環境有關的其他資訊。
· FileManager:提供瀏覽,上傳,下載(原始或壓縮),編輯,刪除和無痕訪問檔案的功能。
·CMDS:使用cmd.exe執行命令(如果在非Windows系統上,則執行 /bin/sh)並返回響應。
·DBManage:通過連線、顯示資料庫元資料和執行SQL命令來與資料庫進行互動。
公開可用的webshell和此變體之間的差異包括更改已被檢測到的變數名,中文字元更改成英語,刪除了對SjavaWebManage的引用,移除用於處理webshell更新的程式碼。此外,在行動調查期間識別的變體具備在伺服器上操縱檔案時間戳的能力,公共版本中不存在此功能。SJavaWebManage webshell為攻擊者提供了友好的介面,可以輕鬆地與受感染的主機進行互動和操作。
然後,在編輯Click2Gov XML配置檔案後,攻擊者將使用SJavaWebManage CMDS頁面以DEBUG模式重新啟動模組。啟用DEBUG日誌記錄選項後,Click2Gov模組會使用約定命名Click2GovCX.logYYYY-MM-DD將明文支付卡資料記錄到Click2Gov日誌檔案中。
三、FIREALARM
使用webshell中的互動式命令,攻擊者上傳並執行資料探勘程式FIREALARM(FireEye命名),它通過解析Click2Gov日誌檔案獲取支付卡資料,將資料格式化並列印到控制檯。
FIREALARM是一個用C/C ++編寫的命令列工具,它接受三個數字作為引數;年,月和日,例如在命令列中表示為:evil.exe 2018 09 01。在此示例中,FIREALARM將嘗試開啟並解析從2018-09-01開始直到當天的日誌。如果日誌檔案存在,FIREALARM會複製MAC(修改,訪問,建立),隨後將相應的檔案恢復為原始時間。然後逐行讀取每個日誌檔案並進行解析。FIREALARM在每一行中搜索以下內容並解析資料:
· medium.accountNumber
· medium.cvv2
·medium.expirationDate.year
· medium.expirationDate.month
·medium.firstName
·medium.lastName
· medium.middleInitial
· medium.contact.address1
·medium.contact.address2
·medium.contact.city
·medium.contact.state
·medium.contact.zip.code
此資料被格式化並列印到控制檯。惡意軟體還會搜尋包含文字ERROR的行。如果找到此字串,該程式會將內容儲存在名為%WINDIR%\temp\THN1080.tmp的臨時檔案中。搜尋完Click2GovCX日誌檔案的每一行後,複製臨時檔案THN1080.tmp替換相應的Click2GovCX日誌檔案,並將時間戳替換為原始的時間戳。結果是FIREALARM將支付卡資訊列印到控制檯並從每個Click2GovCX日誌檔案中刪除支付卡資料,只留下錯誤訊息。最後,刪除THN1080.tmp臨時檔案。該過程如圖2所示。
圖2: FIREALARM 工作流程
1. Attacker遍歷Tor或其他代理並對SjavaWebManage進行身份驗證。
2. Attacker通過webshell啟動cmd。
3. Attacker使用引數執行FIREALARM。
4. FIREALARM驗證並檢索日誌檔案,複製MAC時間,解析並將支付卡資料列印到控制檯,將錯誤訊息複製到THN1080.tmp,覆蓋原始日誌檔案並修改時間戳。
5. 刪除THN1080.tmp。
四、SPOTLIGHT
之後,在攻擊者訪問受感染系統期間,攻擊者使用webshell上傳網路嗅探器SPOTLIGHT(FireEye命名)。此工具為攻擊者提供了更好的永續性和持續收集支付卡資料的能力,確保管理員刪除Click2GovCX日誌檔案時也不會丟失已挖掘的資料。SPOTLIGHT也是用C / C ++編寫的,可以通過命令列引數安裝或作為服務執行。作為服務執行時,其任務包括確保兩個JSP檔案存在,以及監視和記錄特定HTTP POST請求內容的網路流量。
SPOTLIGHT接受兩個命令列引數:
· gplcsvc.exe-i 建立名為gplcsvc的新服務,顯示名稱為Group Policy Service
· gplcsvc.exe-u停止並刪除名為gplcsvc的服務
安裝後,SPOTLIGHT將每隔一小時監控受感染主機上的兩個路徑:
1. C:\bea\c2gdomain\applications\Click2GovCX\scripts\validator.jsp
2. C:\bea\c2gdomain\applications\ePortalLocalService\axis2-web\RightFrame.jsp
如果任一檔案不存在,惡意軟體使用Base64對嵌入的SJavaWebManage webshell進行解碼,並將同一檔案寫入任一路徑。這與攻擊者在初始攻擊期間安裝的Webhell相同。
此外,SPOTLIGHT啟動套接字監聽器,檢查埠80和7101上的IPv4 TCP流量。根據Superion安裝核對表,TCP埠7101用於從內部網路到Click2Gov Web伺服器的應用程式解析。只要連線內容不以GET /開頭,惡意軟體就開始儲存接收到的資料包。惡意軟體持續將資料包內容儲存到內部緩衝區,直到出現以下兩種情況之一:緩衝區超過102399或資料包內容以字串POST / OnePoint / services / OnePointService開頭。如果出現這兩種情況之一,則在內部緩衝區資料中搜索以下標籤:
·<op:AccountNum>
· <op:CSC>
· <op:ExpDate>
· <op:FirstName>
· <op:LastName>
·<op:MInitial>
· <op:Street1>
· <op:Street2>
· <op:City>
·<op:State>
·<op:PostalCode>
標籤之間的內容被提取並格式化,使用`|`作分隔符。然後對格式化的資料進行Base64編碼並將其附加到硬編碼檔案路徑的日誌檔案中:c:\windows\temp\opt.log。然後,攻擊者使用SJavaWebManage來傳輸包含支付卡資料的Base64編碼的日誌檔案。FireEye未發現對受感染主機的SSL配置的任何操縱或者將SSL流量重定向到未加密的埠。該過程如圖3所示。
圖 3: SPOTLIGHT 工作流程
1. SPOTLIGHT每小時驗證webshell檔案,如果缺少則寫入SJavaWebManage。
2. SPOTLIGHT檢查埠80或7101上的IPv4 TCP流量,從而儲存接收到的資料包。
3. 使用者訪問Click2Gov模組進行付款。
4. SPOTLIGHT解析包含支付卡資料的資料包,Base64編碼並寫入opt.log。
5. Attacker遍歷Tor或其他代理並對SJavaWebManage進行身份驗證並啟動檔案管理器。
6. 攻擊者傳輸opt.log檔案。
五、溯源
根據掌握的資訊,攻擊者不會與FireEye當前跟蹤的任何具有財務動機的威脅組織保持一致。攻擊者對Click2Gov主機要求,日誌處理詳細資訊,支付卡欄位和內部通訊協議的理解證明了他們對Click2Gov應用程式有著深入研究。鑑於地下論壇和市場的運作方式,工具開發可能已經與第三方簽訂合同,並且獲取可遠端訪問受感染系統的實體可能將其出售給另一個實體。關於這個攻擊者還有很多東西需要研究。
當然攻擊也可能由一個人進行,但FireEye確信參與此行動的基礎必須具備以下必要技能:
· 能夠找到Click2Gov並識別可利用的漏洞。
· 能夠製作或重用漏洞利用以滲透目標組織的網路環境。
·基本的JSP程式設計技巧。
·先進的Click2Gov支付流程和軟體知識,足以開發中等複雜的惡意軟體。
·熟練的C / C ++程式設計技巧。
·運營安全的意識。
· 能夠將被盜的支付卡資訊貨幣化。
六、總結
除了規範的補丁管理程式之外,FireEye還建議機構考慮實施檔案完整性監控解決方案,監控在電子商務Web伺服器上生成動態內容的靜態內容和程式碼,阻止意外修改。另一個最佳做法是確保任何Web服務帳戶執行特權最小化。
雖然在攻擊生命週期中觀察到的TTP與FireEye跟蹤的其他經濟動機攻擊組織一致,但是這個攻擊者在製作利用Click2Gov方面表現出了獨創性,取得了一定的成功。儘管可能以新的形式發生,但FireEye預計這個威脅行為者將繼續進行互動和經濟動機的攻擊。
IoC(MD5)
SJavaWebManage
·91eaca79943c972cb2ca7ee0e462922c
·80f8a487314a9573ab7f9cb232ab1642
· cc155b8cd261a6ed33f264e710ce300e (公開版本)
FIREALARM
· e2c2d8bad36ac3e446797c485ce8b394
SPOTLIGHT
· d70068de37d39a7a01699c99cdb7fa2b
·1300d1f87b73d953e20e25fdf8373c85
·3bca4c659138e769157f49942824b61f