Fireeye Mandiant 2014 安全報告 Part1

wyzsk發表於2020-08-19
作者: insight-labs · 2015/03/06 15:00

0x00 case study 1


美國最大的實體零售連鎖店是如何在3個月內被竊取幾百萬筆信用卡資料的

[page 8]

這次攻擊和2014年的多次針對零售業的攻擊類似,都是透過利用合法的賬號遠端登入受害方的系統,內網滲透之後在POS機系統上裝盜取信用卡的惡意軟體.直到被美國政府部門通知後他們才發現自己已經被攻擊了。

0x01 切入點


攻擊者首先使用合法賬號登入了零售商的虛擬應用伺服器。這個虛擬伺服器給了攻擊者一個許可權有限的虛擬化桌面環境(目測是Citrix,傳說中的透明計算嗎?)。我們沒有發現失敗登入的記錄,說明攻擊者在攻擊之前就已經獲得合法賬號(當前證據沒有顯示攻擊者是如何獲取到賬號的,不過很可能是社工,釣魚等手段。)

之後駭客利用了虛擬桌面環境上的一個配置錯誤,提權得到系統許可權的shell。之後透過FTP下載了一個密碼匯出工具,獲取了本地管理員的密碼。 這個本地管理員密碼和這家公司其他系統的密碼完全一樣。這一切只用了幾分鐘就完成了。

在初始的入侵過程中,攻擊者用了功能強大的開源滲透測試工具Metasploit Framework(MSF)在內網環境中游走。

利用MSF的psexec_command模組,攻擊者透過之前獲取到的管理員密碼在內網系統上執行了很多命令,這個模組透過新增Windows服務來執行命令,所以在系統日誌中留下了記錄。

在滲透過程中,攻擊者瞄準了企業網路的域控伺服器。這個域控伺服器的本地管理員密碼和之前攻擊者獲得的虛擬桌面伺服器的管理員密碼一樣……

攻擊者之後透過MSF的ntdsgrab模組獲取了域控的NTDS資料庫和登錄檔hive資料。

域控的NTDS儲存了AD裡的使用者名稱和密碼hash。在破解了域管理員的密碼hash後,攻擊者透過他們在域中基本暢通無阻了。

此時,攻擊者從MSF換到了更傳統的後期滲透工具,比如微軟的psexec,RDP等常用的管理工具。攻擊者之後使用域管理員賬號透過RDP登入到了其他系統。

psexec_command模組是如何工作的:

MSF的psexec_command模組把要執行的命令寫入到一個批處理檔案,執行後的結果會寫入到一個文字檔案。這兩個檔名都是隨機的16位字串。之後該模組透過新增一個新的隨機命名的windows服務來執行這個批處理程式。下面是這個服務被新增執行之後在windows系統日誌中出現的內容:

A service was installed in the system.
Service Name: MRSWxwQmQxFGumEFsW
Service File Name: %COMSPEC% /C echo dir ^>
%SYSTEMDRIVE%\WINDOWS\Temp\TthwsVKvUhydrsNB.txt > \
WINDOWS\Temp\RbhRmgALAHcdyWXG.bat & %COMSPEC% /C
start %COMSPEC% /C \WINDOWS\Temp\RbhRmgALAHcdyWXG.bat
Service Type: user mode service
Service Start Type: demand start

0x02 後門


為了持久的控制已經拿下的系統,攻擊者在多個機器中植入了後門,後門是針對win XP系統的驅動型木馬。

植入的木馬使用了很高階的免殺技術,和很多高階的常用惡意軟體類似。植入的惡意驅動首先在記憶體中釋放程式碼,然後生成一個新的系統執行緒。 原始的驅動載入後之後會提示系統載入錯誤,因為釋放出來的程式碼是用另一個程式執行的,雖然windows並不認為這個驅動已經被載入了,但是惡意程式碼還是成功執行了。 這個技巧經常用來防止對惡意軟體的逆向並且保護了後門的一些功能。

這個後門透過釋放出的shellcode來在user space中實現它的功能(從核心載入後注入使用者級程式). 這個shellcode透過向一個寫在程式碼裡的IP地址傳送HTTP POST來獲取一個XOR編碼後嵌在HTML裡的shellcode。

這個技巧讓這個後門變的很萬能,因為想增加新功能的話只要在服務端加個新的shellcode就行了。雖然這種透過shellcode實現的下載馬已經出現很久了,但是透過和驅動級後門的結合說明這個後門很先進。

