TW / Independent
← Research-Audits

Malware Analysis / Artefakt: MessagePack/MsgPack.cs · SHA-256 4482252b1a6d…

AsyncRAT: MessagePack, Plugins und konfigurierbare Fernsteuerung

Statische Prüfung der offenen C#-Codebasis: komprimiertes MessagePack, Handler, Plugins, Persistenz und Variantenrisiko.

Prüfumfang
Öffentliche AsyncRAT-Codebasis und MITRE-Technikzuordnung; keine Ausführung, kein Build und kein Kampagnensample.
Vorgehen
Statische Quellen- und Architekturprüfung; keine Malware beschafft, gebaut oder ausgeführt.
Material
Upstream-Quelldatei mit lokal geprüftem Hash.
Befund

Nachrichtenparser, Handler- und Pluginstruktur sind statisch prüfbar; Distribution und Forks bleiben variabel.

Keine unabhängige Sample-, Laufzeit-, C2- oder Kampagnenverifikation.

Analystennotiz

Was der Prüfbestand wirklich hergibt.

Bei AsyncRAT liegt die interessante Grenze zwischen offenem Code und konkretem Missbrauch. Der Bericht liest deshalb Nachrichtenparser und Pluginpfade als Protokollfläche – nicht als Beweis für eine bestimmte Kampagne.

Evidence AnchorQuellstand geprüft
Artefakt
MessagePack/MsgPack.cs
SHA-256
4482252b1a6de7070336649c58cb3329eed68d92d0be2ed9fe12e15845cdeeb0
Revision
0f0cba4ec3985c38082c6abb3e1e01895120ffb6
Analysegrundlage
Upstream-Quelldatei mit lokal geprüftem Hash.
Malware / Evidence Atlas

Builder-Profil → Remote-Aktion

Der Analysepfad dieses Berichts. Jeder Knoten zeigt, was belegt ist, wo Detection ansetzen kann und wo die Aussage endet.

5Ablaufknoten 3Detection-Artefakte 3Regelformate
Aussage

Builder-Profil

Konfiguration und konkrete Fork müssen vor jeder Verhaltensaussage zugeordnet werden.

Detection-Schwerpunkt

Assemblymerkmale und Konfigurationsfelder versionieren.

Primärquellengebunden
Config Surface

Konfigurations-Fingerabdruck

Analyseachsen aus dem Bericht – keine Live-Konfiguration und kein universeller Familienindikator.

01
SerialisierungMessagePack
Kernspur
02
Handlercommand map
Kernspur
03
Pluginsloadable modules
Kernspur
04
Persistenzconfigurable
Stütze
MODEL / D1F7E12CKernspur, Stütze und Grenze – keine Risikowerte
Detection Pack

Defensive Artefakte

Quelle, Validierung und Grenze gehören zu jeder Regel.

QuelleEigene Ableitung aus der im Bericht beschriebenen Struktur.Validierungyara-python kompiliert; synthetische Truth-Table 3/3.GrenzeGenerische Task-Telemetrie benötigt Quellcode- oder Konfigurationskorroboration.
YARARegel öffnen
Defensives Modell
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
}

Evidenzstatus Im Prüfbestand belegtPrimärquellengebundenBegrenzt oder offen

Prüfauftrag, Stand und Beleggrenze

Öffentliche AsyncRAT-Codebasis und MITRE-Technikzuordnung; keine Ausführung, kein Build und kein Kampagnensample. Die Leitfrage lautet: Welche Architektur- und Verhaltensaussagen trägt dieser konkrete Prüfstand, und welche bleiben ausschließlich der Quelle zugeschrieben?

ARTIFACT MANIFEST

Dateien und Prüfsummen

asyncrat/AsyncRAT-C#/MessagePack/MessagePack/MsgPack.cs
4482252b1a6de7070336649c58cb3329eed68d92d0be2ed9fe12e15845cdeeb0

MessagePack-Decoder mit vorgelagerter Dekompression.

Was belegt ist — und was fehlt

Primärquellen, statisch prüfbarer Code und Laufzeitbeobachtungen haben unterschiedliche Aussagekraft. Die Karte hält diese Ebenen auseinander; fehlende Eigenbeobachtung wird nicht durch Plausibilität ersetzt.

FILE / EVIDENCE MAP

Belegkette und offene Laufzeitlücke

Die Karte trennt Primärquelle, reproduzierbaren Quellstand und nicht selbst erhobene Laufzeitevidenz.

