一、前言

近日,腾讯安全云鼎实验室监测到大量主机被入侵并添加了一个名为“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批量入侵的分析与溯源的更多相关文章

  1. Linux一键安装web环境全攻略phpstudy版

    此教程主要是应对阿里云Linux云服务器ecs的web环境安装,理论上不限于阿里云服务器,此教程对所有Linux云服务器都具有参考价值. 写这篇文章的目的:网上有很多关于Linux一键安装web环境全 ...

  2. 如何使用ZOL一键安装器下载中关村在线的源安装包

    如何使用ZOL一键安装器下载中关村在线的源安装包 马根峰               (广东联合电子服务股份有限公司, 广州 510300) 摘要    中关村在线最近开始推出ZOL一键安装器,用户直 ...

  3. 【教你玩转云计算】在阿里云一键安装快速部署Oracle11g

    云计算时代提供了更方便可靠的IAAS,PAAS和SAAS平台.将已有或正在研发的项目迁移到云计算平台,和传统的服务器部署还是存在一些异同点. 本文手把手教你在阿里云平台快速的部署Oracle11g   ...

  4. 怎样使用ZOL一键安装器下载中关村在线的源安装包

    怎样使用ZOL一键安装器下载中关村在线的源安装包 马根峰               (广东联合电子服务股份有限公司, 广州 510300) 摘要    中关村在线近期開始推出ZOL一键安装器,用户直 ...

  5. CentOS7 一键安装KMS服务【整理】

    KMS,是 Key Management System 的缩写,也就是密钥管理系统.这里所说的 KMS,毋庸置疑就是用来激活 VOL 版本的 Windows 和 Office 的 KMS 啦.经常能在 ...

  6. 一键安装KMS服务

    本文转载于 秋水逸冰 » 一键安装 KMS 服务脚本 KMS,是 Key Management System 的缩写,也就是密钥管理系统.这里所说的 KMS,毋庸置疑就是用来激活 VOL 版本的 Wi ...

  7. 用 edgeadm 一键安装边缘 K8s 集群和原生 K8s 集群

    背景 目前,很多边缘计算容器开源项目在使用上均存在一个默认的前提:用户需要提前准备一个标准的或者特定工具搭建的 Kubernetes 集群,然后再通过特定工具或者其他方式在集群中部署相应组件来体验边缘 ...

  8. PowerProto: gRPC工具链(protoc, protoc-gen-go)的一键安装与版本控制

    ‍PowerProto: gRPC工具链(protoc, protoc-gen-go)的一键安装与版本控制 中文 | English 项目地址:An awesome version control t ...

  9. Linux下一键安装Python3&更改镜像源&虚拟环境管理技巧

    前言 之前分享过一篇<Linux系统自带Python2&yum的卸载及重装>,介绍了如何卸载及重装Linux(CentOS)自带的的Python2.7.今天主要介绍如何在Linux ...

随机推荐

  1. 010 secondary namenode(同步元数据和日志)

    1.格式化 首先格式化之后只剩下一个根目录. 格式化后会出现元数据 集群启动之后,元数据放在内存中的(消耗内存中) 格式化后会产生镜像文件fsimage,元数据存储 启动的时候namenode会读取镜 ...

  2. express增加swagger功能

    参考地址:https://blog.csdn.net/freeboy1234/article/details/79289486 下载swagger ui库 地址是:https://github.com ...

  3. [CodeChef - STREETTA] The Street 李超线段树

    大致题意: 给出两个序列A,B,A初始为负无穷,B初始为0,有三种操作 1.在A上区间[u,v]上加一个等差数列,取与原本A序列的最大值. 2.在B上区间[u,v]上加一个等差数列. 3.给出一个点X ...

  4. vue 单向数据流 & 双向绑定

    在react中是单向数据绑定,而在vue中的特色是双向数据绑定.但是其实就我个人的理解是: 其实无论是vue还是react其实还是提倡单向数据流去管理状态,这一点在vuex和redux状态管理器上体现 ...

  5. python学习笔记 - for循环: 遍历字典, 分别打印key, value, key:value

    #遍历字典, 分别打印key, value, key:value emp = {'name':'Tom', 'age':20, 'salary' : 8800.00} for k in emp.key ...

  6. 如何破解安卓App

    韩梦飞沙 yue31313 韩亚飞 han_meng_fei_sha  313134555@qq.com 如何破解安卓App

  7. loj#2721. 「NOI2018」屠龙勇士

    题目链接 loj#2721. 「NOI2018」屠龙勇士 题解 首先可以列出线性方程组 方程组转化为在模p意义下的同余方程 因为不保证pp 互素,考虑扩展中国剩余定理合并 方程组是带系数的,我们要做的 ...

  8. BZOJ.2194.快速傅立叶之二(FFT 卷积)

    题目链接 \(Descripiton\) 给定\(A[\ ],B[\ ]\),求\[C[k]=\sum_{i=k}^{n-1}A[i]*B[i-k]\ (0\leq k<n)\] \(Solut ...

  9. [BalticOI2002]Bicriterial routing

    OJ题号: BZOJ1375.ECNU1468 题目大意: 给定一个无向连通图,每条边有两个权值w1和w2.定义一条路径是优秀的当且仅当没有别的路径满足两个权值的和都比该路径小,求s到t的优秀路径条数 ...

  10. bzoj 2011

    决策单调性,对于一个1D/1D(状态是一维,转移也是一维)的DP,如果DP的决策具有单调性,那么就可以做到O(nlogn)的复杂度完成DP. 感谢<1D/1D  动态规划优化初步>的作者. ...