精品国产免费观看久久久_久久天天躁狠狠躁夜夜爽_无码人妻少妇久久中文字幕_狠狠做深爱婷婷久久综合一区

設計觀點

精準傳達 ? 價值共享

洞悉互聯網前沿資訊,探尋網站營銷規律

查看其它板塊

webshell檢測方法歸納

作者:Smileby陌少羽 | 2017-06-09 08:13 |點擊:

一  什么是webshell


“web”的含義是顯然需要服務器開放web服務,“shell”的含義是取得對服務器某種程度上操作權限。webshell常常被稱為匿名用戶(入侵者)通過網站端口對網站服務器的某種程度上操作的權限。
簡單理解:webshell就是一個web的頁面,但是它的功能非常強大可以獲得一些管理員不希望你獲得的權限,比如執行系統命令、刪除web頁面、修改主頁等。
webshell中由于需要完成一些特殊的功能就不可避免的用到一些特殊的函數,我們也就可以對著特征值做檢查來定位webshell,同樣的webshell本身也會進行加密來躲避這種檢測。

二  webshell長什么樣子


下圖就是一張php webshell的截圖,它的功能還是比較全的,如果你是網站管理員的話肯定是不希望普通用戶獲得下面的權限的。

webshell檢測方法歸納
 

x01 webshell檢測模型

Webshell的運行流程:hacker -> HTTP Protocol -> Web Server -> CGI。簡單來看就是這樣一個順序:黑客通過瀏覽器以HTTP協議訪問Web Server上的一個CGI文件。棘手的是,webshell就是一個合法的TCP連接,在TCP/IP的應用層之下沒有任何特征(當然不是絕對的),只有在應用層進行檢測。黑客入侵服務器,使用webshell,不管是傳文件還是改文件,必然有一個文件會包含webshell代碼,很容易想到從文件代碼入手,這是靜態特征檢測;webshell運行后,B/S數據通過HTTP交互,HTTP請求/響應中可以找到蛛絲馬跡,這是動態特征檢測。

 

0x02 靜態檢測

靜態檢測通過匹配特征碼,特征值,危險函數函數來查找webshell的方法,只能查找已知的webshell,并且誤報率漏報率會比較高,但是如果規則完善,可以減低誤報率,但是漏報率必定會有所提高。優點是快速方便,對已知的webshell查找準確率高,部署方便,一個腳本就能搞定。缺點漏報率、誤報率高,無法查找0day型webshell,而且容易被繞過。對于單站點的網站,用靜態檢測還是有很大好處,配合人工,能快速定位webshell,但是如果是一個成千上萬站點的大型企業呢,這個時候再人肉那工作量可就大了。所以用這樣一種思路:強弱特征。即把特征碼分為強弱兩種特征,強特征命中則必是webshell;弱特征由人工去判斷。加入一種強特征,即把流行webshell用到的特征作為強特征重點監控,一旦出現這樣的特征即可確認為webshell立即進行響應。要解決誤報和漏報,就不能拘泥于代碼級別了。可以換個角度考慮問題:文件系統。我們可以結合文件的屬性來判斷,比如apache是noboy啟動的,webshell的屬主必然也是nobody,如果我的Web目錄無緣無故多了個nobody屬主的文件,這里就有問題了。最理想的辦法是需要制度和流程來建設一個web目錄唯一發布入口,控制住這個入口,非法進來的Web文件自然可以發現。

筆者基于靜態檢測的webshell工具

 

0x03 動態檢測



 

webshell傳到服務器了,黑客總要去執行它吧,webshell執行時刻表現出來的特征,我們稱為動態特征。先前我們說到過webshell通信是HTTP協議。只要我們把webshell特有的HTTP請求/響應做成特征庫,加到IDS里面去檢測所有的HTTP請求就好了。webshell起來如果執行系統命令的話,會有進程。Linux下就是nobody用戶起了bash,Win下就是IIS User啟動cmd,這些都是動態特征。再者如果黑客反向連接的話,那很更容易檢測了,Agent和IDS都可以抓現行。Webshell總有一個HTTP請求,如果我在網絡層監控HTTP,并且檢測到有人訪問了一個從沒反問過得文件,而且返回了200,則很容易定位到webshell,這便是http異常模型檢測,就和檢測文件變化一樣,如果非管理員新增文件,則說明被人入侵了。缺點也很明顯,黑客只要利用原文件就很輕易繞過了,并且部署代價高,網站時常更新的話規則也要不斷添加。還有一個思路利用函數劫持。回憶一下,我們調試網馬的時候,怎么還原它各種稀奇古怪的加密呢,簡單,把eval改成alert就好了。類似的,所以我們可以在CGI全局重載一些函數(比如ASP.NET的global.asax文件),當有webshell調用的時候就可以發現異常。已js為例(php,asp等語言思路一樣的,都是保存原函數,然后從新定義原函數,最后在調用保存的原函數),比如下面就是把eval重載,還可以彈出個危險提示等,嚇退一些沒經驗黑客。
 

三   webshell檢測有哪些方法

 


如果你懷疑你的網站被人上傳了webshell或者你需要檢查一下需要上線的代碼中是否被嵌入了shell代碼,就需要對這些文件進行掃描,那么有哪些方法可以掃描出這些webshell呢?
下面列舉一下,也就是我們的webshell掃描工具中實現的功能。
1 求文件的重合指數index of coincidence(縮寫為IC)
首先介紹一下什么是IC?

webshell檢測方法

IC是用來判斷文件是否被加密的一種方法。它的計算公式是這樣的:

Σ(fi * (fi-1))/N(N-1)    :fi 代表樣本中某個字母出現的比率,N代表字母出現在樣本中的個數

通過計算,我們可以得到以下兩個值:

english的IC值為0.0667,
english中一個完全隨機的字符串的IC值為0.0385

那么這兩個值有什么意義呢?
簡單來說(english),
加密文件的IC值接近0.0385
明文文件的IC值接近0.0667
好了,那么我們就可以計算每個文件的IC值,如果這個文件的IC值接近0.0385,那么我們認為它是加密的,而一個web中加密的文件一般就意味著它是個為了逃避檢測的webshell。

如沒特殊注明,文章均為狐靈科技原創,轉載請注明?? "webshell檢測方法歸納
多一份免費策劃方案,總有益處。

請直接添加技術總監微信聯系咨詢

網站設計 品牌營銷

多一份參考,總有益處

聯系狐靈科技,免費獲得專屬《策劃方案》及報價

咨詢相關問題或預約面談,可以通過以下方式與我們聯系

業務熱線:15082661954 / 大客戶專線:15523356218