0x00 前言本文記錄從零開始搭建vRealize Operations Manager漏洞調試環境的細節。
0x01 簡介本文將要介紹以下內容:
vRealize Operations Manager安裝
vRealize Operations Manager漏洞調試環境配置
常用知識
0x02 vRealize Operations Manager安裝參考資料:
https://docs.vmware.com/cn/vRealize-Operations/8.6/com.vmware.vcom.vapp.doc/GUID-69F7FAD8-3152-4376-9171-2208D6C9FA3A.html
1.下載OVA文件下載頁面:
https://my.vmware.com/group/vmware/patch
下載前需要先註冊用戶,之後選擇需要的版本進行下載
選擇產品vRealize Operations Manager,需要注意pak文件為升級包,這裡選擇ova文件進行下載,如下圖
經過篩選,只有版本vROps-8.3.0-HF2帶有ova文件,其他都是pak文件
2.安裝(1)在VMware Workstation中導入OVA文件
配置頁面中選擇Remote Collecto(Standard),如下圖
等待OVA文件導入完成後,將會自動開機進行初始化,初始化完成後如下圖
(2)配置
訪問配置頁面https://192.168.1.103/
選擇快速安裝EXPRESS INSTALLATION
設置admin口令
3.設置root用戶口令在虛擬機中選擇Login,輸入root,設置root用戶初始口令
4.啟用遠程登錄以root身份執行命令:
service sshd start
5.開啟遠程調試功能(1)查看所有服務的狀態
systemctl status
結果如下圖
定位到web相關的服務為vmware-casa.service
(2)查看vmware-casa.service的具體信息
systemctl status vmware-casa.service
結果如下圖
定位出加載的文件/usr/lib/vmware-casa/bin/vmware-casa.sh,查看文件內容並進一步分析後可定位出需要的配置文件/usr/lib/vmware-casa/casa-webapp/bin/setenv.sh
(3)添加調試參數
在變量JVM_OPTS中添加調試參數:-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000
(4)重啟服務
service vmware-casa restart
(5)查看調試參數是否更改:
ps -aux |grep vmware-casa
如下圖
(6)打開防火牆
這裡選擇清空防火牆規則:iptables -F
(7)使用IDEA設置遠程調試參數
IDEA的完整配置方法可參考之前的文章《Zimbra漏洞调试环境搭建》
0x03 常用知識1.常用路徑web目錄: /usr/lib/vmware-casa/casa-webapp/webapps/
日誌路徑: /storage/log/vcops/log/cas
admin用戶的口令hash: /storage/vcops/user/conf/adminuser.properties
數據庫口令位置: /var/vmware/vpostgres/11/.pgpass
2.數據庫連接數據庫口令內容示例:
localhost:5432:vcopsdb:vcops:J//mJcgppVIuGgzEuKIHGee9
localhost:5433:vcopsdb:vcops:keoMG4cmN+0jyD+7NAoED1HV
localhost:5433:replication:vcopsrepl:keoMG4cmN+0jyD+7NAoED1HV連接數據庫1:
/opt/vmware/vpostgres/11/bin/psql-hlocalhost-p5432-dvcopsdb-Uvcops
J//mJcgppVIuGgzEuKIHGee9連接數據庫2:
/opt/vmware/vpostgres/11/bin/psql-hlocalhost-p5433-dvcopsdb-Uvcops
keoMG4cmN+0jyD+7NAoED1HV連接數據庫3:
/opt/vmware/vpostgres/11/bin/psql-hlocalhost-p5433-dreplication-Uvcopsrepl
keoMG4cmN+0jyD+7NAoED1HV3.版本識別識別方法:
通過api接口獲得配置信息,在配置信息中導出詳細的版本信息
訪問URL: https://ip /suite-api/docs/wadl.xml
回顯的數據為xml格式,在getCurrentVersionOfServer中會包含版本信息,如下圖
Python實現細節:
由於回顯的數據為xml格式,存在轉義字符,在解析時首先處理轉義字符
示例代碼:
defescape(_str):
_str=_str.replace('','')
_str=_str.replace('','')
_str=_str.replace('','')
_str=_str.replace(''','\'')
return_str使用re進行字符串匹配時,由於數據跨行,需要加上參數re.MULTILINE|re.DOTALL
示例代碼:
pattern_data=re.compile(r'getCurrentVersionOfServer(.*?)/ns2:doc',re.MULTILINE|re.DOTALL)
versiondata=pattern_data.findall(escape(res.text))完整代碼已上傳至github,地址如下:
https://github.com/3gstudent/Homework-of-Python/blob/master/vRealizeOperationsManager_GetVersion.py
0x04 小結在我們搭建好vRealize Operations Manager漏洞調試環境後,接下來就可以著手對漏洞進行學習。