Veeam Backup & Replication漏洞調試環境搭建
0x00 前言
本文以CVE-2023-27532為例,介紹Veeam Backup & Replication漏洞調試環境的搭建方法。
0x01 簡介
本文將要介紹以下內容:
環境搭建
調試環境搭建
數據庫憑據提取
CVE-2023-27532簡要分析
0x02 環境搭建
1.軟件安裝
安裝文檔:https://helpcenter.veeam.com/archive/backup/110/vsphere/install_vbr.html
軟件下載地址:https://www.veeam.com/download-version.html
License申請地址:https://www.veeam.com/smb-vmware-hyper-v-essentials-download.html
下載得到iso文件,安裝時需要使用郵箱獲得的License文件
2.默認目錄
安裝目錄:C:\Program Files\Veeam\
日志路徑:C:\ProgramData\Veeam\Backup
3.默認端口
Veeam.Backup.Service ports: 9392,9401(SSL)
Veeam.Backup.ConfigurationService port: 9380
Veeam.Backup.CatalogDataService port: 9393
Veeam.Backup.EnterpriseService port:9394
Web UI ports: 9080,9443(SSL)
RESTful API ports: 9399,9398(SSL)
0x03 調試環境搭建
1.定位進程
執行命令:netstat -ano |findstr 9401
返回結果:
【技術原創】Veeam Backup & Replication漏洞調試環境搭建
定位到進程pid為7132,進程名稱為Veeam.Backup.Service.exe
使用dnSpy Attach到進程Veeam.Backup.Service.exe
2.調試設置
為了在Debug過程中能夠查看變量內容,需要創建以下文件:
C:\Program Files\Veeam\Backup and Replication\Backup\Veeam.Backup.Service.ini
C:\Program Files\Veeam\Backup and Replication\Backup\Veeam.Backup.DBManager.ini
C:\Program Files\Veeam\Backup and Replication\Backup\Veeam.Backup.ServiceLib.ini
C:\Program Files\Veeam\Backup and Replication\Backup\Veeam.Backup.Interaction.MountService.ini
內容為:
0x04 數據庫憑據提取
【技術原創】Veeam Backup & Replication漏洞調試環境搭建
1.獲得數據庫連接配置
(1)獲得數據庫連接端口
打開SQL Server 2016 Configuration Manager,選擇SQL Server Services,可以看到SQL Server(VEEAMSQL2016)對應的Process ID為1756,如下圖
【技術原創】Veeam Backup & Replication漏洞調試環境搭建
查看進程對應的端口:netstat -ano|findstr 1756
返回結果:
【技術原創】Veeam Backup & Replication漏洞調試環境搭建
得到連接端口49720
(2)獲得數據庫名稱
方法1:
進入Configuration Database Connection Settings,在頁面中可以看到Database name為VeeamBackup,認證方式為Windows Authentication,如下圖
【技術原創】Veeam Backup & Replication漏洞調試環境搭建
方法2:
讀取注冊表鍵值:REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Veeam\Veeam Backup and Replication" /v SqlDatabaseName
2.數據庫連接
(1)使用界面程序
這里使用DbSchema
選擇SqlServer,配置如下圖
【技術原創】Veeam Backup & Replication漏洞調試環境搭建
成功連接如下圖
【技術原創】Veeam Backup & Replication漏洞調試環境搭建
數據庫選擇VeeamBackup.dbo,進入數據庫頁面,全局搜索關鍵詞password,得到相關的查詢語句:
【技術原創】Veeam Backup & Replication漏洞調試環境搭建
執行后獲得數據庫存儲的憑據信息,如下圖
【技術原創】Veeam Backup & Replication漏洞調試環境搭建
(2)使用Powershell
參考資料:https://github.com/sadshade/veeam-creds
veeam-creds在Veeam Backup and Replication 11及更高版本測試時會報錯,提示:
【技術原創】Veeam Backup & Replication漏洞調試環境搭建
這是因為https://github.com/sadshade/veeam-creds/blob/main/Veeam-Get-Creds.ps1#L32處使用了sqloledb,當前系統的sqloledb已經過期
這里可以選擇使用MSOLEDBSQL或MSOLEDBSQL19解決
查看當前系統是否安裝MSOLEDBSQL或MSOLEDBSQL19的Powershell命令:(New-Object System.Data.OleDb.OleDbEnumerator).GetElements() | select SOURCES_NAME, SOURCES_DESCRIPTION
返回結果示例:
【技術原創】Veeam Backup & Replication漏洞調試環境搭建
以上結果顯示當前系統安裝了MSOLEDBSQL19,所以只需要將sqloledb替換為MSOLEDBSQL19即可
補充:安裝MSOLEDBSQL或MSOLEDBSQL19的方法
下載地址:https://learn.microsoft.com/en-us/sql/connect/oledb/download-oledb-driver-for-sql-server?source=recommendations&view=sql-server-ver16
命令行安裝方法:msiexec /i msoledbsql.msi /qn IACCEPTMSOLEDBSQLLICENSETERMS=YES
安裝前需要滿足Microsoft Visual C++ Redistributable版本最低為14.34
查看Microsoft Visual C++ Redistributable版本的簡單方法:
通過文件夾名稱獲得:dir /o:-d "C:\ProgramData\Package Cache"
返回結果示例:
【技術原創】Veeam Backup & Replication漏洞調試環境搭建
從中可以得出Microsoft Visual C++ Redistributable版本為14.29.30037,需要安裝更高版本的Microsoft Visual C++ Redistributable,下載地址:https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170
x86和x64均需要安裝,veeam-creds運行成功如下圖
【技術原創】Veeam Backup & Replication漏洞調試環境搭建
0x05 CVE-2023-27532簡要分析
Y4er公布了調用CredentialsDbScopeGetAllCreds獲得明文憑據的POC:https://y4er.com/posts/cve-2023-27532-veeam-backup-replication-leaked-credentials/
1.憑據位置
此處的明文憑據對應的位置為:Veeam Backup & Replication Console->Manage Credentials,默認明文口令為空,如下圖
【技術原創】Veeam Backup & Replication漏洞調試環境搭建
調試斷點位置為Veeam.Backup.DBManager.dll->CCredentialsDbScope,如下圖
【技術原創】Veeam Backup & Replication漏洞調試環境搭建
2.數據解析
POC最終的返回結果為序列化之后的xml,將ParamValue作Base64解密后可以看到明文數據,但是格式不對,存在亂碼
這里可以調用Veeam自帶的dll反序列化數據,得到正確的格式
格式化輸出字符串的代碼示例:
【技術原創】Veeam Backup & Replication漏洞調試環境搭建
需要引用dll文件:
Veeam.Backup.Common.dll
Veeam.Backup.Configuration.dll
Veeam.Backup.Interaction.MountService.dll
Veeam.Backup.Logging.dll
Veeam.Backup.Model.dll
Veeam.Backup.Serialization.dll
Veeam.TimeMachine.Tool.dll
編譯生成的文件需要在本地安裝Veeam的環境下使用,否則報錯提示:
【技術原創】Veeam Backup & Replication漏洞調試環境搭建
【技術原創】Veeam Backup & Replication漏洞調試環境搭建
程序成功執行的結果示例如下圖
【技術原創】Veeam Backup & Replication漏洞調試環境搭建
0x06 小結
本文以CVE-2023-27532為例,介紹搭建Veeam Backup & Replication漏洞調試環境的相關問題和解決方法。



























