跳過主内容

Web shell 攻擊持續升溫

Detection and Response Team (DART)

Microsoft 365 Defender Research Team

一年前,我們針對全球使用Web Shell攻擊數量的成長進行報導。最新的Microsoft 365 Defender資料顯示,這樣的趨勢不僅持續增加,更快速發展:從2020年8月到2021年1月,我們每個月在伺服器上平均有140,000次威脅記錄,幾乎是去年同期的兩倍。

web shell
圖一:伺服器上遇到的Web shell

Web Shell流行的原因,可能是它們對攻擊者而言簡單且有效。Web Shell通常是透過典型開發程式語言(例如ASP,PHP,JSP)編寫成的一小段惡意程式碼,攻擊者將它植入到網頁伺服器上,以便遠程存取和執行伺服器功能的程式碼。Web Shell使攻擊者可以在伺服器上執行命令,以竊取資料,或將伺服器作為其他攻擊的跳板,例如認證竊盜、橫向移動、部署其他payload或操作,同時讓攻擊者常駐遭受入侵的組織中。

隨著Web Shell在攻擊中越來越普遍,我們將持續監控和調查它在產品中或成為目標的趨勢,並確保客戶的防護力。在本篇部落格文章中,我們將討論偵測Web Shell的挑戰,以及組織可以用來防禦威脅的Microsoft技術和調查工具。我們也將分享加強防禦Web Shell攻擊的指南。

Web shells作為攻擊的起始點

攻擊者通常利用網路應用程式或網路伺服器中的安全漏洞,將Web Shell安裝在伺服器中。這些攻擊者多半會使用像shodan.io這種公共掃描介面來掃描網路,以鎖定目標伺服器。他們可能會利用之前的弱點,但在一些伺服器中仍存在的漏洞,或者也可能利用新發現的漏洞。

例如,6月30日,F5 Networks發佈了CVE-2020-5902的補釘,這是Traffic Management User Interface(TMUI)中遠端程式碼的執行(RCE)漏洞。這個漏洞是 Directory Traversal bug,其CVSS評分為9.8(滿分10)。四天後(即7月4日),攻擊程式碼被加到Metasploit模組中。

圖二:CVE-2020-5902攻擊程式碼

第二天,Microsoft研究人員發現攻擊者利用這個漏洞,將Web Shell上傳到易受攻擊的伺服器。這個Web Shell常用於運作加密貨幣礦工。持續觀察之後,安全研究人員發現該漏洞被廣泛用於部署Web Shell,甚至在不久後出現了多種變種版本。

這個事件顯示了加強伺服器與確保它處於最新狀態,對防範Web Shell攻擊的重要性。攻擊者通常可以利用網路存取Web伺服器,並用來獲得網路的存取權。

Web Shell作為持續性攻擊技術

一旦攻擊者將Web Shell安裝到伺服器上,它便成為攻擊者常駐受駭企業系統的最有效手段之一。我們經常看到Web Shell唯一的功能就是持續性攻擊,它可確保受感染的網路中存在後門。若果不加以偵測,WebShell程式將使攻擊者可以繼續從有權存取的網路中,收集資料並從中獲利。

若沒有找到並刪除攻擊者的持續性機制,系統就無法有效復原成功。儘管重建遭入侵的系統是是組織唯一可行的選擇。但是,查詢和移除所有後門程式是恢復的重要關鍵。

這讓我們回歸到Web Shell偵測的挑戰。正如前面所提到,我們可以概括Web Shell為執行攻擊者植入程式碼的一種手段。第一個挑戰是如何處理攻擊者執行程式碼的方式。Web應用程式支援多種語言和框架,因此提供了攻擊者高度彈性和相容性。

此外,大量的網路流量和持續網路攻擊,讓Web伺服器的整體流量混入攻擊流量,造成偵測Web Shell更加困難,且需要行為進階偵測來識別和阻止隱藏的惡意活動。

偵測Web Shell的挑戰

攻擊者可以利用網路應用程式中流行的幾種語言來建立Web Shell。在每種語言中,攻擊者有多種執行指令與輸入的方法。攻擊者也可以將指令藏在使用者代理人字串或任何參數中。

攻擊者結合這些選項,來產生一個Web Shell,例如:

圖三:Web shell程式碼的案例

在上述案例,Web Shell中唯一可讀取的單字是「eval」,這讓檢視者很容易錯失或誤解。分析腳本時,利用上下文線索相當重要。例如,您應該更仔細檢查從可疑網站下載,並運行程式碼的「更新Google」任務。

在Web Shell中分析上下文是極大的挑戰,因為在使用Shell之前,上下文內容並不清楚。在以下程式碼中,最有用的線索是「system」和「cat / etc / passwd」,但它們都在攻擊者與Web Shell互動後才出現:

圖4:另一個Web Shell程式碼的案例

另一個偵測Web Shell的挑戰是找到攻擊者的意圖,我們很難從腳本中了解其惡意行為與企圖。當攻擊者可以在網頁目錄中上傳輸入文件時,他們就可以上傳功能齊全的Web Shell,進而執行任意程式-這只需要靠簡單的Web Shell就能做到。

