為愛站做好貌似能防拿webshell的心理安慰工作

Webshell是駭客經常使用的一種惡意指令碼,其目的是獲得對伺服器的執行操作許可權,比如執行系統命令、竊取使用者資料、刪除web頁面、修改主頁等,其危害不言而喻。駭客通常利用常見的漏洞,如SQL注入、遠端檔案包含(RFI)、FTP,甚至使用跨站點指令碼攻擊(XSS)等方式作為社會工程攻擊的一部分,最終達到控制網站伺服器的目的。

“Web”的含義是需要伺服器開放web服務,“shell”的含義是取得對伺服器某種程度上的操作許可權,常常被稱為匿名使用者(入侵者)透過網站埠對網站伺服器的某種程度的操作許可權。由於Webshell大多是以動態指令碼的形式出現,也有人稱之為網站後門工具或者WEB應用指令碼後門。但由於此類後門往往與系統契合度較高,利用了系統部分功能模組以實現以假亂真、長期潛伏的目的。該類後門往往不具備檔案操作、命令執行等常見木馬功能,多數只具備查詢資料庫功能,可直接呼叫系統自身的儲存過程來連線資料庫,與系統契合度高。

駭客使用Webshell的第一步通常是將其上傳到可以訪問的伺服器中,例如利用使用者CMS系統的第三方外掛中的漏洞上傳一個簡單的php Webshell。當然,Webshell型別和作用也不完全相同,一些簡單的Webshell只起到連線外界的作用,允許駭客插入更加精準的惡意指令碼,執行他們所需要的指令;另外一些則可能更加複雜,帶有資料庫或檔案瀏覽器,讓駭客能夠從數千英里之外的地方檢視入侵系統的程式碼和資料。無論何種設計,Webshell都極其危險,是網路罪犯和高階持續威脅(APTs)的常用工具。

一、事件調查

攻擊者在其他系統上安裝了額外的web shell,並在outlookweb Access(OWA)伺服器上安裝了DLL後門。為了在伺服器上持久控制,後門將自己註冊為服務或Exchange傳輸代理,從而允許它訪問和攔截所有傳入和傳出的電子郵件,並收集敏感資訊。後門程式還執行其他攻擊命令以及下載惡意有效載荷。此外,攻擊者還發送了特殊電子郵件,DLL後門會將其解釋為命令。

為愛站做好貌似能防拿webshell的心理安慰工作

這起案件是常見的web攻擊之一,影響到各個部門的多個組織。常用web開發程式語言(如ASP、PHP、JSP)編寫惡意程式碼,攻擊者將其植入web伺服器上,可遠端訪問和程式碼執行,透過執行命令從Web伺服器竊取資料。

在攻擊中觀察到包括 ZINC, KRYPTON和 GALLIUM多個shell。為了植入webshell,攻擊者利用暴露在網際網路上的web伺服器安全漏洞進行攻擊,通常是web應用程式中的漏洞,例如CVE-2019-0604或CVE-2019-16759。

在對這些型別的攻擊的調查中,發現檔案中的web shell試圖使用web伺服器中合法檔名稱隱藏或混合,例如:index。aspx、fonts。aspx、css。aspx、global。aspx、default。php、function。php、Fileuploader。php、help。js、write。jsp、31。jsp。

China Chopper是最常用的web shell之一,常見示例如下:

https://image。3001。net/images/20200206/1580966480_5e3ba250c33a0。png

伺服器中發現的jsp惡意程式碼如下:

為愛站做好貌似能防拿webshell的心理安慰工作

php語言編寫的China Chopper變體:

為愛站做好貌似能防拿webshell的心理安慰工作

KRYPTON在一個ASP。NET頁面中使用了用C#編寫的web shell:

為愛站做好貌似能防拿webshell的心理安慰工作

一旦web shell成功插入web伺服器,攻擊者就可以在web伺服器上執行各種任務。Webshell可以竊取資料,漏洞攻擊,並執行其他惡意命令進一步進行破壞。

