TW / Independent
← Research-Audits

Malware Analysis / Artefakt: trigona_config_extractor.py · SHA-256 045508e91a26…

Trigona: Konfigurationsresource, Schlüsselhierarchie und Dateifooter

Historische Architekturanalyse des Delphi-Ransomwarepfads: CFGS-Resource, AES-CBC-RBT, RSA/AES-OFB, variabler Footer und Wiper-Abgrenzung.

Prüfumfang
ThreatLabz-Analyse von Trigona plus offizieller Konfigurationsextractor; keine Aussage über Aktivität im Jahr 2026.
Vorgehen
Statische Quellen- und Architekturprüfung; keine Malware beschafft, gebaut oder ausgeführt.
Material
Offizieller Extractor, lokal auf Datei-Hash und Revision fixiert.
Befund

Resource-Lokalisierung, Integritätsprüfung und Abschnittsparser sind im Code nachvollziehbar; Dateientschlüsselung bleibt schlüsselabhängig.

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

Analystennotiz

Was der Prüfbestand wirklich hergibt.

Bei Trigona lässt sich die belastbare Geschichte am Parser erzählen: Resource finden, Integrität prüfen, Felder lesen. Dateiwirkung und Entschlüsselbarkeit beginnen erst dort, wo passendes Schlüsselmaterial vorliegt.

Evidence AnchorQuellstand geprüft
Artefakt
trigona_config_extractor.py
SHA-256
045508e91a264349dfe2d70a76980e700d410f439328ed628670a61d9a9851e6
Revision
aa8b55c63411a0ec691b4023cfdf6a81e48e1641
Analysegrundlage
Offizieller Extractor, lokal auf Datei-Hash und Revision fixiert.
Malware / Evidence Atlas

Binärstart → Verschlüsselungswirkung

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

5Ablaufknoten 3Detection-Artefakte 3Regelformate
Aussage

Binärstart

Der Bericht bindet seine Aussagen an den dokumentierten Trigona-Prüfstand.

Detection-Schwerpunkt

Revision, Herkunft und Ausführungskontext erhalten.

Primärquellengebunden
Config Surface

Konfigurations-Fingerabdruck

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

01
Kampagneconfiguration ID
Stütze
02
Schlüsselrolleparser-bound
Kernspur
03
Dateiauswahlinclude / exclude
Kernspur
04
Wirkungobserved files only
Grenze
MODEL / 3662FC47Kernspur, 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.GrenzeStrings und Erweiterungen sind historisch und durch Varianten änderbar.
YARARegel öffnen
Defensives Modell
rule Windows_Ransomware_Trigona_Artifacts {
 meta:
  author = "Ruhrdigital Studio"
  scope = "historical family-likely artifact combination"
 strings:
  $note = "how_to_decrypt.hta" ascii wide
  $ext = "._locked" ascii wide
  $crypto = "TDCP_rijndael" ascii wide
 condition:
  uint16(0) == 0x5a4d and filesize < 20MB and all of them
}

Evidenzstatus Im Prüfbestand belegtPrimärquellengebundenBegrenzt oder offen

Prüfauftrag, Stand und Beleggrenze

ThreatLabz-Analyse von Trigona plus offizieller Konfigurationsextractor; keine Aussage über Aktivität im Jahr 2026. 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

threatlabz-tools/trigona/trigona_config_extractor.py
045508e91a264349dfe2d70a76980e700d410f439328ed628670a61d9a9851e6

Offizieller Konfigurationsextractor, statisch gelesen.

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 → trigona_config_extractor.pytechnisch gegengeprüft · Referenz geprüft

    Datei, Commit und SHA-256 wurden fixiert.

Zugehöriges Berichtskapitel →
trigona_config_extractor.py

Lokal hashgebundener, nur statisch gelesener Quellstand.

Datei
threatlabz-tools/trigona/trigona_config_extractor.py
SHA-256
045508e91a264349dfe2d70a76980e700d410f439328ed628670a61d9a9851e6
Fundstelle
1-222
  • Primärquelle → trigona_config_extractor.pytechnisch gegengeprüft · Referenz geprüft

    Datei, Commit und SHA-256 wurden fixiert.

  • trigona_config_extractor.py → 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.

  • trigona_config_extractor.py → 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

Der Bericht behandelt den Ransomwarekern und seine Konfiguration, nicht einen universellen Initialzugang. Die Delphi-PE enthält eine Resource namens CFGS, die Identifikatoren, RSA-Material, Ausschlusslisten und Lösegeldnotiz strukturiert bereitstellt.

Architektur und Datenfluss

Der Extractor lokalisiert CFGS, entfernt variables Padding, prüft MD5 und zerlegt drei längenkodierte Abschnitte. ThreatLabz beschreibt eine zweilagige AES-CBC-Entschlüsselung mit Residual Block Termination. Für Dateien kombiniert Trigona pro Datei erzeugtes AES-Material mit einem 4.112-Bit-RSA-Schlüssel und AES-OFB.

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.

