phpstudy后门植入事务清静通告
宣布时间 2019-09-21●事务配景
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版本。
●事务剖析
被熏染后门的是 /php/php-5.4.45/ext/php_xmlrpc.dll
md5:C339482FD2B233FB0A555B629C0EA5D5
部分剖析回连代码,其中提及了回连C2
●检测要领
pcheck.sh文件,运行后可以递归检测目今目录下所有dll文件中是否包括木马文件的特征值。
#! /bin/bash
# author: pcat@chamd5.org
# http://pcat.cc
# trojan feature
trojan=@eval
function check_dir(){
for file in `ls $1`
do
f2=$1"/"$file
if [ -d $f2 ]
then
check_dir $f2
# just check dll file
elif [ "${file##*.}"x = "dll"x ]
then
strings $f2 |grep -q $trojan
if [ $? == 0 ]
then
echo "===" $f2 "===="
strings $f2 |grep $trojan
fi
fi
done
}
# . stand for current directory
check_dir .
windows系统,执行pcheck.py
# -*- coding:utf8 -*-
__author__='pcat@chamd5.org'
__blog__='http://pcat.cc'
import os
import string
import re
def strings(file) :
chars = string.printable[:94]
shortestReturnChar = 4
regExp = '[%s]{%d,}' % (chars, shortestReturnChar)
pattern = re.compile(regExp)
with open(file, 'rb') as f:
return pattern.findall(f.read())
def grep(lines,pattern):
for line in lines:
if pattern in line:
yield line
def pcheck(filename):
# trojan feature
trojan='@eval'
# just check dll file
if filename.endswith('.dll'):
lines=strings(filename)
try:
grep(lines,trojan).next()
except:
return
print '=== {0} ==='.format(filename)
for line in grep(lines,trojan):
print line
pass
def foo():
# . stand for current directory
for path, dirs, files in os.walk(".", topdown=False):
for name in files:
pcheck(os.path.join(path, name))
for name in dirs:
pcheck(os.path.join(path, name))
pass
if __name__ == '__main__':
foo()
●修复建议
现在PhpStudy官方的最新版本中不保存以后门,请会见官方链接更新到最新软件:
https://www.xp.cn/
●IOC
IP
133.130.101.150
域名
360se.net
bbs.360se.net
www.360se.net
up.360se.net
down.360se.net
cms.360se.net
file.360se.net
ftp.360se.net
MD5
C339482FD2B233FB0A555B629C0EA5D5
0f7ad38e7a9857523dfbce4bce43a9e9
●参考链接
http://baijiahao.www.jskxha.com/s?id=1645182793211249695&wfr=spider&for=pc
https://mp.weixin.qq.com/s/xikzveCJqkKAu1MnMRCYPw


京公网安备11010802024551号