Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Executes structured recovery from a ransomware incident following NIST and CISA frameworks, including environment isolation, forensic evidence preservation, clean infrastructure rebuild, prioritized system restoration from verified backups, credential reset, and validation against re-infection. Covers Active Directory recovery, database restoration, and application stack rebuild in dependency order. Activates for requests involving ransomware recovery, post-encryption restoration, or disaster recovery from ransomware.
.claude/skills/recovering-from-ransomware-attack/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-11 | ✗→✓ | ▲ Improved | — | — |
| case-01 | ✗→✓ | ▲ Improved | — | — |
| case-12 | ✗→✓ | ▲ Improved | — | — |
| case-03 | ✗→✓ | ▲ Improved | — | — |
| case-02 | ✓→✓ | = Same ✓ | — | — |
Do not use before completing containment and forensic scoping. Premature recovery without understanding the attacker's access and persistence mechanisms risks re-infection.
Build recovery infrastructure isolated from the compromised network:
bash# Create isolated recovery VLAN # No connectivity to compromised network segments # Dedicated internet access for patch downloads only (via proxy) # Recovery network architecture: # VLAN 999 (Recovery) - 10.99.0.0/24 # - Recovery workstations (10.99.0.10-20) # - Recovered DCs (10.99.0.50-55) # - Recovered servers (10.99.0.100+) # - Proxy for internet (10.99.0.1) - patches and updates only # Firewall rules: DENY all from recovery VLAN to production VLANs # Allow: Recovery VLAN -> Internet (HTTPS only, via proxy) # Allow: Recovery VLAN -> Backup infrastructure (restore traffic only)
Active Directory must be recovered before any domain-joined systems:
powershell# AD Recovery Procedure # Step 2a: Restore AD from known-good backup # Use DSRM (Directory Services Restore Mode) boot # 1. Build clean Windows Server from ISO # 2. Promote as DC using AD restore # 3. Restore System State from immutable backup # Verify AD backup is pre-compromise # Check backup timestamp against earliest known compromise date wbadmin get versions -backuptarget:E: -machine:DC01 # Restore system state in DSRM wbadmin start systemstaterecovery -version:02/15/2026-04:00 -backuptarget:E: -machine:DC01 -quiet # After restore, reset critical accounts # Reset krbtgt password TWICE (invalidates all Kerberos tickets) # This prevents Golden Ticket persistence Import-Module ActiveDirectory Set-ADAccountPassword -Identity krbtgt -Reset -NewPassword (ConvertTo-SecureString "NewKrbtgt2026!Complex#1" -AsPlainText -Force) # Wait for replication (minimum 12 hours), then reset again Set-ADAccountPassword -Identity krbtgt -Reset -NewPassword (ConvertTo-SecureString "NewKrbtgt2026!Complex#2" -AsPlainText -Force) # Reset all privileged account passwords $privilegedGroups = @("Domain Admins", "Enterprise Admins", "Schema Admins", "Administrators") foreach ($group in $privilegedGroups) { Get-ADGroupMember -Identity $group -Recursive | ForEach-Object { Set-ADAccountPassword -Identity $_.SamAccountName -Reset ` -NewPassword (ConvertTo-SecureString (New-Guid).Guid -AsPlainText -Force) Set-ADUser -Identity $_.SamAccountName -ChangePasswordAtLogon $true } } # Validate AD health dcdiag /v /c /d /e /s:DC01 repadmin /showrepl
bash# Scan backup files for ransomware artifacts before restoring # Use offline antivirus scanning on backup mount # Mount backup as read-only mount -o ro,noexec /dev/backup_lv /mnt/backup_verify # Scan with ClamAV clamscan -r --infected --log=/var/log/backup_scan.log /mnt/backup_verify # Check for known ransomware indicators find /mnt/backup_verify -name "*.encrypted" -o -name "*.locked" \ -o -name "*.lockbit" -o -name "DECRYPT_*" -o -name "readme.txt" \ -o -name "RECOVER-*" -o -name "HOW_TO_*" | tee /var/log/ransomware_check.log # Verify database consistency (SQL Server example) # Restore database to temporary instance for validation RESTORE VERIFYONLY FROM DISK = '/mnt/backup_verify/databases/erp_db.bak' WITH CHECKSUM
Follow dependency-based recovery sequence:
Recovery Order:
Phase 1 (Hours 0-4): Identity & Infrastructure
1. Domain Controllers (AD, DNS, DHCP)
2. Certificate Authority (if applicable)
3. Core network services (DHCP, NTP)
Phase 2 (Hours 4-12): Critical Business Systems
4. Database servers (SQL, Oracle, PostgreSQL)
5. Core business applications (ERP, CRM)
6. Email (Exchange, M365 hybrid)
Phase 3 (Hours 12-24): Important Systems
7. File servers
8. Web applications
9. Monitoring and security tools (SIEM, EDR)
Phase 4 (Hours 24-48): Remaining Systems
10. Development environments
11. Archive systems
12. Non-critical applicationspowershell# Veeam Instant Recovery - fastest restore for VMware/Hyper-V # Boots VM directly from backup file, then migrates to production storage # Instant recovery for Tier 1 system Start-VBRInstantRecovery -RestorePoint (Get-VBRRestorePoint -Name "DC01" | Sort-Object CreationTime -Descending | Select-Object -First 1) ` -VMName "DC01-Recovered" ` -Server (Get-VBRServer -Name "esxi01.recovery.local") ` -Datastore "recovery-datastore" # After validation, migrate to production storage Start-VBRQuickMigration -VM "DC01-Recovered" ` -Server (Get-VBRServer -Name "esxi01.prod.local") ` -Datastore "production-datastore"
Before connecting recovered systems to production:
powershell# Check for persistence mechanisms # Scheduled Tasks Get-ScheduledTask | Where-Object {$_.State -ne "Disabled"} | Select-Object TaskName, TaskPath, State, Author | Export-Csv C:\recovery\scheduled_tasks.csv # Services Get-Service | Where-Object {$_.StartType -eq "Automatic"} | Select-Object Name, DisplayName, StartType, Status | Export-Csv C:\recovery\auto_services.csv # Startup items Get-CimInstance Win32_StartupCommand | Select-Object Name, Command, Location, User | Export-Csv C:\recovery\startup_items.csv # WMI event subscriptions (common persistence) Get-WmiObject -Namespace root\subscription -Class __EventFilter Get-WmiObject -Namespace root\subscription -Class __EventConsumer # Registry run keys Get-ItemProperty "HKLM:\Software\Microsoft\Windows\CurrentVersion\Run" Get-ItemProperty "HKLM:\Software\Microsoft\Windows\CurrentVersion\RunOnce" Get-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run" # Verify no unauthorized admin accounts Get-LocalGroupMember -Group "Administrators" Get-ADGroupMember -Identity "Domain Admins" # Apply latest patches before connecting to production Install-WindowsUpdate -AcceptAll -AutoReboot
Phase 1: Reconnect identity infrastructure
- DCs online in production VLAN
- Validate replication and authentication
- Monitor for suspicious authentication patterns
Phase 2: Reconnect Tier 1 systems
- One system at a time
- Monitor EDR for 1 hour before proceeding to next
- Validate application functionality
Phase 3: Reconnect remaining systems
- Groups of 5-10 systems
- Continue monitoring for re-infection indicators
Throughout: SOC monitoring on high alert
- EDR in aggressive blocking mode
- All previous IOCs loaded in detection rules
- Canary files deployed on recovered systems| Term | Definition | |------|------------| | DSRM | Directory Services Restore Mode: special boot mode for domain controllers that allows AD database restoration | | krbtgt Reset | Resetting the krbtgt account password twice invalidates all Kerberos tickets, defeating Golden Ticket persistence | | Instant Recovery | Backup technology that boots a VM directly from backup storage for immediate availability while migrating data in background | | Evidence Preservation | Maintaining forensic images and logs before recovery begins, required for law enforcement and insurance claims | | Clean Build | Rebuilding systems from trusted installation media rather than attempting to clean infected systems | | Dependency Chain | The order in which systems must be recovered based on service dependencies (e.g., AD before domain members) |
Context: A manufacturer with 300 servers has 80% of infrastructure encrypted by LockBit. Immutable backups from 48 hours ago are verified clean. Production lines are down, costing $500K/day.
Approach:
Pitfalls:
## Ransomware Recovery Status Report
**Incident ID**: [ID]
**Recovery Start**: [Timestamp]
**Current Phase**: [1-4]
**Estimated Completion**: [Timestamp]
### Recovery Progress
| Phase | Systems | Status | Started | Completed | RTO Target |
|-------|---------|--------|---------|-----------|------------|
| 1 - Identity | DC01, DC02, DNS | Complete | HH:MM | HH:MM | 4 hours |
| 2 - Critical | ERP, DB01, DB02 | In Progress | HH:MM | -- | 12 hours |
| 3 - Important | FS01, Email, Web | Pending | -- | -- | 24 hours |
| 4 - Remaining | Dev, Archive | Pending | -- | -- | 48 hours |
### Validation Checklist
- [ ] AD integrity verified (dcdiag, repadmin)
- [ ] krbtgt password reset (2x with interval)
- [ ] All admin passwords reset
- [ ] Persistence mechanisms scanned
- [ ] EDR deployed and active on recovered systems
- [ ] IOCs loaded in detection rules
- [ ] Canary files deployed| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-07 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-04 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-11 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-21 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-15 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-19 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-01 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-13 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-22 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-17 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-02 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-12 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-08 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-18 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-09 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-14 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-16 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-06 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-05 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-20 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-03 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-10 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +18 percentage points is the difference between those two pass rates over the 22 comparable cases.
The per-case answers from this run were removed by the retention sweep, so the case table below shows the verdicts without the text either arm produced. The counts above were recorded at the time and are unaffected. Answers are now kept for 180 days.
Other measured skills in the registry, with their headline benchmark lift.