[转]一键安装藏隐患,phpStudy批量入侵的分析与溯源
一、前言
近日,腾讯安全云鼎实验室监测到大量主机被入侵并添加了一个名为“vusr_dx$”的隐藏帐号;同时,云鼎实验室还监测到此类帐号被大量创建的同时存在对应帐号异地登录的情况。
Windows 的帐号名称后带着“$”符号时,不会在 net user 命令中显示出帐号信息,是攻击者常用的一种隐藏帐号的方法,一般开发者不会添加这种类型的帐号。云鼎实验室对该事件进行跟踪分析,还原了攻击者的入侵手法、入侵后的操作。
二、入侵手法分析
通过对所有被入侵并添加“vusr_dx$”隐藏帐号的主机进行分析统计,发现大多数主机都安装了phpStudy 组件,Web 目录存在 phpinfo 和 phpMyAdmin,且 MySQL 的 root 用户有 50% 为弱口令。由此可以推断可能导致入侵的原因:
用户在自己云主机通过 phpStudy 一键部署 PHP 环境,默认情况下包含 phpinfo 及 phpMyAdmin 并且任何人都可以访问,同时安装的 MySQL 默认口令为弱口令,于是黑客通过 phpMyAdmin 使用弱口令登录 MySQL,接着利用 MySQL 的一些手段获取到系统权限。
常见利用 MySQL 获取系统权限一般有如下几个方式:
利用
SELECT "<?system("$_POST[cmd]);?>" INTO OUTFILE '/path/to/webroot'语句、或者 general_log 向 Web 目录写入一个 Webshell。由于 phpStudy 的一些原因,其 PHP 进程执行命令后是一个非常高权限的用户(通常为管理员用户或者是 SYSTEM 权限)。利用 MySQL UDF 来进行命令执行。通常利用 UDF 来执行命令的情况有 PHP 低权限但是 MySQL 是高权限的情况,或者是 PHP 用 disable_functions 限制了调用系统命令执行的方式,所以利用 UDF 来绕过 disable_functions。
这两种手法攻击者都有可能使用,由于攻击者是大批量、持续不断的进行入侵操作,可以推断出攻击者必然是使用了脚本来进行攻击的。

图 1. 攻击者每日成功入侵的机器数量曲线
通过进一步分析调查发现,最终确认攻击者的攻击手法为利用 MySQL 弱口令登录后,修改 general_log 指向 Web 目录下的 sheep.php 的文件,然后利用 shell 创建帐号。下表是 general_log 中时间和帐号创建时间的对应关系,佐证了攻击者的攻击手法。

攻击者使用的 SQL 语句如下图所示:

图2. 攻击者使用的 SQL 语句 payload

图3. sheep.php文件内容
可见,攻击者是针对性的对于 phpStudy 进行攻击。由于 phpStudy 默认安装的 MySQL 密码为 root / root,且开启在外网 3306 端口,在未设置安全组,或者安全组为放通全端口的情况下,极易受到攻击。
攻击者在创建完帐户后,会将挖矿木马上传到路径 C:\ProgramData\Zational\Zational.exe(MD5:cb6f37e76dd233256f1c3303b4e99b1c)并运行。该文件时是一个门罗币挖矿程序, Github 地址为:https://github.com/xmrig/xmrig。

图4. 挖矿进程
三、入侵溯源
黑客在创建了隐藏帐号之后会通过隐藏帐号登录并植入挖矿程序,通过腾讯云云镜捕获的“vusr_dx$”帐号异常登录行为进行来源 IP 归类统计,得到将近60个 IP 地址,包含除了来自于不同 IDC 的 IP,还有部分来自江苏盐城疑似黑客真实 IP:

图5. 部分异常登录来源 IP
初步可以怀疑这批是黑客所控制肉鸡甚至可能包含有黑客真实 IP,进一步针对这些 IP 进行信息收集分析,发现 `103.214.*.*` 存在 phpMyAdmin,同时 MySQL 也存在弱口令,且攻击者在 Web 目录下留下了后门,当即猜测这是攻击者的一台跳板机。进一步分析,获得了黑客的后门帐号 vusr_dx$ 的密码: admin@6********。
进一步针对对于挖矿木马行为进行分析后,发现此木马会连接到域名为gowel.top(IP:202.168.150.44)的代理矿池,由于相关配置没有指定专用矿池用户 token 或者用户名,可以认为这是一个私有的矿池地址,同时我们发现, hxxp://gowel.top:80/ 是一个 HFS,里面有我们获取到的挖矿木马文件。

图6. 该域名80端口 HFS 截图
由于该域名 whois 信息是域名注册商而非黑客本身,无法通过 whois 获取注册者相关信息。
进一步通过遍历异常登录来源 IP 查询黑客画像数据,最终发现一个关联 QQ 信息可能为黑客 QQ,QQ 号为12*********,通过搜索引擎搜索该 QQ 号也能证明该 QQ 号主人在进行一些可能的黑客行为:

图7. 对应 QQ 号搜索引擎查询结果
查询对应 QQ 资料:

图8. 对应 QQ 号资料卡
四、解决方案
针对此类攻击,通用的解决方案如下:
1. 在腾讯云控制台设置 CVM 的安全组,尽量不要选用放通全端口,而是针对性的设置需要外网访问的端口,比如 HTTP 的默认端口 80、RDP 的默认端口 3389;
2. 对于 phpStudy 这种集成环境,在安装结束后应修改 MySQL 密码为强密码,不要使用 root / root 或者 root / 123456 等弱口令;
3. 可以选择安装腾讯云云镜,云镜的主机漏洞检测功能支持支持 Windows 隐藏帐户检测、MySQL 弱口令检测等漏洞检测,同时也支持黑客植入的 Webshell 检测。

