From 1 to 5: How We Mapped a Post-Operation Endgame C2 Infrastructure
- Patrick Duggan
- Nov 26, 2025
- 4 min read
Updated: Aug 11
November 26, 2025 | Pattern 38 | TA585 Attribution | C2 Hunting
TL;DR
Started with 1 C2 IP. Ended with 5. Plus a Monero mining pool. Plus TA585 attribution. Plus 7 emails to FAANG security teams.
This is the story of following the breadcrumbs.
The Starting Point
We had one IP from our Pattern 38 supply chain attack investigation:
149.102.156.62 - Contabo GmbH, UK
That's it. One IP. The Stealc/Rhadamanthys beacon endpoint posting to `/5dc60508ab2db3b4.php`.
The question was: "Is this really all there is?"
Spoiler: It wasn't.
The Hunt
Step 1: Pivot from the Known C2
VirusTotal's behavior analysis is a goldmine. We queried the sandbox reports for samples communicating with our known C2:
mermaid
graph LR
subgraph "Known Infrastructure"
C1[149.102.156.62<br/>PRIMARY C2]
endsubgraph "Samples Contacting C2" S1[Sample 1] S2[Sample 2] S3[Sample 3] end
S1 --> C1 S2 --> C1 S3 --> C1
style C1 fill:#d32f2f,color:#fff ```
20 files communicating with this IP. Time to check what ELSE they talk to.
Step 2: Follow the Samples
Each malware sample doesn't just talk to one server. They have fallbacks, secondary payloads, build servers. We extracted the full network behavior:
mermaid
flowchart TD
subgraph "Attack Chain"
A[GitHub Issue Comment] -->|ZIP download| B[Malicious ZIP]
B -->|Extract & Execute| C[PowerShell Loader]
C -->|Download| D[zalupa.ps1 / ooewqi.ps1]
D -->|Execute| E[Main Payload]
E -->|Beacon| F[C2 Server]
E -->|Optional| G[Cryptominer]
endsubgraph "C2 Infrastructure" F --> F1[149.102.156.62<br/>Stealc Beacon] D --> D1[158.220.93.201<br/>Dropper #1] D --> D2[95.217.39.238<br/>Dropper #2] E --> E1[196.251.107.94<br/>Build Server] G --> G1[pool.supportxmr.com<br/>Monero Pool] end
style F1 fill:#d32f2f,color:#fff style D1 fill:#e65100,color:#fff style D2 fill:#e65100,color:#fff style E1 fill:#7b1fa2,color:#fff style G1 fill:#1565c0,color:#fff ```
Step 3: The Full Picture Emerges
Five C2 servers. All different providers. All different countries. But connected by the same malware samples.
mermaid
graph TB
subgraph "Geographic Distribution"
subgraph "UK - Contabo"
UK1[149.102.156.62<br/>vmi2910825]
UK2[158.220.93.201<br/>vmi2915473]
endsubgraph "Finland - Hetzner" FI1[95.217.39.238] end
subgraph "Hong Kong - Unknown" HK1[196.251.107.94:5553] end
subgraph "USA - IOFLOOD" US1[107.167.83.34] end end
UK1 -.->|"Sequential VMI<br/>Same Campaign"| UK2
style UK1 fill:#d32f2f,color:#fff style UK2 fill:#e65100,color:#fff style FI1 fill:#388e3c,color:#fff style HK1 fill:#7b1fa2,color:#fff style US1 fill:#1565c0,color:#fff ```
The Infrastructure Map
| IP | Country | Provider | ASN | VT Detections | Role | |----|---------|----------|-----|---------------|------| | 149.102.156.62 | 🇬🇧 UK | Contabo GmbH | 51167 | 12/95 | PRIMARY C2 - Stealc beacon | | 158.220.93.201 | 🇬🇧 UK | Contabo GmbH | 51167 | 0/95 | Payload dropper (zalupa.ps1) | | 95.217.39.238 | 🇫🇮 Finland | Hetzner | 24940 | 8/95 | Secondary dropper (ooewqi.exe) | | 196.251.107.94 | 🇭🇰 HK | Unknown | - | 10/95 | Build server (per-victim payloads) | | 107.167.83.34 | 🇺🇸 USA | IOFLOOD | 53755 | 1/95 | Bulletproof hosting |
DNS Attribution Gold
• `vmi2910825.contaboserver.net` (149.102.156.62)
• `vmi2915473.contaboserver.net` (158.220.93.201)
This means they were provisioned around the same time by the same actor. Same campaign. Same wallet.
Payload URLs
http://149.102.156.62/5dc60508ab2db3b4.php # Stealc C2 beacon (POST)
http://158.220.93.201/zalupa.ps1 # PowerShell loader (Russian naming)
http://158.220.93.201/taskhostcore.exe # Windows masquerading
http://95.217.39.238/ooewqi.ps1 # Random-named loader
http://95.217.39.238/ooewqi.exe # Secondary payload
http://196.251.107.94:5553/gimger.exe # HK build server
http://196.251.107.94:5553/[UUID]_crypted_build.exe # Per-victim builds
• `378eed24804b4bc0a0de7eb25c72e46a_build.bin`
• `8d0d8add1579482aa67eaafbc32b547a_crypted_build.exe`
• `993809c397854ef5906fcfe577c247a3_build.bin`
This is a builder infrastructure - custom payloads for each victim to evade hash-based detection.
Attribution: The TA585 Connection
mermaid
flowchart LR
subgraph "TA585 Known TTPs"
T1[GitHub Notifications]
T2[Rhadamanthys/Stealc]
T3[MaaS Model]
T4[Russian Forums]
endsubgraph "Pattern 38 Observed" P1[GitHub Issue Comments] P2[Rhadamanthys/Stealc] P3[MaaS Model] P4[Russian Naming<br/>zalupa.ps1] end
T1 -.->|"Same Vector<br/>Different Technique"| P1 T2 -.->|"Same Malware"| P2 T3 -.->|"Same Model"| P3 T4 -.->|"Same Origin"| P4
style T1 fill:#1976d2,color:#fff style T2 fill:#1976d2,color:#fff style P1 fill:#d32f2f,color:#fff style P2 fill:#d32f2f,color:#fff ```
The Evidence
1. Same delivery vector: GitHub-based (TA585 uses notifications, Pattern 38 uses issue comments) 2. Same malware families: Rhadamanthys, Stealc (both in TA585 arsenal per Proofpoint) 3. Timing correlation: Post-Operation Endgame (Nov 10-14, 2025) infrastructure rebuild 4. MaaS model: Russian-speaking forum sourced malware 5. Infrastructure pattern: Sequential Contabo VMI provisioning
Operation Endgame Context
• 1,025 servers used by Rhadamanthys
• 20 domains
• Searches at 11 locations in Germany, Greece, and Netherlands
Our Pattern 38 infrastructure appears to be the rebuild. Fresh Contabo servers, new dropper IPs, same malware families.
Attribution Confidence: 70% (MODERATE-HIGH)
Microsoft pulls this feed daily. AT&T pulls this feed daily. Starlink pulls this feed daily. Get the DugganUSA STIX feed — $9/mo →
The Bonus Find: Cryptominer Variant
Some samples also contact `pool.supportxmr.com` - a Monero mining pool.
mermaid
graph LR
subgraph "Dual-Purpose Malware"
M[Infected Host]
M -->|Steal Credentials| C2[Stealc C2]
M -->|Mine XMR| Pool[supportxmr.com]
endstyle C2 fill:#d32f2f,color:#fff style Pool fill:#ff9800,color:#fff ```
Stealc + Cryptominer = Maximum Monetization
Why choose one revenue stream when you can have both?
MITRE ATT&CK Mapping
mermaid
flowchart TD
subgraph "Initial Access"
T1566[T1566.002<br/>Spearphishing Link]
endsubgraph "Execution" T1204[T1204.002<br/>Malicious File] T1059[T1059.001<br/>PowerShell] end
subgraph "Defense Evasion" T1027[T1027<br/>Obfuscated Files] T1036[T1036<br/>Masquerading] end
subgraph "Credential Access" T1555[T1555.003<br/>Browser Credentials] end
subgraph "Command & Control" T1071[T1071.001<br/>Web Protocols] end
T1566 --> T1204 T1204 --> T1059 T1059 --> T1027 T1027 --> T1555 T1555 --> T1071
style T1566 fill:#1565c0,color:#fff style T1204 fill:#7b1fa2,color:#fff style T1059 fill:#7b1fa2,color:#fff style T1027 fill:#00897b,color:#fff style T1555 fill:#c62828,color:#fff style T1071 fill:#ef6c00,color:#fff ```
IOCs Summary
C2 IPs (Block These) ``` 149.102.156.62 158.220.93.201 95.217.39.238 196.251.107.94 107.167.83.34 ```
Malware Hashes (SHA256) ``` 23c909ea83cd7428a37189f228f4782693c1726381c886712135defca5924a68 4ac33e95d7d1bf205c8bd021886a8edc5d405d65389edb3b0c65d62c12ace47d 97c555e848aa65ab8e6710bc57ab80d280dae9bbac53eda89e659fb3b91a53b6 ```
Domains ``` pool.supportxmr.com (cryptominer) vmi2910825.contaboserver.net vmi2915473.contaboserver.net we.love.servers.at.ioflood.net ```
GitHub Accounts (Suspended) ``` FireSuper, rampubg14-cmyk, anuxagfr, winchmrsmilegodsgf, SorYoshino, starlet219 ```
GitHub Accounts (STILL ACTIVE - Report These) ``` storymatic, ecmrichard, giulialoregian, salhe2673-web, muanevn ```
STIX 2.1 Feed
All 31 indicators available in machine-readable format:
https://analytics.dugganusa.com/api/v1/stix-feed
The Lesson
One IP is never just one IP.
When you find C2 infrastructure, pivot: 1. Check what samples communicate with it 2. Check what ELSE those samples communicate with 3. Check DNS for attribution breadcrumbs 4. Check timing against known operations 5. Follow the follow-bots
The attackers built redundancy. Your detection should too.
Actions Taken
• 5 C2 IPs documented in STIX feed
• 7 FAANG security teams notified
• 6 GitHub accounts suspended (4 original + 2 from warnings)
• Blog published for public awareness
Feed subscribers get IOCs first. Bad actors get public shaming second.
*DugganUSA LLC - Minnesota-based threat intelligence*
*"The spice must flow. The IOCs must too."*
The cheapest, fastest, most accurate threat feed on the internet.
275+ enterprises pulling daily. 1M+ IOCs. 17.4M indexed documents. We beat Zscaler by 43 days on NrodeCodeRAT. Starter tier $9/mo — less than any competitor’s sales demo.
Was this useful? Thirty seconds, no cookies, no tracking, no third parties, your address hashed and never stored. If the box below does not load, the same question lives at https://analytics.dugganusa.com/nps.html?post=from-1-to-5-how-we-mapped-a-post-operation-endgame-c2-infrastructure




Comments