Eine Dateireferenz belegt kein Laufzeitverhalten. Dokumentierte Aufbereitung ist keine erneute Ausführung.

QuelleWerkzeugAbleitungBelegFehlendReferenz geprüftDokumentiertUngeklärt

Beleglage

Nachvollziehbare Quelle mit expliziter Sample-Lücke.

Primärquelle

Veröffentlichte Analyse beziehungsweise gepinnter Upstream-Stand.

  • Primärquelle → MsgPack.cstechnisch gegengeprüft · Referenz geprüft

    Datei, Commit und SHA-256 wurden fixiert.

Zugehöriges Berichtskapitel →
MsgPack.cs

Lokal hashgebundener, nur statisch gelesener Quellstand.

Datei
asyncrat/AsyncRAT-C#/MessagePack/MessagePack/MsgPack.cs
SHA-256
4482252b1a6de7070336649c58cb3329eed68d92d0be2ed9fe12e15845cdeeb0
Fundstelle
1-927
  • Primärquelle → MsgPack.cstechnisch gegengeprüft · Referenz geprüft

    Datei, Commit und SHA-256 wurden fixiert.

  • MsgPack.cs → Kein lokales Malware-SampleLaufzeit offen · Ungeklärt

    Die Prüfung bleibt statisch beziehungsweise quellengebunden.

Zugehöriges Berichtskapitel →
Kein lokales Malware-Sample

Keine eigene Laufzeit-, C2- oder Kampagnentelemetrie.

  • MsgPack.cs → Kein lokales Malware-SampleLaufzeit offen · Ungeklärt

    Die Prüfung bleibt statisch beziehungsweise quellengebunden.

Zugehöriges Berichtskapitel →

Grenze: Eine veröffentlichte Beobachtung ist keine eigene Reproduktion.

Eintritt und Lieferkette

AsyncRAT ist eine offene Remote-Access-Codebasis, die in unterschiedlichen Phishing- und Loaderketten eingesetzt wurde. Der Upstream definiert nicht den Initialzugang. Eine Analyse muss deshalb Builderkonfiguration, konkreten Fork und Verteilungsartefakt getrennt behandeln.

Architektur und Datenfluss

Der Client dekodiert nach Dekompression MessagePack-Strukturen; Serverhandler ordnen Nachrichten Funktionen wie Shell, Dateien, Prozesse, Desktop, Webcam oder Wiederherstellung zu. Plugins erweitern den Funktionsumfang. Diese Trennung erzeugt gute Grenzen für Protokoll- und Modulbeobachtung.

Originalcode als Architekturbeleg

Der kurze Auszug zeigt nur die im Kapitel benannte Struktur. Er wird nicht ausgeführt und enthält keine vollständige operative Implementierung.