上傳文件的Web Shell因為無法自行執行攻擊者的指令,所以非常簡單且容易被忽略。相反的,他們只能將文件(例如功能齊全的Web Shell)上傳到Web伺服器上。它們的簡易性使系統難以偵測,並忽略是惡意的,通常是為了進行持久性攻擊或在初期時入侵為目的。

最後,攻擊者會以不可執行的檔案格式(例如媒體檔案)隱藏Web Shell。用來執行伺服器端程式碼的Web伺服器使Web Shell的偵測增加挑戰性,因為在Web伺服器上,會掃描媒體檔案,讓伺服器端執行指令。攻擊者可以將Web Shell腳本隱藏在照片中,並上傳到Web伺服器。在工作站上載入並分析此文件後,顯示照片是無害的。一旦瀏覽器向伺服器請求該檔案,惡意的Web Shell就會在伺服器端執行。

因為偵測Web Shell的困難,它們逐漸廣泛地成為攻擊工具。我們不斷監控這些威脅如何應用於網路攻擊中,並且將繼續提升保護措施。在下一節中,我們將討論行為偵測技術如何保護客戶免受Web Shell攻擊。

Microsoft如何防禦網路Web Shell攻擊

網路伺服器的可見性是偵測和解決Web Shell威脅的關鍵。為了應對偵測這些威脅的挑戰,Microsoft Defender for Endpoint結合使用防止Web Shell安裝的穩健防護,和用於辨識惡意活動的行為偵測。Microsoft Defender for Endpoint透過分析腳本檔案寫入和處理執行項目來找出惡意行為。由於Web Shell的性質,靜態分析是無效的,修改Web Shell和繞過靜態防護相對容易。為了有效提供保護,Microsoft Defender for Endpoint透過行為檢查達到多層保護。

行為封鎖與遏制功能利用專門以分析行為來偵測威脅的引擎,監控可存取Web目錄中是否有建立任何新的腳本檔案。儘管觸發單一事件的檔案,但仍不能視為可疑事件,需將此類事件與相應的流程樹連結,可以產生更可靠的信號,並找出惡意的意圖。

Microsoft Defender for Endpoint透過不同的橫向移動方法,偵測源自組織內遠端系統試圖安裝的Web Shell。例如,我們觀察到攻擊者透過Windows Remote Management(WinRM)置入Web Shell,或者使用現有的Windows指令,透過SMB傳輸Web Shell。在Web伺服器上,這些遠端操作是由系統流程執行,因此可以看到流程樹。另一個可疑事件是系統特權流程置入程式碼檔案。在攻擊者做出任何惡意行為前,提供給行為檢查引擎補救的方式。

管理員可以使用IIS伺服器內建的管理工具進行維護。這些平台會找出各種向攻擊者公開關鍵資訊的PowerShell cmdlet。擁有各面向Web客戶端服務的IIS實例(w3wp.exe),例如存取管理平台及在cmdlet下執行可疑活動的網頁版Outlook(舊稱Outlook Web App或OWA)或Exchange管理員中心(EAC;舊稱Exchange Control Panel或ECP),意味著實際攻擊。行為引擎會監視此類cmdlet的執行和流程樹,例如:

通過行為封鎖和遏制功能,Microsoft Defender for Endpoint可以識別並制止與Web Shell攻擊相關的行為。它會針對這些偵測結果發出警報,使安全營運團隊可以使用Microsoft Defender for Endpoint中豐富的調查工具來執行其他調查,並尋找相關或類似的威脅。

圖5:Microsoft Defender for Endpoint針對Web Shell攻擊的警報

Microsoft 365 Defender和Microsoft Defender for Endpoint客戶還可以利用進階搜尋,來主動獵捕Web Shell攻擊:

強化伺服器的Web Shell防護

組織可以透過下述方式來強化針對Web Shell的防護:

  • 識別並修正Web應用程式和Web伺服器中的漏洞或錯誤配置。使用威脅和漏洞管理來找到和修復這些弱點。在最新的安全更新推出時,請立即進行部署。
  • 適當的分段執行外圍網路,讓遭受入侵的Web伺服器不會導致企業網路的受損。
  • 在Web伺服器上啟用防毒保護。開啟雲端防護來防禦新型威脅。使用者只能在防毒程式可以掃描的目錄中上傳文件,並且設定不允許伺服器執行程式碼。
  • 經常性日誌和檢視來自Web伺服器的紀錄。並注意您暴露在網路的所有系統。
  • 利用Windows Defender Firewall、防禦入侵裝置和您的網路防火牆,防止端點之間的指令和控制伺服器通訊,進而限制橫向移動以及其他攻擊。
  • 檢查外圍防火牆和代理伺服器來限制不必要的存取權,包含透過不符合標準的port進行的服務存取。
  • 確保憑證狀態,透過本地與網域管理員層級的權限來限制可使用的帳戶。

Web Shell及其開始的攻擊造成多方面的威脅,更需要跨網域和平台的全面可見性來防範。 Microsoft 365 Defender連結來自端點、電子郵件和資料、身份及應用程式的威脅資料,以協調跨網域的防護。了解如何使用Microsoft Defender 365,阻止透過自動化、跨網域安全性和內建AI的攻擊。

若欲瞭解原文,請至微軟官方部落格參考。

延伸資料: