[转]一键安装藏隐患,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 ...
随机推荐
- win7下docker环境搭建nginx+php-fpm+easyswoole+lavarel+mysql开发环境
win7环境基础在上一篇win7下docker环境搭建nginx+php-fpm+easyswoole开发环境中已经详细叙述搭建完成 本篇文章将叙述如何在上述基础上搭建laravel开发环境,这个其实 ...
- 基于Laravel开发博客应用系列 —— 使用Bower+Gulp集成前端资源
本节我们将讨论如何将前端资源集成到项目中,包括前端资源的发布和引入.本项目将使用 Bower 和 Gulp 下载和集成jQuery.Bootstrap.Font Awesome 以及 DataTabl ...
- webview内部跳转判断
重写webview内的方法 webView.setWebViewClient(new WebViewClient() { @Override // 在点击请求的是链接是才会调用,重写此方法返回true ...
- Django快速创建博客,包含了整个框架使用过程,简单易懂
创建工程 ...
- centOS7 apache ssl证书安装配置
背景说明:服务器是centOS7.4 七牛申请的免费ssl证书 默认apache是没有安装SSL模块的,所以需要安装,接着使用命令: yum install -y mod_ssl apache目录 / ...
- python开发_tkinter_修改tkinter窗口的红色图标'Tk'
学过java的swing可能知道,在创建一个窗口的时候,窗口的左上角是一个咖啡图标 如下图所示: 在python中,tkinter模块生成的窗口左上角是一个:Tk字样的图标(Tk为tkinter的缩写 ...
- Codeforces Round #298 (Div. 2) E. Berland Local Positioning System 构造
E. Berland Local Positioning System Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.c ...
- Codeforces Round #281 (Div. 2) C. Vasya and Basketball 暴力水题
C. Vasya and Basketball time limit per test 2 seconds memory limit per test 256 megabytes input stan ...
- IO流-递归删除带内容的目录
/* * 需求:递归删除带内容的目录 * * 目录:demo * ------------------------------------------------------------------- ...
- 浅入浅出---JQuery究竟是什么?
学习完了JQuery之后.我便感觉云里雾里的,JQuery究竟是什么.朦朦胧胧感觉到JQuery应该是javascript函数的封装.就应该像WinForm窗口应用程序中能够调用的系统函数,据之前所学 ...