Web shell已經影響到了很多行業,公共部門組織是最常見的目標部門之一。除了利用web應用程式或web伺服器中的漏洞外,攻擊者還利用伺服器中的其他弱點。例如缺少最新的安全更新、防病毒工具、網路保護、安全配置等。攻擊通常發生在週末或休息時間,這時攻擊可能不會立即被發現和響應。這些漏洞攻擊很普遍,每個月微軟(ATP)平均會在46000臺不同的機器上檢測到77000個webshell相關檔案。

為愛站做好貌似能防拿webshell的心理安慰工作

二、檢測與預防

1。靜態檢測

靜態特徵檢測是指對指令碼檔案中所使用的關鍵詞、高危函式、檔案修改的時間、檔案許可權、檔案的所有者以及和其它檔案的關聯性等多個維度的特徵進行檢測,即先建立一個惡意字串特徵庫,例如:“組專用大馬|提權|木馬|PHP\s?反彈提權cmd執行”,“WScript。Shell、Shell。Application、Eval()、Excute()、Set Server、Run()、Exec()、ShellExcute()”,同時對WEB檔案修改時間,檔案許可權以及檔案所有者等進行確認。通常情況下WEB檔案不會包含上述特徵或者特徵異常,透過與特徵庫的比對檢索出高危指令碼檔案。

該檢測方法的優點:可快速檢測,快速定位;

缺點:容易誤報,無法對加密或者經過特殊處理的Webshell檔案進行檢測。尤其是針對竊密型Webshell無法做到準確的檢測,因為竊密型Webshell通常具有和正常的WEB指令碼檔案具有相似的特徵。

2。動態檢測

動態特徵檢測透過Webshell執行時使用的系統命令或者網路流量及狀態的異常來判斷動作的威脅程度,Webshell通常會被加密從而避免靜態特徵的檢測,當Webshell執行時就必須向系統傳送系統命令來達到控制系統或者操作資料庫的目的,透過檢測系統呼叫來監測甚至攔截系統命令被執行,從行為模式上深度檢測指令碼檔案的安全性。

優點:可用於網站叢集,對新型變種指令碼有一定的檢測能力。

缺點:針對特定用途的後門較難檢測,實施難度較大。

3。日誌分析

使用Webshell一般不會在系統日誌中留下記錄,但是會在網站的web日誌中留下Webshell頁面的訪問資料和資料提交記錄。日誌分析檢測技術透過大量的日誌檔案建立請求模型從而檢測出異常檔案,稱之為:HTTP異常請求模型檢測。例如:一個平時是GET的請求突然有了POST請求並且返回程式碼為200、某個頁面的訪問者IP、訪問時間具有規律性等。

優點:採用了一定資料分析的方式,網站的訪問量達到一定量級時這種檢測方法的結果具有較大參考價值。

缺點:存在一定誤報,對於大量的訪問日誌,檢測工具的處理能力和效率會比較低。

4。基於資料庫操作審計的檢測方式

針對竊密型Webshell必須具有操作資料庫的能力,可以引申出一種新的檢測方法,透過分析正常WEB指令碼檔案和竊密型Webshell對資料庫操作的差異進行分析是本檢測方法所重點研究的方向。

正常情況下WEB站點進行資料操作的過程應該是重複性且較為複雜的查詢過程,這種查詢通常精確度非常高,查詢過程不會出現類似於“select * from”這種查詢語句。正常的WEB指令碼在進行資料庫操作的過程中也不會出現跨越資料庫查詢的情況,一旦出現這種現象基本可以判斷為非正常的WEB指令碼操作過程。

就以上思路設計如下的檢測方案:

審計資料操作記錄。透過審計資料庫操作記錄可以單獨的為每一個WEB站點甚至WEB站點中的每一個腳步檔案建立查詢請求模型,通過幾天甚至數月的自我學習過程來學習並維護一份查詢請求資料庫。該資料庫的內容包含了每次查詢操作的詳細資訊、請求歸類和分析結果。並且建立動態查詢請求規則,Agent一旦檢測到違反該規則的查詢請求後會向Server端傳遞相關資訊,Server端再結合其它的掃描過程綜合判斷髮起請求的檔案是否為Webshell,並最終決定是否向管理員報警。

