国产精品香蕉在线观看网,亚洲欧美精品综合在线观看,亚洲不卡av一区二区无码不卡,亚洲日本精品国产第一区二区

移動(dòng)安全 安全管理 應(yīng)用案例 網(wǎng)絡(luò)威脅系統(tǒng)安全 應(yīng)用安全 數(shù)據(jù)安全 云安全
當(dāng)前位置: 主頁 > 信息安全 > 系統(tǒng)安全 >

PHP 后 門 隱 藏 與 維 持 技 巧

時(shí)間:2014-06-04 13:23來源:TuZhiJiaMi企業(yè)信息安全專家 點(diǎn)擊:
0×00前言 在一個(gè)成功的測(cè)試后,通常會(huì)想讓特權(quán)保持的更久些.留后門的工作就顯得至關(guān)重要,通常布設(shè)的后門包括但不限于數(shù)據(jù)庫權(quán)限,WEB權(quán)限,系統(tǒng)用戶權(quán)限等等.此文則對(duì)大眾后門隱藏的一些
Tags系統(tǒng)安全(735)PHP后門(1)  

  0×00前言

  在一個(gè)成功的測(cè)試后,通常會(huì)想讓特權(quán)保持的更久些.留后門的工作就顯得至關(guān)重要,通常布設(shè)的后門包括但不限于數(shù)據(jù)庫權(quán)限,WEB權(quán)限,系統(tǒng)用戶權(quán)限等等.此文則對(duì)大眾后門隱藏的一些思路做科普.

PHP后門隱藏與維持技巧

  以PHP-WEBBACKDOOR為例,拋磚引玉

  一個(gè)最常見的一句話后門可能寫作這樣

  

  或這樣

  

  當(dāng)然,這僅是調(diào)用的函數(shù)不同,關(guān)于PHP禁用的函數(shù)請(qǐng)?jiān)趐hp.ini: disable_functions 中尋找.

  但是運(yùn)維直觀尋找我們shell的方式也有很多,如

  ◆通過文件名/修改時(shí)間/大小,文件備份比對(duì)發(fā)現(xiàn)異常

  ◆通過WEBSHELL后門掃描腳本發(fā)現(xiàn),如Scanbackdoor.php/Pecker/shelldetect.php以及各種掃描器等等

  ◆通過Access.log訪問日志發(fā)現(xiàn)后門所在

  ◆又或者,我們的測(cè)試一句話還要被WAF攔一下,再來個(gè)警告日志,等等

  針對(duì)常見的檢測(cè)方式,總結(jié)以下七常用手法對(duì)shell進(jìn)行隱藏

  0×01規(guī)避

  看看各種掃描后門的代碼就知道,留一個(gè)眾人皆知,人人喊打的關(guān)鍵詞在shell中是萬萬不能的

