Builder profile
Configuration and the concrete fork must be attributed before any behavioural claim.
Version assembly traits and configuration fields.
Bound to primary researchMalware Analysis / Artefact: MessagePack/MsgPack.cs · SHA-256 4482252b1a6d…
Static review of the open C# codebase: compressed MessagePack, handlers, plugins, persistence and variant risk.
No independent sample, runtime, C2 or campaign verification.
With AsyncRAT, the useful boundary lies between open code and a specific abuse case. The report reads the message parser and plugin paths as a protocol surface, not as proof of a particular campaign.
4482252b1a6de7070336649c58cb3329eed68d92d0be2ed9fe12e15845cdeeb00f0cba4ec3985c38082c6abb3e1e01895120ffb6The analysis path for this report. Every node shows what is supported, where detection can start and where the claim stops.
Configuration and the concrete fork must be attributed before any behavioural claim.
Version assembly traits and configuration fields.
Bound to primary researchThe client establishes the documented transport to the configured peer.
Separate destination role, TLS traits and retry patterns.
Bound to primary researchMessages are carried in a structured MessagePack layer.
Use packet form and command identifiers only in context.
Bound to primary researchCapabilities can be loaded as additional modules; base client and plugin remain distinct.
Correlate assembly loading with new command surfaces.
Bound to primary researchPotential remote impact depends on the fork, plugin and received task.
Join the network message with subsequent host action.
Bounded or unresolvedReview pivots derived from the report — not a live configuration or universal family indicator.
Source, validation and limits accompany every rule.
rule DotNet_RAT_AsyncRAT_Project_Identifiers {
meta:
author = "Ruhrdigital Studio"
scope = "project lineage indicator; dual-use caveat"
strings:
$family = "AsyncRAT" ascii wide
$client = "AsyncClient" ascii wide
$msgpack = "AsyncRAT.MessagePack" ascii wide
$settings = "AsyncRAT.Properties.Settings" ascii wide
condition:
uint16(0) == 0x5a4d and filesize < 25MB and 3 of them
}title: AsyncRAT hidden-task candidate
status: experimental
logsource:
product: windows
category: process_creation
detection:
selection:
Image|endswith: '\\schtasks.exe'
CommandLine|contains|all:
- '/create'
- '/sc'
- 'onlogon'
ParentImage|contains: '\\AppData\\'
condition: selection
falsepositives:
- Legitimate administrative or software activity with the same isolated pattern
level: mediumDeviceProcessEvents
| where Timestamp > ago(30d)
| where FileName =~ "schtasks.exe" and ProcessCommandLine has_all ("/create", "onlogon")
| where InitiatingProcessFolderPath has "\\AppData\\"
| project Timestamp, DeviceName, ProcessCommandLine, InitiatingProcessSHA256Public AsyncRAT source and MITRE technique mapping; no execution, build or campaign sample. The bounded question is: which architecture and behaviour claims does this specific evidence set support, and which remain attributable only to the source?
4482252b1a6de7070336649c58cb3329eed68d92d0be2ed9fe12e15845cdeeb0MessagePack decoder with preceding decompression.
Primary sources, statically inspectable code and runtime observations carry different evidentiary weight. The map keeps those layers separate; missing first-party observation is not replaced by plausibility.
The map separates primary source, reproducible source snapshots and runtime evidence not collected here.
A file reference does not establish runtime behaviour. Recorded processing is not a new execution.
Traceable source with an explicit sample gap.
Published analysis or pinned upstream snapshot.
File, commit and SHA-256 were pinned.
Locally hash-bound source snapshot, read statically only.
File, commit and SHA-256 were pinned.
The review remains static or source-bound.
No first-party runtime, C2 or campaign telemetry.
The review remains static or source-bound.
Limit: A published observation is not an independent reproduction.
AsyncRAT is an open remote-access codebase used in different phishing and loader chains. Upstream does not define initial access. Analysis must therefore separate builder configuration, concrete fork and delivery artifact.
After decompression, the client decodes MessagePack structures; server handlers map messages to functions such as shell, files, processes, desktop, webcam or recovery. Plugins extend capability. This separation creates useful boundaries for protocol and module observation.
The short excerpt shows only the structure discussed in this chapter. It is not executed and does not contain a complete operational implementation.
SHA-256 4482252b1a6de7070336649c58cb3329eed68d92d0be2ed9fe12e15845cdeeb0483 public void DecodeFromBytes(byte[] bytes)
484 {
485 using (MemoryStream ms = new MemoryStream())
486 {
487 bytes = Zip.Decompress(bytes);
488 ms.Write(bytes, 0, bytes.Length);
489 ms.Position = 0;
490 DecodeFromStream(ms);
Original source-file lines. Choose a note to highlight its range.
MITRE lists debugger and VM checks, hidden windows, dynamic resolution and scheduled tasks. Depending on builder and fork, these options may be absent. A more stable model links configuration traits to actual task, process and network activity.
The open capability set ranges from system discovery and file transfer to shell, screen, camera and keyboard input. This describes attack surface and possible impact, not automatically observed use of every function.
Useful signals include .NET artifacts, MessagePack/compression patterns, unusual task persistence and long-lived outbound connections from a user-writable client. Older YARA strings should be tested against fork drift and legitimate MessagePack use. A defensible investigation preserves process GUID and full ancestry, user and session, command line, signer and hash state, file and registry changes, DNS/connection destinations and follow-on access to sensitive data in one timeline. Temporal proximity is an evidence parameter, not mere visualization. Missing sensor coverage is marked per stage so that an unseen event is not falsely treated as an event that did not occur.
Useful signals include .NET artifacts, MessagePack/compression patterns, unusual task persistence and long-lived outbound connections from a user-writable client. Older YARA strings should be tested against fork drift and legitimate MessagePack use. The following model is deliberately narrow, not engine-validated and must be tested against legitimate administration and software paths.
1title: AsyncRAT hidden-task candidate
2status: experimental
3logsource:
4 product: windows
5 category: process_creation
6detection:
7 selection:
8 Image|endswith: '\\schtasks.exe'
9 CommandLine|contains|all:
10 - '/create'
11 - '/sc'
12 - 'onlogon'
13 ParentImage|contains: '\\AppData\\'
14 condition: selection
15falsepositives:
16 - Legitimate administrative or software activity with the same isolated pattern
17level: medium
Line numbers refer to this excerpt. Choose a note to highlight its range.
Before assigning the family, each signal used by the model is tested independently against software deployment, administration tools, installers, browser or backup software and known internal scripts. At least one structural anchor and one temporally consistent behaviour chain must align. Source capabilities establish possibilities in the pinned snapshot, not the contents of every campaign variant. Nothing was built, started or connected to a server. A negative countercheck rejects only the tested hypothesis; it is not a general all-clear.
Source capabilities establish possibilities in the pinned snapshot, not the contents of every campaign variant. Nothing was built, started or connected to a server.
The review provides a defensible architecture and detection baseline for the named snapshot. It is not proof of current activity, complete variant coverage or a specific operator.
The Evidence Anchor at the start identifies the binary, file or revision actually used. These links provide context and reported observations; they do not substitute for local sample analysis.
AsyncRAT upstream source ↗MITRE ATT&CK — AsyncRAT S1087 ↗The greatest defensive value comes from connecting entry, internal architecture, persistence, impact and telemetry. Individual names, hashes or IOCs remain supporting evidence, not the conclusion.
Start a conversation