欢迎你们前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~html
自从Redis未受权问题获取Linux系统root权限的攻击方法的披露后,因为其易用性,利用该问题入侵Linux服务进行挖矿、扫描等的黑客行为一直层出不穷;而在众多利用该问题入侵服务器进行黑产行为的案例中,其中就存在一类利用该问题进行挖矿而且会利用pnscan自动扫描感染其余机器;该类攻击一直存在,不过在近期又呈现数量增长的趋势,在最近捕获到屡次,咱们针对其作下具体的分析linux
自从Redis未受权问题获取Linux系统root权限的攻击方法的披露后,因为其易用性,利用该问题入侵Linux服务进行挖矿、扫描等的黑客行为一直层出不穷;而在众多利用该问题入侵服务器进行黑产行为的案例中,其中就存在一类利用该问题进行挖矿而且会利用pnscan自动扫描感染其余机器;该类攻击一直存在,不过在近期又呈现数量增长的趋势,在最近捕获到屡次,咱们针对其作下具体的分析。git
首先针对利用的漏洞作个说明,Redis 默认状况下,会绑定在 0.0.0.0:6379,在没有利用防火墙进行屏蔽的状况下,将会将Redis服务暴露到公网上,若是在没有开启认证的状况下,能够致使任意用户在能够访问目标服务器的状况下未受权访问Redis以及读取Redis的数据。攻击者在未受权访问Redis的状况下利用Redis的相关方法,能够成功将本身的公钥写入目标服务器的 ~/.ssh 文件夹的authotrized_keys 文件中,进而能够直接登陆目标服务器;若是Redis服务是以root权限启动,能够利用该问题直接得到服务器root权限。相关漏洞详情能够参考:https://www.seebug.org/vuldb/ssvid-89715github
通过在ZoomEye和SHODAN检索,能够发现分别众多Redis服务开放在公网上,这些服务均可能成为攻击目标。redis
通过对捕获的事件进行分析,咱们发现整个入侵流程大概是包含如下几个环节:数据库
整个入侵利用以及后续的感染的实现,最主要的功能都是基于经过Redis问题写入crontab任务中下载执行的.cmd脚原本实现的,经过对它的分析,咱们基本可以获得整个流程的全部细节,这是一个base脚本,咱们经过解读来分析下它的相关功能。缓存
这部分代码只要是用做重复执行的判断,将.mxff0文件做为标记文件,若是存在该文件则表明机器上已执行脚本,直接退出,不然写.mxff0文件并进行下一步动做;安全
设置预置动做,在脚本退出后删除相关文件和脚本自身;服务器
这部分主要是修改系统的配置,开头两行为关闭SELINUX;而后清空/var/spool/cron,进而判断系统DNS服务器是否存在8.8.8.8,没有则添加;接着清空系统tmp目录和删除相关文件;同时清空系统缓存,而最后修改/etc/security/limits.conf来更新系统的资源限制;微信
这里再进一步的增长iptables限制6379端口只容许本地访问,同时kill相关包含挖矿、redis客户端、爬虫等进程,这里的目的也比较简单,避免被其余黑客再次入侵,同时清除可能其余黑客入侵启动的进程;
清除相关登陆日志、命令操做历史;
这一长串的内容主要目的是下载并编译安装pnscan,从内容中咱们能够看到对于不一样操做系统的判断而后安装依赖的相关模块,而后才是从github下载pnscan的源码进行编译安装;至于为何采用编译安装的形式,猜想是出于兼容不一样系统以及每次编译生成的pnscan的MD5都不同,避免造成固定特征;
这部分主要是下载挖矿程序并重命名为.gpg,增长执行权限,执行后删除,同时从新上传到https://transfer.sh/ 获取新的连接;
而这部份内容主要是生成新的.dat文件,包含将原来.cmd脚本里的里挖矿程序的下载地址替换为上一步上传到https://transfer.sh/ 获得的新地址,还有Redis利用的相关语句;
而步主要是调用pnscan去扫描子网段1.0.0.0/16到224.255.0.0/16中开放6379端口而且操做系统为Linux的目标,而后利用redis-cli执行.dat中的命令,进行下个目标的感染;这里pnscan的-W参数值'2a 31 0d 0a 24 34 0d 0a 69 6e 66 6f 0d 0a'转换后内容'*1\r\n$4\r\nINFO\r\n',是向目标Redis服务发送请求获取Redis服务器的各类信息和统计数值,再经过-R参数值'6f 73 3a 4c 69 6e 75 78'(转换后内容为os:Linux)判断是否Linux系统。
最后就是收尾工做,清除相关日志和命令执行历史,同时在脚本退出的时候会触发脚本一开始用trap预置的动做,会作删除操做,删除相关文件和脚本自身(rm -rf m* .cmd tmp.* .r .dat $0)。经过对脚本的解读,咱们基本已经清楚整个蠕虫的行为和入侵流程,也就是咱们开始所描述的流程。
另外,经过阅读脚本,咱们发现虽然整个入侵流程并非多复杂,但脚本其实有不少”工程化”的细节考虑,不得不让人惊叹入侵者的”考虑周到”:
利用.mxff0文件作重复执行检验,避免脚本的重复执行
咱们主要参考脚本的相关行为进行对应的行为恢复和删除便可:
还包含了一些中间文件,虽然脚本包含相关删除操做,但建议仍是全局查找确认: .mxff0、.x1十二、.gpg、.dat、.cmd、.r.xx.xx.o/l、tmp.xxxx
问答
相关阅读
Hadoop Yarn REST API未受权漏洞利用挖矿分析
此文已由做者受权腾讯云+社区发布,原文连接:https://cloud.tencent.com/developer/article/1142506?fromSource=waitui
欢迎你们前往腾讯云+社区或关注云加社区微信公众号(QcloudCommunity),第一时间获取更多海量技术实践干货哦~