Action Plan - Solo Operator View
You're a 1-person IT department managing 23 fire districts. You don't have 9 teams. This collapses 48 files into 4 phases ordered by priority. Of those 48 files, you will actively touch about 6. The rest are reference and audit evidence.
Phase 0: Verify Backups (Before Anything Else)
Phase 1: Do Now (5 minutes)
TIER 1 AUTO-DEPLOYPath: Defender Security Center > Settings > Indicators > File hashes > Import
Blocks 37 known Interlock files (credential stealers, keyloggers, encryptors, RATs) on every MDE-enrolled endpoint.
Path: Sentinel > Watchlists > Add new > Upload CSV
Cross-correlates Interlock hashes with all log sources automatically.
Phase 2: This Week (2-4 hours across multiple sessions)
TIER 2 REVIEWSecurityEvent | take 1 in Sentinel. Zero results = you don't have on-prem AD logs. Skip this hunt.PREREQUISITE: M365 Defender connector active. Verify:
DeviceProcessEvents | take 1Phase 3: Read When Ready (15 minutes)
TIER 3 CONTEXTIf Something Goes Wrong
Executive Summary
Interlock ransomware actors have targeted critical infrastructure and businesses across North America since September 2024. They use drive-by downloads from compromised websites and ClickFix social engineering (fake CAPTCHA prompts users to paste malicious PowerShell) for initial access. Post-compromise, actors deploy credential stealers (cht.exe), keyloggers (klg.dll), and use Kerberoasting to escalate to domain admin. They exfiltrate data using Azure Storage Explorer and AzCopy before deploying AES+RSA encryption with .interlock extension. Double extortion via Tor leak site.
Why this matters to San Juan County Fire: Your M365/Azure environment is both the attack surface AND the exfiltration channel. Interlock actors use YOUR tools (Azure Storage Explorer, AzCopy) to steal YOUR data through YOUR cloud infrastructure. With 23 districts sharing credentials and RDP access, a single compromised volunteer workstation could cascade across the entire county. The Friday Harbor $500K ransomware incident matches this exact operational pattern.
Stack Relevance Assessment
| Component | Your Stack | Exposure | KTLYST Coverage |
|---|---|---|---|
| Identity | Entra ID / Active Directory | Direct Target | Kerberoasting detection, domain admin abuse hunts, CA policy hardening |
| Cloud Storage | Azure / M365 | Direct Target | Azure Storage Explorer + AzCopy usage detection (T1530, T1567.002) |
| Endpoint | Microsoft Defender for Endpoint | Direct Target | 37 SHA-256 hash imports, PowerShell + RAT behavioral detections |
| SIEM | Microsoft Sentinel | Direct Target | KQL analytics rules for all 12 tactic phases |
| Remote Access | RDP / potential AnyDesk | Direct Target | Anomalous RDP detection, AnyDesk/PuTTY process alerts |
| Exchange Online | Indirect | ClickFix URL patterns, fake browser update attachment blocking |
Attack Chain - Interlock (from CISA AA25-203A)
IOC Sample (40 indicators from AA25-203A, Tables 3-4)
| File Name | SHA-256 | Role | Source |
|---|---|---|---|
| cht.exe | C20BABA26EBB596DE14B403B9F78DDC3C13CE9870EEA332476AC2C1DD582AA07 | Credential stealer | Page 4, Table 3 |
| klg.dll | A4F0B68052E8DA9A80B70407A92400C6A5DEF19717E0240AC608612476E1137E | Keylogger (logs to conhost.txt) | Page 4, Table 3 |
| conhost | 44887125aa2df864226421ee694d51e5535d8c6f70e327e9bcb366e43fd892c1 | Ransomware encryptor (masquerades as Windows) | Page 7, Table 3 |
| StorageExplorer.exe | 73a9a1e38ff40908bcc15df2954246883dadfb991f3c74f6c514b4cffdabde66 | Azure Storage browsing (exfiltration) | Page 8, Table 3 |
| AnyDesk.exe | 1a70f4eef11fbecb721b9bab1c9ff43a8c4cd7b2cafef08c033c77070c6fe069 | Remote access tool (lateral movement) | Page 7, Table 3 |
| cleanup.dll | 1845a910dcde8c6e45ad2e0c48439e5ab8bbbeb731f2af11a1b7bbab3bfe0127 | SystemBC proxy (C2 channel) | Page 7, Table 3 |
| ... 34 more hashes (37 SHA-256 + 3 SHA-1 total). Full list in iocs/full_ioc_list.json | |||
Sentinel Rule: Interlock Credential Stealer Execution (cht.exe)
TIER 2Sentinel Rule: Azure Exfiltration via AzCopy (T1567.002)
TIER 2Sentinel Rule: ClickFix PowerShell Execution (T1204.004)
TIER 2Sentinel Rule: Interlock Persistence via "Chrome Updater" Registry Key
TIER 2mde_ioc_import.csv - 37 SHA-256 Hashes from FBI Investigation
TIER 1 AUTO-DEPLOY READY| IndicatorType | IndicatorValue | Action | Title | Severity |
|---|---|---|---|---|
| FileSha256 | C20BABA26EBB596D...DD582AA07 | AlertAndBlock | Interlock - cht.exe credential stealer | High |
| FileSha256 | A4F0B68052E8DA9A...76E1137E | AlertAndBlock | Interlock - klg.dll keylogger | High |
| FileSha256 | 44887125aa2df864...3fd892c1 | AlertAndBlock | Interlock - conhost encryptor | High |
| FileSha256 | e86bb8361c436be9...81405cb1 | AlertAndBlock | Interlock - Encryptor variant | High |
| FileSha256 | 1845a910dcde8c6e...3bfe0127 | AlertAndBlock | Interlock - SystemBC proxy (cleanup.dll) | High |
| FileSha256 | 4b036cc9930bb424...96bd3e5 | Alert | Interlock - advanced_port_scanner.exe | Medium |
| ... 31 more rows. Full CSV: endpoint/mde_ioc_import.csv | ||||
Import via: Microsoft Defender Security Center > Settings > Indicators > File hashes > Import.
Or via TI Indicators API: POST /api/indicators with the full CSV contents.
What This Saves You
Without KTLYST: Irene reads 19 pages, manually copies 37 SHA-256 hashes from Tables 3-4, formats them into MDE import CSV with correct column headers, uploads them one by one. Time: 2-3 hours. Then repeats for detection rules, identity hardening, cloud monitoring.
With KTLYST: 40 hashes extracted with filenames and context in 3.2 seconds. MDE import CSV generated with correct schema. Irene opens Defender Security Center, clicks Import, selects the file. Time: 2 minutes. Same file distributed to all 23 districts.
Kerberoasting Detection (T1558.003)
TIER 2RDP Lateral Movement Hunt (T1021.001)
TIER 2Identity Checklist
TIER 3Endpoint Visibility Assessment - Microsoft Defender for Endpoint
This tells your team exactly what MDE can and cannot see across the 8-step Interlock attack chain from CISA AA25-203A.
visibility_assessment.md
TIER 3| # | Attack Step | Layer | MDE Visibility | What MDE Sees |
|---|---|---|---|---|
| 1 | Drive-by download / fake browser update | BROWSER | PARTIAL | SmartScreen may flag download. File creation in Downloads folder visible. Browser-side compromise invisible. |
| 2 | ClickFix: paste PowerShell into Run dialog | ENDPOINT | HIGH | DeviceProcessEvents: powershell.exe with -EncodedCommand launched from explorer.exe. Strong detection signal. |
| 3 | RAT persistence: Startup folder + registry key | ENDPOINT | HIGH | DeviceRegistryEvents: "Chrome Updater" run key creation. DeviceFileEvents: file drop in Startup folder. |
| 4 | Credential theft: cht.exe + klg.dll | ENDPOINT | HIGH | DeviceProcessEvents: cht.exe execution. DeviceFileEvents: klg.dll load, conhost.txt creation. Hash match on IOC import. |
| 5 | Kerberoasting for domain admin | AUTH | PARTIAL | MDE sees network traffic to DC. Primary detection in SecurityEvent 4769 (domain controller logs), not endpoint. |
| 6 | RDP + AnyDesk lateral movement | NETWORK | HIGH | DeviceLogonEvents: RDP logons. DeviceProcessEvents: AnyDesk.exe, putty.exe execution with hash match. |
| 7 | Azure exfil: StorageExplorer + AzCopy | CLOUD | PARTIAL | DeviceProcessEvents: StorageExplorer.exe / azcopy.exe launch. But actual data transfer to Azure blob is cloud-layer. |
| 8 | Ransomware: conhost.exe encryption | ENDPOINT | HIGH | DeviceProcessEvents: conhost.exe (non-standard path). DeviceFileEvents: mass .interlock extension. Hash match. |
Detection Gap Matrix - Interlock (AA25-203A)
Maps every attack step to KTLYST-generated detection rules. Shows what's covered, what's partial, and where red team should focus.
detection_gap_matrix.md
TIER 3| # | Attack Step (from AA25-203A) | Layer | Status | KTLYST Rule / Coverage | Red Team Action |
|---|---|---|---|---|---|
| 1 | Drive-by / fake update download | BROWSER | PARTIAL | MDE SmartScreen + KTLYST hash import for fake update filenames (FortiClient.exe, GlobalProtect.exe, etc.) | Test: download masquerading file, verify SmartScreen + hash block |
| 2 | ClickFix PowerShell execution | ENDPOINT | COVERED | sentinel_rules.json: Base64 PowerShell from Run dialog detection | Validate: paste encoded PowerShell via Win+R, verify alert fires |
| 3 | Startup folder + "Chrome Updater" registry | ENDPOINT | COVERED | sentinel_rules.json: DeviceRegistryEvents "Chrome Updater" run key + Startup folder file drop | Validate: create test run key named "Chrome Updater" |
| 4 | cht.exe + klg.dll credential theft | ENDPOINT | COVERED | mde_ioc_import.csv (Tier 1 auto-deploy): hash-based block on both files | Validate: attempt to execute test file matching hash, verify block |
| 5 | Kerberoasting domain admin compromise | AUTH | COVERED | entra_kerberoast_detection.kql: SecurityEvent 4769 with RC4 encryption + volume threshold | TEST: Run Rubeus kerberoast in test domain, verify 4769 alert threshold |
| 6 | RDP + AnyDesk lateral movement | NETWORK | COVERED | RDP hunt: admin account accessing 3+ machines in 4h. AnyDesk.exe hash block via IOC import. | Validate: RDP to 3 machines with same admin account |
| 7 | Azure exfil via StorageExplorer + AzCopy | CLOUD | PARTIAL | azure_storage_exfil_detection.kql: process-level detection. Cloud-layer (StorageBlobLogs) monitoring recommended. | TEST: Run AzCopy upload, verify both process alert AND blob log capture |
| 8 | conhost.exe ransomware encryption | ENDPOINT | COVERED | MDE built-in ransomware protection + KTLYST hash import + .interlock extension detection | Validate: Atomic Red Team T1486 (safe simulation) |
For the consortium: This same coverage applies to all 23 districts. The Tier 1 hash imports (37 SHA-256 values) protect every endpoint immediately. The Tier 2 behavioral rules catch the attack pattern even if Interlock changes their file hashes.
Zero-Inference Provenance Chain
Every rule, every IOC, every detection traces back to a specific page, paragraph, and table in CISA Advisory AA25-203A (July 22, 2025). Nothing is inferred. Nothing is hallucinated. If KTLYST can't cite it, it doesn't generate it.
Provenance Example: Credential Stealer Detection Rule
| Layer | Artifact | Source Reference |
|---|---|---|
| Source | CISA Advisory AA25-203A (#StopRansomware: Interlock) | Published July 22, 2025 | Authors: FBI, CISA, HHS, MS-ISAC | TLP:CLEAR | 19 pages |
| Extraction | IOC: cht.exe SHA-256 C20BABA26EBB596D...DD582AA07 | Page 7, Table 3, Row "cht.exe" | Context: Page 4: "download a credential stealer (cht.exe) [TA0006]" |
| Enrichment | ATT&CK: TA0006 (Credential Access), T1056.001 (Keylogging) | Behavioral pattern: credential stealer + keylogger deployment post-compromise |
| Layer Routing | endpoint -> DeviceProcessEvents (file execution detection) | File hash indicator routed to endpoint process monitoring |
| Compilation | KQL Rule: DeviceProcessEvents | where SHA256 in (...) | Compiled from 2 credential-theft hashes (cht.exe + klg.dll) with same attack pattern |
| Packaging | endpoint/mde_ioc_import.csv + detection/sentinel_rules.json | Routed to 2 team folders: Tier 1 (hash import) + Tier 2 (behavioral rule) |
| Audit | metadata/generation_audit.jsonl | Full pipeline trace with timestamps, hash counts, and source verification |