pythonCFGS-Suche, MD5-Prüfung und Drei-Abschnitt-ParserAnalysewerkzeug-Auszug
threatlabz-tools/trigona/trigona_config_extractor.py · Zeilen 95-131
Datei-Hash anzeigenSHA-256 045508e91a264349dfe2d70a76980e700d410f439328ed628670a61d9a9851e6
def get_config_resource(pe):
    for rsrc in pe.DIRECTORY_ENTRY_RESOURCE.entries:
        for entry in rsrc.directory.entries:
            if entry.name is not None:
                if entry.name.__str__() == "CFGS":
                    offset = entry.directory.entries[0].data.struct.OffsetToData
                    size = entry.directory.entries[0].data.struct.Size
                    data = pe.get_data(offset, size)
                    return {"data": data, "size": size}
    return None


def parse_sections(data):
    cfg = Config()
    config_stream = Stream(data)
    padding_bytes = config_stream.read_byte()
    config_stream.read_bytes(padding_bytes)
    config_md5 = config_stream.read_bytes(16)
    cfg_data = config_stream.seek_all()
    actual_cfg_md5 = hashlib.md5(cfg_data).hexdigest()
    if actual_cfg_md5 != config_md5.hex():
        print("invalid config!")
        return None

    section1_size = config_stream.read_int_dword()
    section1 = config_stream.read_bytes(section1_size)
    parse_section1_stream(cfg, section1)

    section2_size = config_stream.read_int_dword()
    section2 = config_stream.read_bytes(section2_size)
    extensions = parse_section2_stream(section2)
    cfg.extensions = extensions

    section3_size = config_stream.read_int_dword()
    ransom_note = config_stream.read_bytes(section3_size)
    cfg.ransom_note = ransom_note
    return cfg
Code lesen

Analyseabwehr und Persistenz

Die kryptografische Schichtung schützt Konfiguration und Dateischlüssel, ist aber zugleich strukturiert. MD5, Abschnittslängen und Footerfelder erzeugen prüfbare Beziehungen. Ein Magic- oder Erweiterungswert allein bleibt versionsabhängig und kann durch andere Software kollidieren.

Fähigkeiten, Ziel und Wirkung

Der dokumentierte Verschlüsselungspfad erzeugt Dateien mit `_locked`; ein separater Wiperpfad verwendet `_erased`. Lösegeldnotiz, Verschlüsselung und Löschung sind daher unterschiedliche Wirkungen. Ohne privaten RSA-Schlüssel folgt aus der Kenntnis des Formats keine allgemeine Wiederherstellbarkeit.

Telemetrieplan und Beweiskette

Erkennung sollte CFGS-Resource, konsistente Abschnittsstruktur, ungewöhnliche Dateiumbenennung, HTA-Lösegeldnotiz und massenhafte Schreibaktivität verbinden. Erweiterungen oder Hashes allein sind schwach und können Variantenwechsel nicht tragen. 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

Erkennung sollte CFGS-Resource, konsistente Abschnittsstruktur, ungewöhnliche Dateiumbenennung, HTA-Lösegeldnotiz und massenhafte Schreibaktivität verbinden. Erweiterungen oder Hashes allein sind schwach und können Variantenwechsel nicht tragen. 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: Trigona encryption-impact candidate
status: experimental
logsource:
  product: windows
  category: file_event
detection:
  selection:
    TargetFilename|endswith:
      - '_locked'
      - '_erased'
  filter_legitimate:
    Image|endswith: '\\backup-agent.exe'
  condition: selection and not filter_legitimate
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. Dies ist eine historische, quellengebundene Architekturprüfung. Der Extractor belegt keine Unterstützung aller Varianten; Erpressungs- oder Exfiltrationsbehauptungen werden nicht als unabhängig bestätigt übernommen. Ein negativer Gegencheck verwirft nur die geprüfte Hypothese; er ist keine allgemeine Entwarnung.

Attribution und Variantenrisiko

Dies ist eine historische, quellengebundene Architekturprüfung. Der Extractor belegt keine Unterstützung aller Varianten; Erpressungs- oder Exfiltrationsbehauptungen werden nicht als unabhängig bestätigt übernommen.

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

  • CFGS koppelt Konfiguration, Schlüsselmaterial, Ausschlüsse und Notiz.
  • Dateiverschlüsselung und Wiper sind getrennte Wirkungspfade.
  • Formatkenntnis ersetzt weder privaten Schlüssel noch getestete Wiederherstellung.

Grenzen der Prüfung

  • Keine unabhängige Sample-, Laufzeit-, C2- oder Kampagnenverifikation.
  • Dies ist eine historische, quellengebundene Architekturprüfung. Der Extractor belegt keine Unterstützung aller Varianten; Erpressungs- oder Exfiltrationsbehauptungen werden nicht als unabhängig bestätigt übernommen.
  • 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.

ThreatLabz — Technical Analysis of Trigona Ransomware ↗ThreatLabz — Trigona config extractor ↗
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.
ThreatLabz-Analyse von Trigona plus offizieller Konfigurationsextractor; keine Aussage über Aktivität im Jahr 2026.
← Alle Research-Audits

Gespräch starten

Projekt besprechen.

Gespräch starten