PHP后門隱藏與維持技巧

  常見的關(guān)鍵詞如:

  ◆系統(tǒng)命令執(zhí)行: system, passthru, shell_exec, exec, popen, proc_open

  ◆代碼執(zhí)行: eval, assert, call_user_func,base64_decode, gzinflate, gzuncompress, gzdecode, str_rot13

  ◆文件包含: require, require_once, include, include_once, file_get_contents, file_put_contents, fputs, fwrite

  過去有朋友機(jī)智的使用$_POST[0]($_POST[1])來執(zhí)行命令,可惜現(xiàn)在也難逃掃描器法眼,但萬象變化,構(gòu)造方法是無窮的

  tudouya 同學(xué)在FREEBUF上給出[一種構(gòu)造技巧](http://www.freebuf.com/articles/web/33824.html)利用

  

  構(gòu)造生成,當(dāng)然,嫌太直觀可以寫作這樣

  

  然后再填充些普通代碼進(jìn)行偽裝,一個(gè)簡單的”免殺”shell樣本就出現(xiàn)了

PHP后門隱藏與維持技巧

  執(zhí)行無誤,且繞過普通掃描器,也可依賴之寫新的臨時(shí)shell

PHP后門隱藏與維持技巧

  0×02特性

  借助語法特性執(zhí)行命令亦不失為有趣的手法.借用php在處理變量時(shí)的語法特性,會(huì)分析雙引號(hào)中的數(shù)據(jù)是否含有變量(并解析其值)

  eg.:

  ${@eval(phpinfo())}

  {}可解析雙引號(hào)內(nèi)的變量內(nèi)容,@保持出錯(cuò)后繼續(xù)執(zhí)行

  然后就可以大搖大擺的開始構(gòu)造隱藏后門了,但此處構(gòu)造欲再借力于函數(shù)引起的命令執(zhí)行,沒錯(cuò),就是preg_replace

  

  這玩法顯然已經(jīng)進(jìn)了掃描器黑名單,簡單修改下

  (.+?)<\/title>/ies", 'funfunc("\1")', $_POST["cmd"]); ?>

  執(zhí)行了,沒有被發(fā)現(xiàn)

PHP后門隱藏與維持技巧

  執(zhí)行的方式顯而易見,正則匹配后的{${phpinfo()}}傳入funfunc時(shí)引起了代碼執(zhí)行

  funfunc("{${phpinfo()}}")

  另一種方法

  

PHP后門隱藏與維持技巧

  0×03包含

  文件包含是眾人都玩過的方法,只是包含也有技巧

  普通文件包含可能僅僅是一個(gè)include包含某個(gè)txt或jpg,甚至直接留一個(gè)包含漏洞,但掃描器也容易發(fā)現(xiàn),多出的包含文件也易被發(fā)現(xiàn)

  看此腳本

  

  算是解決了一點(diǎn)問題,需求的shell可隨用隨生成,進(jìn)而包含之

PHP后門隱藏與維持技巧

  可惜由于file_put_contents等函數(shù)過于敏感,也是很容易被掃描發(fā)現(xiàn)

  編碼生成的方式創(chuàng)建shell,隨訪問而生成.

  

  可以逃避一些掃描器,但這個(gè)模式也比較引人注目,生成的新文件也要做簡單的隱藏以躲過查殺.

  當(dāng)然對(duì)于啟發(fā)式之類的新概念就不考慮了

  在這種方式也滿足不了需求的情況下,機(jī)智的攻擊者又重拾圖片

  

  參考:一種隱藏在JPG圖片EXIF中的后門

  這次不必再簡單的copy /b生成圖片馬了,借用preg_replace執(zhí)行文件的特定標(biāo)志一樣可行

PHP后門隱藏與維持技巧

  此處可能會(huì)提示 Call to undefined function exif_read_data()

  需要修改php.ini, extension=php_exif.dll

  將其加載順序改為extension=php_mbstring.dll的后面

PHP后門隱藏與維持技巧

  可以看出,此圖片后門借助了preg_replace \e參數(shù),依賴了php的變量解析執(zhí)行,又使用了base64編碼,最后依賴文件標(biāo)識(shí)將一個(gè)完整的shell拼合,算是給初涉后門隱藏的童鞋一個(gè)小提醒

  當(dāng)然,只要有包含點(diǎn),包含文件的形式是多樣的,甚至于包含error_log(雖然可能要考慮閉合),只有想不到…

  0×04隱匿

  為了不讓訪問者發(fā)現(xiàn)后門的存在,機(jī)智的安全研究員也會(huì)混淆視聽故弄玄虛

  

Not Found

The requested URL was not found on this server.

  借助上面的html渲染后,瀏覽頁面已經(jīng)開始偽裝404以迷惑視聽了

  但躲得過訪問者也躲不過日志分析,為更好的隱藏在大量日志中,構(gòu)造如下腳本

  

  訪問之,是真正的404,沒錯(cuò),日志中也是這樣

PHP后門隱藏與維持技巧

  但此刻當(dāng)前目錄已生成我們要連接的腳本

  0×05混淆

  用過weevely工具的童鞋應(yīng)該知道,其生成的免殺shell像這樣

  

  終端下連接后像這樣

PHP后門隱藏與維持技巧

  Ps:截圖忘記修改終端編碼了:(

  其免殺方式在于,在固定區(qū)域生成隨機(jī)名稱變量,后借助str_replace拼合base64_decode,執(zhí)行命令的過程

  當(dāng)然,這是在代碼層面混淆視聽以躲過掃描器

  更常用的混淆視聽的方法:

  ◆修改文件時(shí)間

  ◆改名融入上傳后所在文件夾,讓人無法直觀看出文件異常

  ◆文件大小的偽裝處理(至少看起大小像個(gè)正常腳本)

  ◆選好藏身路徑并盡量少的訪問

  ◆畸形目錄%20

  關(guān)于空格目錄,還是相對(duì)容易被發(fā)現(xiàn)的

PHP后門隱藏與維持技巧

  0×06解析

  利用.htaccess,添加解析后門

PHP后門隱藏與維持技巧

  如:

  AddType application/x-httpd-php .jpg

PHP后門隱藏與維持技巧

  以上以weeverly為例

  0×07雜糅

  總結(jié)以上方法,大部分無非是一個(gè)構(gòu)造漏洞的過程,漏洞構(gòu)造的代碼能有多奇葩,后門就可以多奇葩.可以寫纖細(xì)婉約的,也可以搞簡單粗暴的,只是適用場(chǎng)合不同而已.如能很好的融合思路,構(gòu)造自己的隱藏shell想來亦非難事.

------分隔線----------------------------

推薦內(nèi)容