日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux php muma,php实现Linux服务器木马排查及加固功能

發布時間:2023/12/16 linux 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux php muma,php实现Linux服务器木马排查及加固功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這篇文章主要介紹了php實現Linux服務器木馬排查及加固功能,本文給出了根據特征碼查找、搜索最近被修改的文件、修改php.ini、修改nginx.conf等方法,需要的朋友可

網站頻繁被掛馬?做一些改進,基本上能把這個問題解決,因為discuz x等程序存在漏洞,被上傳了websehll,每次被刪除過段時間又出來了,最終查到所有的木馬。

從以下幾個方面查找并加強(如果能不開啟會員功能,不給任何上傳入口,保護好后臺密碼,加固好PHP,一般就沒什么問題了)。

1.根據特征碼查找:

php木馬一般含有

復制代碼 代碼如下:

或者

復制代碼 代碼如下:

find /wwwroot/* -type f -name "*.php" |xargs grep "eval(" > /wwwroot/scan.txt

結果就查出很多明顯的webshell,并且發現都藏在attachment等目錄下

2.利用網上的一個php代碼,搜索最近被修改的文件

scandir.php

內容如下:

復制代碼 代碼如下:

set_time_limit(0);//防止超時

/**

*

* php目錄掃描監控增強版

*

* @author lssbing (lssbing#gmail.com)

* @date 2010-1-18

* @license BSD

* @version 1.0

*

下面幾個變量使用前需要手動設置

*

**/

/*===================== 程序配置 =====================*/

$pass="12345";//設置密碼

$jkdir="."; //設置監控掃描的目錄,當前目錄為'.',上一級目錄為'..',,也可以設置絕對路徑,后面不要加斜杠,默認為當前目錄

$logfilename="./m.log";//設置存儲log的路徑,可以放置在任意位置

$exclude=array('data','images');//排除目錄

$danger='eval|cmd|passthru|gzuncompress';//設置要查找的危險的函數 以確定是否木馬文件

$suffix='php|inc';//設置要掃描文件的后綴

/*===================== 配置結束 =====================*/

$filename=$_GET['filename'];

$check=$_GET['check'];

$jumpoff=false;

$url = $_SERVER['PHP_SELF'];

$thisfile = end(explode('/',$url));

$jump="{$thisfile}|".implode('|',$exclude);

$jkdir_num=$file_num=$danger_num=0;

define('M_PATH',$jkdir);

define('M_LOG',$logfilename);

if ($check=='check')

{

$safearr = explode("|",$jump);

$start_time=microtime(true);

safe_check($jkdir);

$end_time=microtime(true);

$total=$end_time-$start_time;

$file_num=$file_num-$jkdir_num;

$message= " 文件數:".$file_num;

$message.= " 文件夾數:".$jkdir_num;

$message.= " 可疑文件數:".$danger_num;

$message.= " 執行時間:".$total;

echo $message;

}else{

if ($_GET['m']=="del") Delete();//處理文件刪除

//讀取文件內容

if(isset($_GET['readfile'])){

//輸出查看密碼,密碼校驗正確以后輸出文件內容

if(emptyempty($_POST['passchack'])){

echo""

. " pass"

. " "

. ""

. " "

. ""

."";

exit;

}elseif(isset($_POST['passchack'])&&$_POST['passchack']==$pass){

$code=file_get_contents($_GET['readfile']);

echo"{$code}";

exit;

}else{

exit;

}

}else{

record_md5(M_PATH);

if(file_exists(M_LOG)){

$log = unserialize(file_get_contents(M_LOG));

}else{

$log = array();

}

if($_GET['savethis']==1){

//保存當前文件md5到日志文件

@unlink(M_LOG);

file_put_contents(M_LOG,serialize($file_list));

echo "保存成功!點擊返回";

exit;

}

if(emptyempty($log)){

echo "當前還沒有創建日志文件!點擊[保存當前]創建日志文件!";

}else{

if($file_list==$log){

echo "本文件夾沒有做過任何改動!";

}else{

if(count($file_list) > 0 ){

foreach($file_list as $file => $md5){

if(!isset($log[$file])){

echo "新增文件:".$file.""." 創建時間:".date("Y-m-d H:i:s",filectime($file))." 修改時間:".date("Y-m-d H:i:s",filemtime($file))." 源碼刪除

";

}else{

if($log[$file] != $md5){

echo "修改文件:".$file.""." 創建時間:".date("Y-m-d H:i:s",filectime($file))." 修改時間:".date("Y-m-d H:i:s",filemtime($file))." 源碼

";

unset($log[$file]);

}else{

unset($log[$file]);

}

}

}

}

if(count($log)>0){

foreach($log as $file => $md5){

echo "刪除文件:".$file."

";

}

}

}

}

}

}

