Contents
MITRE ATT&CK coverage — 6 techniques across 5 tactics
| Tactic / Technique | Name | Rules |
|---|---|---|
| Execution / T1204.002 | Malicious File | enc_c2.exe Process Execution (SIGMA, Hunting) |
| Persistence / T1547.001 | Registry Run Keys / Startup Folder | Registry Persistence Key Referencing Build Identifiers (SIGMA, Hunting) |
| Stealth / T1622 | Debugger Evasion | TEB-Based Anti-Debug Stall Loop (YARA, Hunting); enc_c2.exe Process Access with Sleep in the Call Trace (Call-Stack Corroboration) (SIGMA, Hunting) |
| Command and Control / T1071.001 | Web Protocols | RaaS Builder ID & C2 Beacon Schema Combination (YARA, Detection); Tor C2 Beacon Endpoint Path (YARA, Hunting); HTTP POST to Tor Hidden-Service C2 Beacon Endpoint (SIGMA, Detection); C2 Beacon POST to /c2/beacon.php (Host Not Tested) (SURICATA, Detection) |
| Command and Control / T1090.003 | Multi-hop Proxy | Tor C2 Beacon Endpoint Path (YARA, Hunting); HTTP POST to Tor Hidden-Service C2 Beacon Endpoint (SIGMA, Detection); C2 Beacon POST to /c2/beacon.php (Host Not Tested) (SURICATA, Detection) |
| Impact / T1486 | Data Encrypted for Impact | RaaS Builder ID & C2 Beacon Schema Combination (YARA, Detection); Ransom Note Text with Supporting Ransomware Artifact (YARA, Hunting); Bulk-Capable File Creation with .locked Extension (SIGMA, Hunting) |
Campaign: Arsenal-237-EncC2-Ransomware-TorC2 Date: 2026-01-27 Author: The Hunters Ledger License: CC BY 4.0 IOC Feed: https://the-hunters-ledger.com/ioc-feeds/arsenal-237-enc_c2-exe.json
Detection Coverage Summary
enc_c2.exe is a 64-bit Rust-compiled Windows ransomware executable belonging to the Arsenal-237 toolkit. It encrypts victim files with ChaCha20 and appends a .locked extension, drops a README.txt ransom note, and exfiltrates the victim ID, hostname, OS details, and the ChaCha20 decryption key to a Tor hidden-service C2 endpoint via an HTTP POST beacon carrying a JSON payload. The sample includes a TEB-based anti-debugging stall loop and, per static analysis, uses a single-run execution model with no persistence mechanism. The TEST_BUILD_001 builder identifier embedded in the sample indicates a beta/test build of the toolkit rather than a production affiliate release.
Coverage below is retiered from the original draft against the project’s Detection/Hunting/Cut split: every rule was re-scored for durability (does it survive infrastructure rotation and rebuild?), precision (documented false-positive profile), and level discipline. The most durable detection surface is the C2 beacon’s URI/method/content-type combination, which survives onion-address rotation; process- and file-name-based rules are capped at Hunting because they depend on literals (the executable name, the .locked extension, the ransom-note filename) the operator can trivially change in a rebuild. The confirmed file hashes and C2 onion address are carried in the IOC feed rather than as standalone rules.
| Rule Type | Detection | Hunting | MITRE Techniques Covered | Atomics → feed |
|---|---|---|---|---|
| YARA | 1 | 3 | T1486, T1071.001, T1090.003, T1622 | 1 |
| Sigma | 1 | 4 | T1204.002, T1486, T1071.001, T1090.003, T1547.001, T1622 | 0 |
| Suricata | 1 | 0 | T1071.001, T1090.003 | 0 |
Detection vs Hunting: Detection rules are high-fidelity and evasion-resilient, safe to alert on. Hunting rules are broader, for scoping and threat-hunting. Expect to review the hits.
Atomics routed to the IOC feed: the confirmed file hashes (SHA-256, SHA-1, MD5) and the Tor C2 onion address (rustydl5ak6p6ajqnja6qzkxvp5huhe4olpdsq5oy75ea4o34aalpkqd.onion) were already present in arsenal-237-enc_c2-exe.json before this retiering pass. The standalone file-hash YARA rule and the redundant onion-address branches removed from the Sigma and Suricata C2-beacon rules added no detection value beyond those feed entries. See Coverage Gaps for the full reasoning on every retired or rewritten rule.
YARA Rules
/*
Yara Rule Set
Identifier: Arsenal-237-EncC2-Ransomware-TorC2
Author: The Hunters Ledger
Source: https://the-hunters-ledger.com/
License: CC BY 4.0 - https://creativecommons.org/licenses/by/4.0/
*/
Detection Rules
RaaS Builder ID & C2 Beacon Schema Combination
Tier: Detection
Robustness: 2
ATT&CK Coverage: T1071.001 (Web Protocols — C2 JSON schema), T1486 (Data Encrypted for Impact — encryption_key field)
Confidence: HIGH
Rationale: The rule ORs two branches. The second — builder_id + encryption_key + victim_id + machine_info co-occurring — is the malware’s specific C2/builder-tracking JSON field-name schema; this four-way combination survives a rebuild with a different builder ID, a different onion address, or a renamed binary, since it doesn’t depend on any of those. The first branch (TEST_BUILD_001 + builder_id) is weaker in isolation but only widens coverage for this specific beta build without weakening the combination’s overall precision.
False Positives: None expected for the four-field branch: unrelated software would need to coincidentally embed builder_id, victim_id, encryption_key and machine_info together, which is not a pattern seen outside this RaaS builder’s schema. The first branch needs only TEST_BUILD_001 and builder_id. The rule has no file-type or size gate, so any file that holds those strings matches, including a report or analysis note that quotes the schema.
Blind Spots: Won’t match a build that obfuscates or encrypts its JSON field-name strings, or that replaces the JSON/serde schema with a binary serialization format.
Validation: Verified against the confirmed sample’s embedded C2 beacon schema (builder_id, victim_id, encryption_key, machine_info fields) and the TEST_BUILD_001 identifier documented in static analysis.
rule raas_builder_tracking {
meta:
description = "Detects the Arsenal-237 ransomware's RaaS builder/C2 JSON schema (builder_id, victim_id, encryption_key, machine_info) or the confirmed TEST_BUILD_001 builder identifier together with the builder_id field name"
author = "The Hunters Ledger"
reference = "https://the-hunters-ledger.com/hunting-detections/arsenal-237-enc_c2-exe-detections/"
date = "2026-01-26"
malware_type = "Ransomware (RaaS)"
severity = "HIGH"
strings:
$builder_id_default = "TEST_BUILD_001" ascii
$builder_id_generic = "builder_id" ascii
$victim_id = "victim_id" ascii
$encryption_key = "encryption_key" ascii
$machine_info = "machine_info" ascii
condition:
(($builder_id_default and $builder_id_generic) or
($builder_id_generic and $encryption_key and $victim_id and $machine_info))
}
Hunting Rules
Tor C2 Beacon Endpoint Path
Tier: Hunting
Robustness: 1
ATT&CK Coverage: T1090.003 (Multi-hop Proxy — Tor), T1071.001 (Web Protocols)
Confidence: MODERATE
Rationale: Anchored on the C2 beacon’s endpoint-path literals (/c2/beacon.php, POST /c2/beacon.php), which a rebuilt binary can trivially change. Renameable, so it caps at Hunting rather than Detection.
False Positives: Low but not zero; an unrelated PHP-backed application using the identical endpoint path is theoretically possible but not expected.
rule tor_hidden_service_c2_endpoint {
meta:
description = "Detects the Arsenal-237 ransomware's C2 beacon endpoint path strings (Tor hidden-service JSON beacon). Renameable in a rebuilt binary; hunting signal, not a high-confidence alert"
author = "The Hunters Ledger"
reference = "https://the-hunters-ledger.com/hunting-detections/arsenal-237-enc_c2-exe-detections/"
date = "2026-01-26"
malware_type = "C2 Infrastructure"
severity = "MEDIUM"
strings:
$c2_endpoint = "/c2/beacon.php" ascii
$c2_protocol = "POST /c2/beacon.php" ascii
condition:
any of them
}
Ransom Note Text with Supporting Ransomware Artifact
Tier: Hunting
Robustness: 1
ATT&CK Coverage: T1486 (Data Encrypted for Impact)
Confidence: MODERATE
Rationale: Requires the sample’s distinctive ransom-note text plus at least one supporting string. The ransom message is a deliberate, renameable branding choice for the next campaign build, so this stays Hunting rather than Detection.
False Positives: Low; the anchor string (YOUR FILES HAVE BEEN ENCRYPTED!) is distinctive, though the supporting strings alone (README.txt, ureq) are common and could not trigger a match without the anchor.
rule enc_c2_ransomware_operations {
meta:
description = "Detects the Arsenal-237 ransomware's ransom note text combined with at least one supporting operational string (encrypted-file extension, ransom note filename, embedded process name, or HTTP client library)"
author = "The Hunters Ledger"
reference = "https://the-hunters-ledger.com/hunting-detections/arsenal-237-enc_c2-exe-detections/"
date = "2026-01-26"
malware_type = "Ransomware"
severity = "MEDIUM"
strings:
$ransom_msg = "YOUR FILES HAVE BEEN ENCRYPTED!" ascii
$ransom_note = "README.txt" ascii
$encrypted_extension = ".locked" ascii
$enc_c2_executable = "enc_c2.exe" ascii
$http_client = "ureq" ascii
condition:
$ransom_msg and 1 of ($ransom_note, $encrypted_extension, $enc_c2_executable, $http_client)
}
TEB-Based Anti-Debug Stall Loop
Tier: Hunting
Robustness: 1
ATT&CK Coverage: T1622 (Debugger Evasion)
Confidence: LOW
Rationale: Keys on the NtCurrentTeb string together with at least one of the StackBase string or a Sleep call byte pattern (1000 ms or 5000 ms) — the TEB stack-base validation primitive and its Sleep-based stall, either of which alone satisfies the second half of the condition. Description fix 2026-10-10: this line and the meta description said the stack-base primitive PLUS a Sleep stall, but the condition is $teb_api and ($sleep_loop or $sleep_1000 or $stack_base); the wording now matches. Evidence status (round 2, 2026-10-10): NtCurrentTeb and StackBase are identifiers from the decompiler pseudocode in the companion report (lines 513-545), which does not show that either string is present in the compiled binary, and the two Sleep byte patterns are 32-bit-style push imm32 / indirect call shapes while the report describes an x64 build; none of the four was extracted from the sample. This rule is therefore a technique-class heuristic that has not been shown to match the sample it is named after, so Robustness is lowered from 2 to 1 and confidence to LOW. TEB stack-base validation is a publicly documented, widely reused anti-debug technique also present in unrelated anti-cheat, DRM, and anti-tamper software, so a match indicates the technique, not this malware family specifically.
False Positives: Moderate; other legitimate software implementing the same public TEB anti-debug technique would also match.
rule teb_anti_debug_detection {
meta:
description = "Technique-class heuristic, not shown to match the Arsenal-237 sample (the strings come from decompiler pseudocode, not from the binary). Detects the NtCurrentTeb string together with at least one of the StackBase string or a Sleep call byte pattern (1000 ms or 5000 ms), the TEB (Thread Environment Block) stack-base anti-debugging check and Sleep-based stall loop described for the Arsenal-237 ransomware. Any one of the three qualifiers is enough, so the rule does not require both the stack-base string and a Sleep pattern. Also matches other software using the same publicly documented anti-debug technique"
author = "The Hunters Ledger"
reference = "https://the-hunters-ledger.com/hunting-detections/arsenal-237-enc_c2-exe-detections/"
date = "2026-01-26"
modified = "2026-10-10"
malware_type = "Anti-Analysis"
severity = "MEDIUM"
strings:
$teb_api = "NtCurrentTeb" ascii
$stack_base = "StackBase" ascii
$sleep_loop = { 68 88 13 00 00 FF 15 } // Push 0x1388 (5000ms) / Call Sleep
$sleep_1000 = { 68 E8 03 00 00 FF 15 } // Push 0x3E8 (1000ms) / Call Sleep
condition:
($teb_api and ($sleep_loop or $sleep_1000 or $stack_base))
}
Sigma Rules
Detection Rules
HTTP POST to Tor Hidden-Service C2 Beacon Endpoint
Tier: Detection
Robustness: 2
ATT&CK Coverage: T1071.001 (Web Protocols), T1090.003 (Multi-hop Proxy)
Confidence: HIGH
Rationale: Anchored to the POST method, .onion host suffix, and the confirmed /c2/beacon.php URI path together — a combination that survives onion-address rotation entirely, since no specific address is checked. This is the most durable network signal in the corpus.
False Positives: Unlikely; requires a POST request to any .onion host at this exact URI path.
Blind Spots: Requires network telemetry that resolves the HTTP layer of Tor-hidden-service traffic (a Tor-aware proxy or onion-resolving sensor); won’t fire if visibility is limited to raw SOCKS/relay traffic, or if a future build changes the beacon URI path.
Validation: Verified against the confirmed C2 beacon structure (POST method, .onion host, /c2/beacon.php endpoint, JSON body) documented in static analysis.
title: Network - HTTP POST to Tor Hidden-Service C2 Beacon Endpoint
id: 0491b05a-d2d9-43e4-b1e5-5415c8b71788
status: experimental
description: Detects HTTP POST requests to a .onion hidden-service host targeting the Arsenal-237 ransomware's confirmed C2 beacon URI path. Anchored to the URI/method/host-suffix combination rather than a specific onion address, so it survives infrastructure rotation.
references:
- https://the-hunters-ledger.com/hunting-detections/arsenal-237-enc_c2-exe-detections/
author: The Hunters Ledger
date: 2026-01-26
tags:
- attack.command-and-control
- attack.t1071.001
- attack.t1090.003
- stp.3
logsource:
product: firewall
category: http_request
detection:
selection:
http_method: POST
http_host|endswith: '.onion'
http_uri: '/c2/beacon.php'
condition: selection
falsepositives:
- Unlikely; requires a POST request to a .onion host at this exact URI path
level: critical
Hunting Rules
enc_c2.exe Process Execution
Tier: Hunting
Robustness: 1
ATT&CK Coverage: T1204.002 (Malicious File)
Confidence: MODERATE
Rationale: Filename/OriginalFileName-anchored only — defeated by renaming the binary in a rebuild. The original also OR’d in a standalone command-line branch matching generic flags (--folder, --c2, --bid) independent of the filename match; those flag names are usable by unrelated software, so that branch has been dropped and only the filename anchor retained.
False Positives: Unrelated software coincidentally named or renamed to enc_c2.exe.
title: enc_c2.exe Process Execution - Ransomware
id: c38ece37-0b38-4844-aa71-41814663daaf
status: experimental
description: Detects execution of a process image or PE OriginalFileName matching enc_c2.exe. Filename-based; defeated by renaming the binary in a rebuilt variant — hunting signal, not a high-confidence alert.
references:
- https://the-hunters-ledger.com/hunting-detections/arsenal-237-enc_c2-exe-detections/
author: The Hunters Ledger
date: 2026-01-26
logsource:
product: windows
category: process_creation
detection:
selection:
- Image|endswith: '\enc_c2.exe'
- OriginalFileName: 'enc_c2.exe'
condition: selection
falsepositives:
- Unrelated software coincidentally named or renamed to enc_c2.exe
level: medium
tags:
- attack.execution
- attack.t1204.002
Bulk-Capable File Creation with .locked Extension
Tier: Hunting
Robustness: 1
ATT&CK Coverage: T1486 (Data Encrypted for Impact)
Confidence: MODERATE
Rationale: The .locked extension is operator-chosen and renameable in a rebuild. The rule also has no volume threshold — a single file write fires it, where the underlying ransomware behavior is really a bulk pattern (dozens to hundreds of files in a short window). Both factors cap this at Hunting.
False Positives: Legitimate software using a .locked extension for lock/marker files; isolated, non-bulk file renames.
title: Ransomware - File Creation with .locked Extension
id: 9af9beea-9ea3-4e5b-ad1d-1bc229d936d0
status: experimental
description: Detects creation of files with a .locked extension appended, consistent with the Arsenal-237 ransomware's encryption output. Single-event trigger with no bulk-volume threshold; review for a genuine mass-encryption pattern rather than an isolated file.
references:
- https://the-hunters-ledger.com/hunting-detections/arsenal-237-enc_c2-exe-detections/
author: The Hunters Ledger
date: 2026-01-26
logsource:
product: windows
category: file_event
detection:
selection:
TargetFilename|endswith: '.locked'
filter_excludes:
TargetFilename|contains:
- '~$'
- 'Temp'
condition: selection and not filter_excludes
falsepositives:
- Legitimate software using a .locked extension for lock/marker files
- Isolated, non-bulk file renames
level: medium
tags:
- attack.impact
- attack.t1486
Registry Persistence Key Referencing Build Identifiers
Tier: Hunting
Robustness: 1
ATT&CK Coverage: T1547.001 (Registry Run Keys / Startup Folder)
Confidence: MODERATE
Rationale: The confirmed sample uses a single-run model with no observed persistence; this rule is forward-looking coverage for a future variant that adds registry-based persistence. It is keyed on enc_c2/TEST_BUILD_001, both build-specific identifiers that change across builds, capping it at Hunting.
False Positives: Unlikely; keyed on build-specific malware identifiers that would not appear in unrelated registry writes.
title: Registry - Persistence Key Referencing enc_c2/TEST_BUILD_001 Identifiers
id: 0ee562b4-ef75-4801-961d-a3479f9a0237
status: experimental
description: Detects a Run/RunOnce/Winlogon registry write whose value data contains the malware's 'enc_c2' or 'TEST_BUILD_001' build identifiers. The confirmed sample uses a single-run model with no observed persistence; this rule covers a future variant that adds registry-based persistence, keyed on identifiers that change across builds.
references:
- https://the-hunters-ledger.com/hunting-detections/arsenal-237-enc_c2-exe-detections/
author: The Hunters Ledger
date: 2026-01-26
logsource:
product: windows
category: registry_event
detection:
selection:
TargetObject|contains:
- 'Software\Microsoft\Windows\CurrentVersion\Run'
- 'Software\Microsoft\Windows\CurrentVersion\RunOnce'
- 'Software\Microsoft\Windows NT\CurrentVersion\Winlogon'
Details|contains:
- 'enc_c2'
- 'TEST_BUILD_001'
condition: selection
falsepositives:
- Unlikely; keyed on build-specific malware identifiers that would not appear in unrelated registry writes
level: medium
tags:
- attack.persistence
- attack.privilege-escalation
- attack.t1547.001
enc_c2.exe Process Access with Sleep in the Call Trace (Call-Stack Corroboration)
Tier: Hunting
Robustness: 1
ATT&CK Coverage: T1622 (Debugger Evasion)
Confidence: LOW
Rationale: Anchored to the same renameable enc_c2.exe filename as the process-execution rule, and requires call-stack-capable process_access telemetry that is not enabled by default in most Sysmon configurations. Telemetry limit (round 2, 2026-10-10): Sysmon Event 10 records CallTrace as module-and-offset frames (for example ntdll.dll+16bcc4|...), not function names or call arguments, and the report’s stall loop calls Sleep(1000) inside the process, which does not itself open another process. On stock Sysmon this rule therefore has no event it can match. It is kept only for an EDR or enriched telemetry profile whose process-access CallTrace carries resolved function names, and is marked as needing that telemetry rather than as Sysmon coverage. Retained for its corroboration value alongside the TEB anti-debug YARA rule, not as an independent high-confidence signal. Title fix 2026-10-10: the rule was titled “TEB Anti-Debug Sleep Loop Detection”, but the logic is the process image plus a Sleep-related call-trace substring, with no TEB test and no repetition; the title and description now say that.
False Positives: Legitimate applications with sleep loops (rate limiting, polling) that happen to be named or renamed to enc_c2.exe.
title: Process - enc_c2.exe Process Access with Sleep in the Call Trace
id: 72490224-3052-4aaf-adcb-38d4201e2d67
status: experimental
description: Detects process_access events whose source image is enc_c2.exe and whose call trace contains Sleep, SleepEx or 0x3E8, the kind of trace a TEB-based anti-debugging stall loop would leave. The rule does not test for TEB access and does not count repetition, so a single such event fires it. Filename-anchored. Needs EDR or enriched telemetry whose process_access call trace carries resolved function names; the stock Sysmon call trace holds module and offset frames only, so this rule does not match stock Sysmon events. It corroborates the technique covered by the TEB anti-debug YARA rule.
references:
- https://the-hunters-ledger.com/hunting-detections/arsenal-237-enc_c2-exe-detections/
author: The Hunters Ledger
date: 2026-01-26
modified: 2026-10-10
logsource:
product: windows
category: process_access
definition: 'Requires an EDR or enriched telemetry profile whose process-access CallTrace contains resolved function names or call arguments. Stock Sysmon Event ID 10 CallTrace holds module and offset frames only.'
detection:
selection:
SourceImage|endswith: 'enc_c2.exe'
CallTrace|contains:
- 'Sleep'
- 'SleepEx'
- '0x3E8' # 1000 milliseconds in hex
condition: selection
falsepositives:
- Legitimate applications with sleep loops (rate limiting, polling) that happen to be named/renamed to enc_c2.exe
level: medium
tags:
- attack.stealth
- attack.discovery
- attack.t1622
Suricata Signatures
Detection Rules
C2 Beacon POST to /c2/beacon.php (Host Not Tested)
Tier: Detection
Robustness: 2
ATT&CK Coverage: T1071.001 (Web Protocols), T1090.003 (Multi-hop Proxy)
Confidence: HIGH
Rationale: The published rule matched .onion in the http_uri buffer, but a standard request to this C2 (POST /c2/beacon.php with the domain in the Host header) never places .onion in the URI, so the AND-combined content match could not fire against the malware’s own documented traffic shape — and there was no content match for /c2/beacon.php at all despite it being named in msg. Rewritten to match the actual beacon path in the URI buffer and drop the redundant exact-domain http_host match (already carried in the IOC feed), which also makes the signature resilient to onion-address rotation.
False Positives: Unlikely; requires a POST whose URI contains /c2/beacon.php (an unanchored substring, so a longer path or a query string that contains it also matches) and a header block containing Content-Type: application/json.
Blind Spots: The rule tests no .onion host and no Tor marker: it fires on a POST to /c2/beacon.php with a JSON Content-Type to any external host, so a Tor hit and an ordinary-web hit look the same to it. It only sees traffic on a sensor that resolves the HTTP layer, which for a Tor-hidden-service C2 means a Tor-aware proxy or onion-resolving sensor, as for the Sigma equivalent. It is anchored to the /c2/beacon.php URI convention, so a rebuilt variant using a different endpoint path evades it.
Validation: Verified against the confirmed C2 beacon’s HTTP method, URI, and Content-Type header as documented in static analysis.
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"THL DETECT RANSOMWARE enc_c2.exe C2 Beacon - POST /c2/beacon.php (Host Not Tested)"; flow:to_server,established; http.method; content:"POST"; http.uri; content:"/c2/beacon.php"; http.header; content:"Content-Type: application/json"; reference:url,the-hunters-ledger.com/hunting-detections/arsenal-237-enc_c2-exe-detections/; classtype:trojan-activity; metadata:author The_Hunters_Ledger, date 2026-01-26; sid:9301201; rev:4;)
Coverage Gaps
No reliable persistence-based detection exists: the confirmed sample uses a single-run execution model with no observed persistence mechanism, so the registry rule above is forward-looking coverage for a hypothetical future variant rather than a signal this sample would itself trigger.
The C2 channel is Tor-only. Every network rule in this file (the Sigma HTTP rule and the Suricata signature) detects the HTTP layer of the beacon, which requires a sensor or proxy that resolves Tor hidden-service traffic to an inspectable HTTP request. A perimeter sensor with visibility limited to raw outbound SOCKS/relay traffic will not see this beacon at all.
Ransom-note content cannot be confirmed via the available telemetry: Sysmon file_event has no Contents field, so the literal ransom message text (“YOUR FILES HAVE BEEN ENCRYPTED!”) cannot be matched at the file-system-monitoring layer; only the YARA rule (which scans file contents directly) can confirm it. This is also why the README.txt-filename Sigma rule was cut rather than kept as a weaker signal. See below.
The suggested bulk-encryption threshold (tens to hundreds of files in a short window) is not expressed in any surviving rule; the .locked-extension Sigma rule fires per-file. Reaching Detection-grade precision on the encryption-volume behavior would require a stateful aggregation/correlation rule, which is out of scope for the base detection blocks carried here.
Retiering Fixes Applied
- YARA, ChaCha20 Cryptographic Constants: Cut. All four strings are generic cryptographic-library artifacts:
expand 32-byte kis the RFC 7539 ChaCha20 constant used by any implementation (WireGuard, TLS 1.3 stacks, age, and many other legitimate tools);aead-0.5.2andChacha_256_constantare Rustaead-crate build artifacts present in any binary depending on that crate;chacha20alone is a bare dictionary word. Theany of themcondition fires on the weakest of these. No malware-specific signal survives; not routed to the feed (a library artifact, not an indicator). - YARA, Rust Compilation Environment Artifacts: Cut.
2 of themover/root/.cargo/registry/src/,index.crates.io,rustc,stdis satisfied byrustc+stdalone, which appear in the overwhelming majority of Rust-compiled binaries regardless of maliciousness. This rule identifies “compiled with Rust,” not this malware. - YARA, Tor Hidden Service C2 Infrastructure: salvaged, retitled
tor_hidden_service_c2_endpoint, retiered to Hunting. The originalany of themcondition let the bare.onionstring alone (present in any Tor-related software) satisfy the match, and included the onion address as a rule literal despite the address already living in the IOC feed. Retained only the beacon endpoint-path strings (/c2/beacon.php,POST /c2/beacon.php); dropped.onionand the hardcoded address. - YARA, File Encryption & Ransomware Operations: condition tightened.
3 of themacross five strings allowed a match built entirely from the two most generic entries (README.txt,ureq) plus one more, without ever requiring the sample’s actual ransom-note text. Condition changed to require$ransom_msgplus one supporting string, so the match always includes the distinctive ransom message. - Sigma, enc_c2.exe Process Execution: generic CLI-flag branch dropped, retiered to Hunting, level demoted critical to medium. The
selection_commandlinebranch matched on--folder,--c2, or--bidalone, generic argument names usable by unrelated software, independent of the filename match, via a top-levelor. Retained only the filename/OriginalFileName selection. - Sigma, File Creation with .locked Extension: level demoted high to medium, retiered to Hunting. No volume threshold; a single
.lockedfile write fires the rule, and.locked/.lock-style marker files are used by some legitimate software. Needs a bulk-creation correlation rule (not expressed here) to reach Detection-grade precision. - Sigma, Ransom Note Creation (README.txt): Cut.
README.txtunder Users/Documents/Desktop is one of the most common benign filenames in existence; the source rule’s own description acknowledges Sysmon cannot confirm ransom-note content. No pivot value survives; not routed to the feed (a ubiquitous filename, not an indicator). - Sigma, HTTP POST to .onion Domain: redundant atomic branch dropped, retained as Detection. The
selection_targetbranch matched the onion address alone (already in the IOC feed) via a top-levelor, with no method/URI requirement. Retained only the POST +.onionhost-suffix +/c2/beacon.phpURI combination, which survives address rotation. - Sigma, Outbound Connection to Tor Entry Node: Cut. Two of the five hardcoded destination-IP prefixes (
198.51.100.and203.0.113.) are RFC 5737 TEST-NET documentation ranges that are never used for real routed traffic, indicating placeholder/unfilled data rather than verified Tor entry-node IPs. The remaining three prefixes are full /16-scale blocks with no citation tying them to Tor infrastructure. No genuine indicator survives; not routed to the feed. - Sigma, Registry persistence rule: title and description corrected, retiered to Hunting. The original title (“Absence of Ransomware Persistence Mechanisms”) and description (“verifies that systems do not contain persistence…”) described a negative/absence check, but the
detection:block is an ordinary positive selection that only fires when a Run/RunOnce/Winlogon value actually containsenc_c2orTEST_BUILD_001, the opposite of what the title claimed. Retitled to describe the rule’s actual (positive) logic; thefalsepositivesfield was corrected from a nonsensical “detects a negative condition” line to an honest assessment. - Suricata, Tor C2 Beacon (sid:9301201): buffer assignment fixed, redundant atomic branch dropped, retained as Detection. The published rule matched
.onionin thehttp_uribuffer, but a standard request to this C2 never places.onionin the URI, so the AND-combined content match could not fire against the malware’s own documented traffic shape, and there was no content match for/c2/beacon.phpat all despite it being named inmsg. Rewrote the URI match to the actual beacon path and dropped the redundanthttp_hostexact-domain match (already in the feed), making the signature both fireable and resilient to address rotation. - Suricata, Tor Entry Node Connection (sid:1000002): Cut. Destination ranges are three unsourced /16-scale blocks with no citation identifying them as Tor infrastructure, and the sole content match (
|16 03 01|, a TLS 1.0 record header) is present in nearly all TLS handshakes, so it adds no discriminating power. Not routed to the feed (not a validated indicator of this campaign’s infrastructure).
License
Detection rules are licensed under Creative Commons Attribution 4.0 International (CC BY 4.0).
Free to use, including commercially, with attribution to The Hunters Ledger.
Harrison, J. (2026). Detection Rules — enc_c2.exe (Arsenal-237 Ransomware). The Hunter's Ledger. https://the-hunters-ledger.com/hunting-detections/arsenal-237-enc_c2-exe-detections/. Published 27 January 2026.
BibTeX
@misc{hunters-ledger-arsenal-237-enc-c2-exe-detections,
author = {Harrison, Joseph},
title = {Detection Rules — enc_c2.exe (Arsenal-237 Ransomware)},
howpublished = {The Hunter's Ledger},
year = {2026},
month = {jan},
url = {https://the-hunters-ledger.com/hunting-detections/arsenal-237-enc_c2-exe-detections/},
note = {Published 27 January 2026. Licensed CC BY 4.0.}
}