enter image description here

Figure 2 後門和C2伺服器的通訊方式

這個零售店所有的結賬系統都是連線到域伺服器的,也就是說任何人如果控制了域控就可以控制所有的結賬機器。

在拿下企業域環境之後,駭客開始滲透零售系統的內網。

零售系統的內網環境是這樣的:

零售域和企業域是雙向信任的。 每個零售店的結賬平臺執行的是WinXP 零售平臺的XP系統加入了零售域

這樣的內網環境在零售行業中很常見,這給了攻擊者兩個優勢。

首先,因為雙向信任的關係,只要拿了一個域的管理員許可權就擁有了另一個域的許可權。

其次,零售域是企業域的子域,這要求企業域和子域的域控必須開啟特地的埠。這些開放的埠繞過了零售域的防火牆。攻擊者使用這些開放的埠進入了零售域的域控,然後透過零售域的域控作為跳板進入零售域的其他機器。

攻擊者把一個windows指令碼用域控推送到所有結賬平臺,之後指令碼下載了專門用來收集POS機刷卡記錄的惡意軟體。

之後攻擊者透過Windows計劃任務執行了惡意軟體。這個收集刷卡資訊的軟體會收集信用卡的磁軌資料,包括信用卡號,過期時間等資訊。這些資訊在刷卡的時候會存在POS應用程式的記憶體裡,攻擊者會把這些資料賣給做假卡的人。

這個攻擊POS機的惡意軟體使用了OSQL,一個預裝在所有結賬平臺上的軟體,用來把收集到的信用卡資訊寫入一個MSSQL的臨時資料庫 tempdb,tempdb中的資料在MSSQL重啟的時候會清空。每天攻擊者都會把tempdb中的資料匯出成文字檔案,然後複製到域控伺服器上。

之後攻擊者把收集到的資料打包然後傳送到零售內網的一臺有外網連線的工作站,之後傳到自己控制的FTP伺服器上

enter image description here

Figure 3

1. 攻擊者透過合法賬號遠端登入受害者的虛擬化應用伺服器。 
2.攻擊者從虛擬環境中逃出,然後逐漸進入企業內網環境。從那裡開始收集企業內網環境的賬號。 
3.攻擊者透過零售域的域控伺服器作為跳板進入了POS機的主機。之後在上面透過指令碼下載執行了收集信用卡資料的惡意軟體。 
4. 攻擊者把收集到的信用卡資料傳輸到域控,然後再到有網際網路連線的工作站,之後透過FTP傳到了自己控制的FTP伺服器

0x03 意見與建議


面對這樣的攻擊,應該怎麼防禦呢? 你沒法阻止每次進攻,也沒法保證自己無法被黑,但是下面的一些基本規則可以阻止攻擊者在你的內網暢通無阻的行動。 透過使用正確的工具和高度警惕的安全團隊,你可以減緩攻擊者的速度,給你足夠的時間在最壞的情況發生前,去發現,分析和應對攻擊。

1.遠端登入安全


分析和檢查員工,臨時工還有供貨商等如何遠端連線到你的網路環境。確保遠端連線一切可控,比如遠端連線方式,可以遠端連線的使用者,密碼要求等等。全部可以遠端登入的賬號都應該使用雙因素認證。 確保積極監控遠端登入日誌,儘早發現任何可疑活動。

2. 確保支付卡PCI環境的安全


按照Payment Card Industry(PCI)和相關的安全認證PCIDSS的標準來規劃你的內網環境。一切進入到PCI環境的登入和連線都要透過一個安全的堡壘機進行。登入堡壘機需要使用雙因素認證。如果可能的話,把企業域環境和零售域環境分開,儘量減少和零售域以外的連線。另外,最好在零售域使用白名單,只有列表內的機器和地址才能被零售域內的系統訪問。

3. 在核心繫統上使用應用程式白名單


在所有核心繫統上都應該透過應用程式白名單的方式,減少惡意軟體執行的機會。核心系統包括任何能接觸到信用卡資料的系統,堡壘機伺服器,域控伺服器等等。

4.管理好高許可權賬號


攻擊者會瞄準高許可權賬號比如本地管理員,域管理員還有服務賬號等等。減少高許可權賬號的數量,並且確保每個本地管理員賬號的密碼不同,最好是隨機的。 使用密碼管理工具來管理賬號,最好每次使用這些賬號後自動重新生成新密碼。這些技術可以更好的控制高許可權賬號的使用。

本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!

相關文章