csharpDekompression vor dem MessagePack-ParsingAnalysewerkzeug-Auszug
asyncrat/AsyncRAT-C#/MessagePack/MessagePack/MsgPack.cs · Zeilen 483-490
Datei-Hash anzeigenSHA-256 4482252b1a6de7070336649c58cb3329eed68d92d0be2ed9fe12e15845cdeeb0
        public void DecodeFromBytes(byte[] bytes)
        {
            using (MemoryStream ms = new MemoryStream())
            {
				bytes = Zip.Decompress(bytes);
                ms.Write(bytes, 0, bytes.Length);
                ms.Position = 0;
                DecodeFromStream(ms);
Code lesen

Analyseabwehr und Persistenz

MITRE führt Debugger- und VM-Prüfungen, versteckte Fenster, dynamische Auflösung und geplante Tasks auf. Je nach Builder und Fork können diese Optionen fehlen. Ein stabileres Modell verbindet Konfigurationsmerkmale mit tatsächlicher Task-, Prozess- und Netzwerkaktivität.

Fähigkeiten, Ziel und Wirkung

Der offene Funktionsumfang reicht von Systemaufklärung und Dateiübertragung bis zu Shell, Bildschirm-, Kamera- und Tastatureingaben. Das beschreibt Angriffsfläche und mögliche Folgen, nicht automatisch beobachtete Nutzung jeder Funktion.

Telemetrieplan und Beweiskette

Hilfreich sind .NET-Artefakte, MessagePack-/Kompressionsmuster, ungewöhnliche Task-Persistenz und langlaufende ausgehende Verbindungen eines benutzerbeschreibbaren Clients. Alte YARA-Strings sollten gegen Fork-Drift und legitime MessagePack-Nutzung gegengeprüft werden. Für eine belastbare Untersuchung werden Prozess-GUID und vollständige Elternkette, Nutzer und Sitzung, Befehlszeile, Signatur- und Hashstatus, Datei- und Registryänderungen, DNS-/Verbindungsziele sowie nachgelagerte Zugriffe auf sensible Daten in einer gemeinsamen Zeitleiste erhalten. Zeitnähe ist dabei ein Belegparameter, keine bloße Visualisierung. Fehlende Sensorabdeckung wird pro Stufe markiert, damit ein nicht sichtbares Ereignis nicht fälschlich als nicht erfolgt gilt.

Detection Engineering und Gegenprüfung

Hilfreich sind .NET-Artefakte, MessagePack-/Kompressionsmuster, ungewöhnliche Task-Persistenz und langlaufende ausgehende Verbindungen eines benutzerbeschreibbaren Clients. Alte YARA-Strings sollten gegen Fork-Drift und legitime MessagePack-Nutzung gegengeprüft werden. Das folgende Modell ist bewusst eng, nicht engine-validiert und muss gegen legitime Administrations- und Softwarepfade getestet werden.

yamlDefensives Modell, nicht engine-validiertDefensives Modell
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: medium
Code lesen

Alternativhypothesen und Negativtests

Vor einer Familienzuordnung werden die im Modell verwendeten Einzelmerkmale getrennt gegen Softwareverteilung, Administratorwerkzeuge, Installer, Browser- oder Backupsoftware und bekannte interne Skripte geprüft. Mindestens ein struktureller Anker und eine zeitlich passende Verhaltenskette müssen zusammenpassen. Quellcodefunktionen belegen Möglichkeiten des gepinnten Stands, nicht die Ausstattung jeder Kampagnenvariante. Es wurde nichts gebaut, gestartet oder mit einem Server verbunden. Ein negativer Gegencheck verwirft nur die geprüfte Hypothese; er ist keine allgemeine Entwarnung.

Attribution und Variantenrisiko

Quellcodefunktionen belegen Möglichkeiten des gepinnten Stands, nicht die Ausstattung jeder Kampagnenvariante. Es wurde nichts gebaut, gestartet oder mit einem Server verbunden.

Abschließende Bewertung

Die Analyse liefert eine belastbare Architektur- und Detektionsgrundlage für den benannten Stand. Sie ist kein Beweis für aktuelle Aktivität, vollständige Variantenabdeckung oder einen bestimmten Betreiber.

Befunde im Überblick

  • Dekompression und MessagePack bilden eine klar prüfbare Protokollgrenze.
  • Handler und Plugins trennen Kerntransport von optionalen Fähigkeiten.
  • Fork- und Builderdrift begrenzen statische Signaturen.

Grenzen der Prüfung

  • Keine unabhängige Sample-, Laufzeit-, C2- oder Kampagnenverifikation.
  • Quellcodefunktionen belegen Möglichkeiten des gepinnten Stands, nicht die Ausstattung jeder Kampagnenvariante. Es wurde nichts gebaut, gestartet oder mit einem Server verbunden.
  • Defensive Modelle sind nicht mit einer Zielengine validiert.

Kontext, nicht Beleg

Der Evidence Anchor am Anfang nennt den tatsächlich verwendeten Binär-, Datei- oder Revisionsbezug. Diese Links liefern Einordnung und berichtete Beobachtungen; sie ersetzen keine lokale Sample-Analyse.

AsyncRAT upstream source ↗MITRE ATT&CK — AsyncRAT S1087 ↗
Abschließendes Urteil

Fazit

Fazit: Struktur vor Signatur

Der höchste defensive Wert entsteht aus der Verbindung von Eintritt, interner Architektur, Persistenz, Wirkung und Telemetrie. Einzelne Namen, Hashes oder IOCs bleiben Hilfsbelege, nicht das Urteil.

Nächste Schritte

  • Modelle gegen synthetische Positivfälle und legitime Negativfälle prüfen.
  • Version und Evidenzstand bei jeder Aktualisierung neu binden.
  • Laufzeitbehauptungen erst nach eigener, rechtmäßig verfügbarer Telemetrie erweitern.
Worauf dieses Urteil beruhtHoch für direkt prüfbare Struktur; begrenzt für nicht selbst reproduzierte Laufzeit- und Kampagnenaussagen.
Öffentliche AsyncRAT-Codebasis und MITRE-Technikzuordnung; keine Ausführung, kein Build und kein Kampagnensample.
← Alle Research-Audits

Gespräch starten

Projekt besprechen.

Gespräch starten