//計算md5

function record_md5($jkdir){

global $file_list,$exclude;

if(is_dir($jkdir)){

$file=scandir($jkdir);

foreach($file as $f){

if($f!='.' && $f!='..' && !in_array($f, $exclude)){

$path = $jkdir.'/'.$f;

if(is_dir($path)){

record_md5($path);

}else{

$file_list[$path]=md5_file($path);

}

}

}

}

}

function Safe_Check($jkdir)//遍歷文件

{

global $danger ,$suffix ,$jkdir_num ,$file_num ,$danger_num;

$hand=@dir($jkdir) or die('文件夾不存在') ;

while ($file=$hand->read())

{

$filename=$jkdir.'/'.$file;

if (!$jumpoff) {

if(Jump($filename))continue;

}

if(@is_dir($filename) && $file != '.' && $file!= '..'&& $file!='./..')

{ $jkdir_num++;

Safe_Check($filename);

}

if (preg_match_all ("/\.($suffix)/i",$filename,$out))

{

$str='';

$fp = @fopen($filename,'r')or die('沒有權限');

while(!feof($fp))

{

$str .= fgets($fp,1024);

}

fclose($fp);

if( preg_match_all ("/($danger)[ \r\n\t]{0,}([\[\(])/i",$str,$out))

{

echo "可疑文件:{$filename}"." 創建時間:".date("Y-m-d H:i:s",filectime($filename))." 修改時間:".date("Y-m-d H:i:s",filemtime($filename))." 查看代碼 刪除

";

$danger_num++;

}

}

$file_num++;

}

}

function Edit()//查看可疑文件

{

global $filename;

$filename = str_replace("..","",$filename);

$file = $filename;

$content = "";

if(is_file($file))

{

$fp = fopen($file,"r")or die('沒有權限');

$content = fread($fp,filesize($file));

fclose($fp);

$content = htmlspecialchars($content);

}

echo "$content\r\n";

exit();

}

function Delete()//刪除文件

{ global $filename,$pass;

if(emptyempty($_POST['passchack'])){

echo""

. " pass"

. " "

. ""

. " "

. ""

."";

exit;

}elseif(isset($_POST['passchack'])&&$_POST['passchack']==$pass){

(is_file($filename))?($mes=unlink($filename)?'刪除成功':'刪除失敗 查看權限'):'';

echo $mes;

exit();

}else{

echo '密碼錯誤!';

exit;

}

}

function Jump($file)//跳過文件

{

global $jump,$safearr;

if($jump != '')

{

foreach($safearr as $v)

{

if($v=='') continue;

if( eregi($v,$file) ) return true ;

}

}

return false;

}

?>

[查看文件改動]|[保存當前文件指紋]|[掃描可疑文件]

執行后能看到最近被修改的文件,具有參加價值

3.修改php.ini,限制以下函數

復制代碼 代碼如下:

本文原創發布php中文網,轉載請注明出處,感謝您的尊重!

總結

以上是生活随笔為你收集整理的linux php muma,php实现Linux服务器木马排查及加固功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。