Binärstart
Der Bericht bindet seine Aussagen an den dokumentierten Trigona-Prüfstand.
Revision, Herkunft und Ausführungskontext erhalten.
PrimärquellengebundenMalware Analysis / Artefakt: trigona_config_extractor.py · SHA-256 045508e91a26…
Historische Architekturanalyse des Delphi-Ransomwarepfads: CFGS-Resource, AES-CBC-RBT, RSA/AES-OFB, variabler Footer und Wiper-Abgrenzung.
Keine unabhängige Sample-, Laufzeit-, C2- oder Kampagnenverifikation.
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.
045508e91a264349dfe2d70a76980e700d410f439328ed628670a61d9a9851e6aa8b55c63411a0ec691b4023cfdf6a81e48e1641Der Analysepfad dieses Berichts. Jeder Knoten zeigt, was belegt ist, wo Detection ansetzen kann und wo die Aussage endet.
Der Bericht bindet seine Aussagen an den dokumentierten Trigona-Prüfstand.
Revision, Herkunft und Ausführungskontext erhalten.
PrimärquellengebundenKonfigurationswerte steuern Zielwahl und Laufzeitpfade.
Parserzugriff und Feldverwendung gemeinsam prüfen.
PrimärquellengebundenDie Analyse beschreibt die dokumentierte Schlüssel- und Verschlüsselungslogik ohne operative Wiederverwendung.
Primitive und Schlüsselmaterial strikt auseinanderhalten.
PrimärquellengebundenAuswahl- und Ausschlusslogik begrenzen den potenziellen Dateiumfang.
Massenhafte Öffnungs-, Umbenennungs- und Schreibmuster erkennen.
PrimärquellengebundenEine tatsächliche Dateiwirkung wird nur aus beobachteten Änderungen abgeleitet.
Dateiänderungen mit verursachendem Prozess und Zeitpunkt binden.
Begrenzt oder offenAnalyseachsen aus dem Bericht – keine Live-Konfiguration und kein universeller Familienindikator.
Quelle, Validierung und Grenze gehören zu jeder Regel.
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
}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: mediumDeviceFileEvents
| where Timestamp > ago(30d)
| where FileName endswith "._locked" or FileName endswith "._erased"
| summarize Files=dcount(FileName), Paths=make_set(FolderPath, 20) by DeviceId, InitiatingProcessSHA256, bin(Timestamp, 5m)
| where Files >= 5ThreatLabz-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?
045508e91a264349dfe2d70a76980e700d410f439328ed628670a61d9a9851e6Offizieller Konfigurationsextractor, statisch gelesen.
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.
Die Karte trennt Primärquelle, reproduzierbaren Quellstand und nicht selbst erhobene Laufzeitevidenz.
Eine Dateireferenz belegt kein Laufzeitverhalten. Dokumentierte Aufbereitung ist keine erneute Ausführung.
Nachvollziehbare Quelle mit expliziter Sample-Lücke.
Veröffentlichte Analyse beziehungsweise gepinnter Upstream-Stand.
Datei, Commit und SHA-256 wurden fixiert.
Lokal hashgebundener, nur statisch gelesener Quellstand.
Datei, Commit und SHA-256 wurden fixiert.
Die Prüfung bleibt statisch beziehungsweise quellengebunden.
Keine eigene Laufzeit-, C2- oder Kampagnentelemetrie.
Die Prüfung bleibt statisch beziehungsweise quellengebunden.
Grenze: Eine veröffentlichte Beobachtung ist keine eigene Reproduktion.
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.
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.
Der kurze Auszug zeigt nur die im Kapitel benannte Struktur. Er wird nicht ausgeführt und enthält keine vollständige operative Implementierung.
SHA-256 045508e91a264349dfe2d70a76980e700d410f439328ed628670a61d9a9851e6def 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
Originalzeilen der Quelldatei. Erklärung wählen, um den Bereich zu markieren.
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.
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.
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.
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.
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
Zeilennummern gelten für diesen Ausschnitt. Erklärung wählen, um den Bereich zu markieren.
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.
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.
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.
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 ↗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.
Gespräch starten