图9. 云镜对于受攻击主机的漏洞扫描报警
五、IOCs
MD5:cb6f37e76dd233256f1c3303b4e99b1c
矿池地址:hxxp://gowel.top:11588
[转]一键安装藏隐患,phpStudy批量入侵的分析与溯源的更多相关文章
- Linux一键安装web环境全攻略phpstudy版
此教程主要是应对阿里云Linux云服务器ecs的web环境安装,理论上不限于阿里云服务器,此教程对所有Linux云服务器都具有参考价值. 写这篇文章的目的:网上有很多关于Linux一键安装web环境全 ...
- 如何使用ZOL一键安装器下载中关村在线的源安装包
如何使用ZOL一键安装器下载中关村在线的源安装包 马根峰 (广东联合电子服务股份有限公司, 广州 510300) 摘要 中关村在线最近开始推出ZOL一键安装器,用户直 ...
- 【教你玩转云计算】在阿里云一键安装快速部署Oracle11g
云计算时代提供了更方便可靠的IAAS,PAAS和SAAS平台.将已有或正在研发的项目迁移到云计算平台,和传统的服务器部署还是存在一些异同点. 本文手把手教你在阿里云平台快速的部署Oracle11g ...
- 怎样使用ZOL一键安装器下载中关村在线的源安装包
怎样使用ZOL一键安装器下载中关村在线的源安装包 马根峰 (广东联合电子服务股份有限公司, 广州 510300) 摘要 中关村在线近期開始推出ZOL一键安装器,用户直 ...
- CentOS7 一键安装KMS服务【整理】
KMS,是 Key Management System 的缩写,也就是密钥管理系统.这里所说的 KMS,毋庸置疑就是用来激活 VOL 版本的 Windows 和 Office 的 KMS 啦.经常能在 ...
- 一键安装KMS服务
本文转载于 秋水逸冰 » 一键安装 KMS 服务脚本 KMS,是 Key Management System 的缩写,也就是密钥管理系统.这里所说的 KMS,毋庸置疑就是用来激活 VOL 版本的 Wi ...
- 用 edgeadm 一键安装边缘 K8s 集群和原生 K8s 集群
背景 目前,很多边缘计算容器开源项目在使用上均存在一个默认的前提:用户需要提前准备一个标准的或者特定工具搭建的 Kubernetes 集群,然后再通过特定工具或者其他方式在集群中部署相应组件来体验边缘 ...
- PowerProto: gRPC工具链(protoc, protoc-gen-go)的一键安装与版本控制
PowerProto: gRPC工具链(protoc, protoc-gen-go)的一键安装与版本控制 中文 | English 项目地址:An awesome version control t ...
- Linux下一键安装Python3&更改镜像源&虚拟环境管理技巧
前言 之前分享过一篇<Linux系统自带Python2&yum的卸载及重装>,介绍了如何卸载及重装Linux(CentOS)自带的的Python2.7.今天主要介绍如何在Linux ...
随机推荐
- 001 python入门工具准备
一:准备 1.python官网 https://www.python.org/ 2.使用开发工具Pycharm 3.使用版本 使用2.7.13 4.安装 5.安装pycharm http://www. ...
- linux/mac下命令行rm回收站--rmtrash
Linux.mac的命令行下没有回收站功能,很多时候手一抖就把重要文件给 rm -fr * 了,虽然linux下有可能通过lost +found/debugfs找回,但难度也比较大,不能保证一定能够找 ...
- 模板优化 运用 function 及 外部模板
我们都知道模板是泛型的,但是,它一旦被实例化就会产生一个实例化的副本. 好了,大家应该能够猜到,低效模板和高效模板的差异了 一般的低效模板: 1.泛型实参表达形式多样导致的低效模板 2.多文件引用同一 ...
- 俄罗斯方块 Tetris
今天,为大家带来一个用Qt C++ (Windows环境下)做的一个简易俄罗斯方块小游戏 思路和模块介绍都在注释里面,其次就是一些项目中遇到的问题以及解决方案,在后面部分说明. 一.效果 测试图样 Q ...
- 机器学习之路: python 回归树 DecisionTreeRegressor 预测波士顿房价
python3 学习api的使用 git: https://github.com/linyi0604/MachineLearning 代码: from sklearn.datasets import ...
- Sublime Text 下的Install Package安装方法
废话不多说.... 如果你是Sublime Text3用户,按下Ctrl+~呼出控制台,输入以下代码 import urllib.request,os,hashlib; h = '7183a2d3e9 ...
- POJ 2987 Firing 网络流 最大权闭合图
http://poj.org/problem?id=2987 https://blog.csdn.net/u014686462/article/details/48533253 给一个闭合图,要求输出 ...
- Codedforces 1076G Array Game 线段树
题意 现在cf上看题意真nm麻烦,有道网页翻译和谷歌翻译鬼畜的一匹 两个人在玩一个游戏. 有一个有\(n\)个数序列\(B\),一开始有一个棋子在\(B\)的第一个位置. 双方轮流操作,第一次操作前将 ...
- [Agc002E]Candy Piles
[Agc002E]Candy Piles 题目大意 有\(n\)个数,两人轮流操作,可以做以下操作之一: 删掉一个最大的数 将所有数-1 最后取没的人输,问先手是否必胜? 试题分析 直接决策不知道选哪 ...
- Socket通信原理简介
Socket通信原理简介 字数1011 阅读1766 评论2 喜欢11 何谓socket 计算机,顾名思义即是用来做计算.因而也需要输入和输出,输入需要计算的条件,输出计算结果.这些输入输出可以抽象为 ...