由於webshell是一個多方面的威脅,企業應該從多個攻擊面建立全面的防禦:身份驗證、終端、電子郵件和資料、應用程式和基礎架構等。

瞭解面向internet的伺服器是檢測和解決web威脅的關鍵。可以透過監視web應用程式目錄中的檔案寫入來檢測web shell的安裝。Outlook Web Access(OWA)這樣的應用程式在安裝後很少更改,對這些應用程式目錄的寫入應該被視為可疑操作。

透過分析資訊服務(IIS)w3wp。exe建立的程序來檢測webshell活動。與偵察活動相關聯的程序序列,如net。exe、ping。exe、systeminfo。exe和hostname。exe程序序列。w3wp。exe在通常不執行諸如“MSExchangeOWAAppPool”程序的應用程式池中執行的任何cmd。exe程序都應被視為異常並視為潛在的惡意行為。

為愛站做好貌似能防拿webshell的心理安慰工作

為愛站做好貌似能防拿webshell的心理安慰工作

為愛站做好貌似能防拿webshell的心理安慰工作

目前針對Webshell的特徵檢測一般是透過特徵比對及檔案屬性異常的靜態檢測和基於訪問情況、行為模式特徵的動態檢測方式進行查殺,由於竊密型Webshell通常會偽裝成正常的WEB指令碼檔案,靜態特徵檢測及動態行為檢測都無法有效的針對此類後門進行檢測。

三、總結

Webshell編碼簡單,使用方便,但由於許多Web伺服器的設定方式問題,即使是一個簡單的指令碼也足以造成嚴重的破壞。這就是為什麼有成千上萬的公開Webshell的原因所在。Webshell存在如此多的變種,導致入侵檢測和入侵防禦系統(IDS/IPS)很難檢測到它們,尤其是當使用簽名來檢測此類Webshell時。有些Webshell非常複雜,即使進行行為分析,也幾乎無法檢測到。

話雖如此,但Webshell只是漏洞利用後的實施工具,這就意味著首先要儘早檢測出Webshell,防止其上傳後進行漏洞利用。

現有技術是針對普通的指令碼後門、以控制伺服器為目的、通常包含較為明顯的靜態特徵或者行為模式,不能對竊密型後門進行有效檢測。

由於業務系統更新頻繁,WEB指令碼檔案相關的屬性經常發生變化所以偏重於檔案屬性檢測的方法往往會產生更多的誤報,基於動態行為檢測的方法往往技術難度較大,難以實現,而且對系統造成的效能影響較大,甚至可能對系統穩定性造成影響,基於日誌的檢測方法,一方面,由於業務功能較多且複雜,部分功能可能很少會被用到,其日誌訪問可能會命中某些檢測規則從而造成更多的誤報,另一方面,大量的日誌記錄處理起來會對伺服器效能產生負擔、而且由於日誌量巨大檢測過程消耗時間長,檢測速度較慢。而竊密型Webshell後門往往會模擬正常的資料庫操作、不具有較為明顯靜態特殊屬性、被訪問的次數比較少無法形成較為明顯的訪問特徵,透過日誌分析也很難發現。

與大多數安全問題一樣,預防至關重要。透過採取以下預防措施可以增強系統抵禦webshell攻擊的能力:

1、識別並修復web應用程式和web伺服器中的漏洞或錯誤配置,並及時進行更新。

2、經常稽核和檢查web伺服器的日誌,注意直接暴露在internet上的所有系統。

3、儘可能利用Windows Defender防火牆、入侵防禦裝置和網路防火牆來阻止端點之間的命令執行和與控制伺服器通訊,限制橫向移動和其他攻擊活動。

4、檢查外圍防火牆和代理以限制對服務的不必要訪問,包括透過非標準埠訪問服務。

5、啟用雲保護以獲得最新防禦措施。

6、教育終端使用者如何預防惡意軟體感染,建立使用者是要進行憑據限制。

只依靠一種檢測方法也是很難以進行全面檢測的。在真實的環境中進行部署檢測系統時需要同步的部署傳統檢測方法的系統,來達到互補和增強檢測結果可行度的目的。

結語

探討滲透測試及駭客技術,請關注並私信我。#小白入行網路安全# #安界網人才培養計劃#