Veeam Forensic Investigation: DFIR Triage, Database Analysis, and Artifact Hunting
HERMES DFIR CAPABILITY SCORE & ARTIFACT DEPTH
Target:Veeam Backup & Replication Configuration DB, Service Logs & Volatile Memory Hermes DFIR Lab rates Veeam forensic depth at 95 (CRITICAL). In compromise investigations, the Veeam server contains the definitive evidentiary record of adversary actions: timestamped session logs reveal exactly which backups were staged or wiped, SQL audit tables log administrative modifications, and DPAPI registry keys indicate whether the adversary harvested the enterprise credential store.
Veeam Backup & ReplicationPRODUCT
1. The Incident Response Checklist: First 60 Minutes
Section titled โ1. The Incident Response Checklist: First 60 MinutesโUpon arriving at a suspected Veeam compromise, follow this sequential triage procedure to preserve evidentiary integrity while mitigating active data wiping.
Veeam DFIR Triage Sequence:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ Phase 1: Isolation (Prevent Outbound Data Wiping) โ โ - Disconnect network interfaces or enforce host isolation โ โ - DO NOT shut down (preserve RAM and DPAPI keys) โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โผ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ Phase 2: Live Volatile Memory Acquisition โ โ - WinPmem / LiME / DumpIt capture of full RAM โ โ - Capture network sockets: netstat -ano > netstat.txt โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โผ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ Phase 3: Configuration Database & Key Preservation โ โ - Snapshot PostgreSQL / MSSQL database instance โ โ - Export HKLM\SOFTWARE\Veeam registry hives โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โผ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ Phase 4: Forensic Log Extraction โ โ - Collect %ProgramData%\Veeam\Backup\ โ โ - Export Windows Security, System, and PowerShell EventLogs โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ2. Filesystem Artifacts & Log Hierarchy
Section titled โ2. Filesystem Artifacts & Log HierarchyโVeeam maintains an exhaustive, structured log repository under the hidden directory %ProgramData%\Veeam\Backup\. Understanding this structure is essential for manual and automated triage.
Veeam Backup & Replication Log Hierarchy:
C:\ProgramData\Veeam\Backup\ โโโ Svc.VeeamBackup.log <-- Core management engine activity & RPC transactions โโโ Svc.VeeamBroker.log <-- Console UI requests and broker API calls โโโ Svc.VeeamDataAnalyzer.log <-- Inline malware detection and entropy scanning logs โโโ VeeamThreatHunter.log <-- Threat Hunter service activities (.NET Remoting 6175) โโโ Svc.VeeamMount.log <-- Mount service & vPower NFS operations (TCP 6172) โโโ Svc.VeeamDeployment.log <-- Component package deployment and upgrade operations โโโ Malware_Detection_Logs\ <-- Suspicious file extensions, entropy anomalies, YARA matches โโโ Job_Sessions\ <-- Granular second-by-second logs per backup job run โโโ [Job_Name]\ <-- Dedicated directory for each configured backup jobCritical Log Files for Forensic Triage
Section titled โCritical Log Files for Forensic TriageโSvc.VeeamBackup.log: Records all administrative commands, job scheduling changes, repository status transitions, and credential lookups. Contains records ofRemoveBackuporDeleteFromDiskAPI invocations.Svc.VeeamMount.log: Must be inspected if CVE-2024-40711 is suspected. Look for unexpected client connections originating from non-backup IP addresses immediately prior to process creation events.VeeamThreatHunter.log: Primary investigative artifact for CVE-2026-44963. Records inbound.NET Remotingproxy bindings and unexpected object callbacks over TCP 6175.Svc.VeeamDataAnalyzer.log: Contains evidence of inline ransomware detection triggers. If a ransomware actor attempted to back up already-encrypted files, the entropy analyzer flags high-entropy blocks and known ransom extension strings (e.g.,.akira,.locked).
3. Windows Event Logs & OS Telemetry Correlation
Section titled โ3. Windows Event Logs & OS Telemetry CorrelationโCorrelating Veeam service logs with native Windows Event Logs provides proof of adversary execution and privilege escalation.
| Event Log Source | Event ID | Forensic Significance in Veeam Compromise |
|---|---|---|
| System | 7045 | Service Creation: Detects creation of rogue persistence services spawned during post-exploitation (e.g., PsExec services or backdoor tools). |
| Security | 4624 / 4625 | Logon Activity: Logon Type 3 (Network) or Logon Type 10 (RDP). Identifies unauthorized lateral movement onto the backup host. |
| Security | 4720 | User Account Creation: Threat actors exploiting CVE-2024-40711 routinely execute net user <name> /add immediately upon RCE. |
| Security | 4732 | Local Group Membership: Look for the newly created user being added to the local Administrators group. |
| PowerShell | 4104 | Script Block Logging: Captures execution of Veeam PowerShell cmdlets (e.g., Remove-VBRBackup, Get-VBRCredentials) used to dump secrets or wipe data. |
| Microsoft-Windows-VSS | 8194 / 13 | Volume Shadow Copies: Correlates commands attempting to delete local Windows shadow copies (vssadmin delete shadows). |
4. Configuration Database Forensics (PostgreSQL & MSSQL)
Section titled โ4. Configuration Database Forensics (PostgreSQL & MSSQL)โVeeam stores its entire state, infrastructure inventory, job definitions, and credential repository in a relational configuration database (PostgreSQL by default in v12+, MSSQL in legacy installations).
Sensitive Database Tables
Section titled โSensitive Database Tablesโ[dbo].[Credentials]: Stores the organizationโs privileged credentials. Thedatacolumn contains an XML blob with the username and the DPAPI-encrypted password string.[dbo].[Backup.Model.BackupJobs]: Records all configured backup jobs, source VMs, and schedule parameters.[dbo].[Backup.Model.JobSessions]: Contains the historical record of every executed backup, restore, or deletion session with exact start/end timestamps and initiator identities.[dbo].[AuditLog]/[dbo].[AuditEvents]: Records user actions performed via the Veeam console or REST API.
Forensic SQL Queries for Incident Response
Section titled โForensic SQL Queries for Incident Responseโ-- 1. Identify Deleted Backup Chains or Manual Backup ErasuresSELECT session_id, job_name, creation_time, end_time, result, descriptionFROM "Backup.Model.JobSessions"WHERE description ILIKE '%delete%' OR description ILIKE '%remove%' OR job_name ILIKE '%delete%'ORDER BY creation_time DESC;
-- 2. Audit All Configured Credentials in the DatabaseSELECT id, user_name, description, modification_date, account_typeFROM "dbo.Credentials"ORDER BY modification_date DESC;
-- 3. Detect Recent Changes to Backup Retention PoliciesSELECT id, name, schedule_enabled, last_modified, retention_daysFROM "Backup.Model.BackupJobs"ORDER BY last_modified DESC;-- 1. Identify Backup Purge and Deletion OperationsSELECT [session_id], [job_name], [creation_time], [end_time], [result], [description]FROM [VeeamBackup].[dbo].[Backup.Model.JobSessions]WHERE [description] LIKE '%delete%' OR [description] LIKE '%remove%'ORDER BY [creation_time] DESC;
-- 2. Extract Credential Modification TimestampsSELECT [id], [user_name], [description], [modification_date]FROM [VeeamBackup].[dbo].[Credentials]ORDER BY [modification_date] DESC;Deconstructing DPAPI Credential Dumping
Section titled โDeconstructing DPAPI Credential DumpingโThreat actors (including FIN7 and Akira) frequently extract stored credentials from Veeam using publicly documented techniques:
DPAPI Credential Extraction Mechanism:
1. Query Database: SELECT user_name, data FROM [dbo].[Credentials]; โ โผ 2. Parse XML Blob: <Credentials user="DOMAIN\Administrator" password="AQAAANCMnd8BFdERjHoAwE..."/> โ โผ 3. Retrieve Registry Salt (VBR v12.1+): HKLM\SOFTWARE\Veeam\Veeam Backup and Replication\Data -> Entropy Value โ โผ 4. Invoke DPAPI Native Decryption: [System.Security.Cryptography.ProtectedData]::Unprotect( $EncryptedBytes, $EntropyBytes, [System.Security.Cryptography.DataProtectionScope]::LocalMachine )Forensic Artifacts of Credential Theft:
Section titled โForensic Artifacts of Credential Theft:โ- Execution of unauthorized PowerShell processes importing
Veeam.Backup.Common.dllorSystem.Security.Cryptography. - PowerShell Event ID 4104 containing references to
Veeam-Get-Creds,SharpVeeamDecryptor,Unprotect, or[dbo].[Credentials]. - Anomalous read access to registry key
HKLM\SOFTWARE\Veeam\Veeam Backup and Replication\Dataoriginating from non-Veeam processes.
5. Hunting for Backup Sabotage & Exfiltration
Section titled โ5. Hunting for Backup Sabotage & ExfiltrationโPrior to launching ransomware, adversaries must neutralize backup repositories and frequently exfiltrate the backup files themselves.
1. Detecting Malicious Repository Deletion
Section titled โ1. Detecting Malicious Repository DeletionโAdversaries use either the Veeam PowerShell module or direct disk-level commands:
- PowerShell Snap-In Abuse:
Look for this exact command block in PowerShell Event ID 4104.
Terminal window Get-VBRBackup | Remove-VBRBackup -FromDisk -Confirm:$false - Low-Level Disk Wiping:
Adversaries execute
diskpart,vds.exe, orwbadminto wipe volumes:Check Windows Event ID 4688 (Process Creation) and theTerminal window echo select disk 1 > s.txt && echo clean >> s.txt && diskpart /s s.txtUSN Journalon storage volumes.
2. Hunting Backup Image Exfiltration (.vbk / .vib)
Section titled โ2. Hunting Backup Image Exfiltration (.vbk / .vib)โVeeam full backup files (.vbk) and incremental files (.vib) contain complete filesystem images. Adversaries frequently exfiltrate these archives to conduct off-site extortion:
- Network Exfiltration Tooling: Inspect SRUM (System Resource Usage Monitor), Shimcache, and Amcache for recent execution of tools like
rclone.exe,megasync.exe,7z.exe, orwinscp.exe. - Large Read Operations: Review SRUM table
NetworkDatafor unusually large data transfers (hundreds of gigabytes) directed to external cloud IPs.
6. Interactive DFIR Detection & Triage Toolkit
Section titled โ6. Interactive DFIR Detection & Triage Toolkitโ<#.SYNOPSIS Veeam Emergency DFIR Triage Collector.DESCRIPTION Collects critical Veeam service logs, queries local database state, and inspects event logs for exploitation artifacts.#>[CmdletBinding()]param ( [string]$DestinationPath = "C:\DFIR_Triage_Veeam")
Write-Host "[+] Initiating Veeam DFIR Triage..." -ForegroundColor CyanNew-Item -ItemType Directory -Path $DestinationPath -Force | Out-Null
# 1. Collect Core Veeam Service Logs$VeeamLogPath = "C:\ProgramData\Veeam\Backup"if (Test-Path $VeeamLogPath) { Write-Host "[+] Collecting core Veeam logs from $VeeamLogPath..." -ForegroundColor Green Copy-Item -Path "$VeeamLogPath\*.log" -Destination $DestinationPath -Force}
# 2. Extract Recent Rogue Account Creations (Event ID 4720)Write-Host "[+] Hunting for local account creation (Event ID 4720)..." -ForegroundColor GreenGet-WinEvent -FilterHashtable @{LogName='Security'; Id=4720} -MaxEvents 50 -ErrorAction SilentlyContinue | Select-Object TimeCreated, Id, Message | Export-Clixml -Path "$DestinationPath\AccountCreations_4720.xml"
# 3. Hunt for PowerShell Veeam Backup Removal Commands (Event ID 4104)Write-Host "[+] Inspecting PowerShell script blocks for backup deletion..." -ForegroundColor GreenGet-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-PowerShell/Operational'; Id=4104} -MaxEvents 500 -ErrorAction SilentlyContinue | Where-Object { $_.Message -match "Remove-VBRBackup" -or $_.Message -match "Unprotect" -or $_.Message -match "Credentials" } | Select-Object TimeCreated, Message | Export-Csv -Path "$DestinationPath\Suspicious_PowerShell_4104.csv" -NoTypeInformation
# 4. Capture Active Network Connections on Veeam PortsWrite-Host "[+] Dumping listening sockets and active connections..." -ForegroundColor GreenGet-NetTCPConnection | Where-Object { $_.LocalPort -in 6172, 6175, 9401, 9380 } | Select-Object LocalAddress, LocalPort, RemoteAddress, RemotePort, State, OwningProcess | Export-Csv -Path "$DestinationPath\Veeam_Sockets.csv" -NoTypeInformation
Write-Host "[+] Triage complete. Evidence archived in $DestinationPath." -ForegroundColor Cyantitle: Veeam Backup Chain Deletion via PowerShell Cmdletsid: a81f47d2-9b21-4d1e-8732-veeam-wipe-huntingstatus: productiondescription: Detects the execution of PowerShell commands using Veeam snap-ins to permanently delete backup archives from disk (Remove-VBRBackup -FromDisk).references: - https://helpcenter.veeam.com/docs/backup/powershell/remove-vbrbackup.htmlauthor: Hermes Codex DFIR Labdate: 2026-09-09logsource: category: ps_script product: windows definition: 'Requirements: Script Block Logging (Event ID 4104) enabled'detection: selection: ScriptBlockText|contains: - 'Remove-VBRBackup' - 'Remove-VBRServer' - 'DeleteFromDisk' condition: selectionfalsepositives: - Scheduled retention management scripts configured by verified system administrators (validate signature and scheduled task context)level: hightags: - attack.impact - attack.t1490 - attack.t1562.001// Microsoft Sentinel KQL: Detect mass file deletion of Veeam backup archives (.vbk, .vib)SecurityEvent| where EventID in (4660, 4663) // Object deleted / Access requested| where ObjectName endswith ".vbk" or ObjectName endswith ".vib"| where AccessMask in ("0x10000", "0x2") // DELETE access mask| summarize DeletedFilesCount = count(), StartTime = min(TimeGenerated), EndTime = max(TimeGenerated), TargetFiles = make_set(ObjectName, 20) by Account, Computer| where DeletedFilesCount > 3| order by DeletedFilesCount descrule HackTool_Veeam_Credential_Decryptor { meta: description = "Detects compiled binaries and scripts designed to decrypt Veeam DPAPI credentials" author = "Hermes Codex CTI" date = "2026-09-09" severity = "Critical" strings: $s1 = "Veeam-Get-Creds" ascii wide nocase $s2 = "SharpVeeamDecryptor" ascii wide nocase $s3 = "Veeam.Backup.Common.ProtectedStorage" ascii wide $s4 = "SELECT [user_name],[password] FROM [dbo].[Credentials]" ascii wide nocase $s5 = "HKLM:\\SOFTWARE\\Veeam\\Veeam Backup and Replication\\Data" ascii wide nocase $s6 = "CryptProtectData" ascii wide condition: 2 of ($s1, $s2, $s3) or ($s4 and ($s5 or $s6))}