YARA · ditekSHen detection
DITEKSHEN_MALWARE_Multi_Exaramel
Exaramel Windows/Linux backdoor payload
- Autor
- ditekSHen
- Datum
- 2020-11-06
- Geändert
- 2024-11-01
- Score / Qualität
- 75 / 73
Was diese Regel erkennt
Exaramel Windows/Linux backdoor payload
Zugehörige Malware-Familie: Exaramel.
Ziele: Windows-PE.
Sie definiert 28 Muster (28 Text, 0 Hex, 0 Regex).
Zusammenfassung aus den Metadaten und der Bedingung der Regel erzeugt.
Regelquelltext
rule DITEKSHEN_MALWARE_Multi_Exaramel : FILE
{
meta:
= "Exaramel Windows/Linux backdoor payload"
= "ditekSHen"
= "014f10f3-4502-5719-93f6-4b2940f53876"
= "2020-11-06"
= "2024-11-01"
= "https://github.com/ditekshen/detection"
= "https://github.com/ditekshen/detection/blob/e76c93dcdedff04076380ffc60ea54e45b313635/yara/malware.yar#L420-L459"
= "https://github.com/ditekshen/detection/blob/e76c93dcdedff04076380ffc60ea54e45b313635/LICENSE.txt"
= "e64383304bc913b07a2e63d61c81354b996c01171357005f4a28957d4d889599"
= 75
= 73
= "FILE"
= "MALWARE_Linux.Backdoor.Exaramel"
= "MALWARE_Win.Backdoor.Exaramel"
strings:
$s1 = "vendor/golang_org/x/crypto/" ascii
$s2 = "vendor/golang_org/x/net/http2" ascii
$s3 = "vendor/golang_org/x/text/unicode" ascii
$s4 = "vendor/golang_org/x/text/transform" ascii
$s5 = "config.json" ascii
$cmd1 = "App.Update" ascii
$cmd2 = "App.Delete" ascii
$cmd3 = "App.SetProxy" ascii
$cmd4 = "App.SetServer" ascii
$cmd5 = "App.SetTimeout" ascii
$cmd6 = "IO.WriteFile" ascii
$cmd7 = "IO.ReadFile" ascii
$cmd8 = "OS.ShellExecute" ascii
$cmd9 = "awk 'match($0, /(upstart|systemd|sysvinit)/){ print substr($0, RSTART, RLENGTH);exit;" ascii
$ws1 = "/commands/@slp" wide
$ws2 = "/commands/cmd" wide
$ws3 = "/settings/proxy/@password" wide
$ws4 = "/settings/servers/server[@current='true']" wide
$ws5 = "/settings/servers/server/@current[text()='true']" wide
$ws6 = "/settings/servers/server[text()='%s']/@current" wide
$ws7 = "/settings/servers/server[%d]" wide
$ws8 = "/settings/storage" wide
$ws9 = "/settings/check" wide
$ws10 = "/settings/interval" wide
$ws11 = "report.txt" wide
$ws12 = "stg%02d.cab" ascii
$ws13 = "urlmon.dll" ascii
$ws14 = "ReportDir" ascii
condition:
( uint16( 0 ) == 0x457f and ( all of ( $s* ) and 6 of ( $cmd* ) ) ) or ( uint16( 0 ) == 0x5a4d and 12 of ( $ws* ) )
}
Strings (28 Muster)
| Bezeichner | Typ | Wert | Modifikatoren |
|---|---|---|---|
| $s1 | Text | "vendor/golang_org/x/crypto/" | ascii |
| $s2 | Text | "vendor/golang_org/x/net/http2" | ascii |
| $s3 | Text | "vendor/golang_org/x/text/unicode" | ascii |
| $s4 | Text | "vendor/golang_org/x/text/transform" | ascii |
| $s5 | Text | "config.json" | ascii |
| $cmd1 | Text | "App.Update" | ascii |
| $cmd2 | Text | "App.Delete" | ascii |
| $cmd3 | Text | "App.SetProxy" | ascii |
| $cmd4 | Text | "App.SetServer" | ascii |
| $cmd5 | Text | "App.SetTimeout" | ascii |
| $cmd6 | Text | "IO.WriteFile" | ascii |
| $cmd7 | Text | "IO.ReadFile" | ascii |
| $cmd8 | Text | "OS.ShellExecute" | ascii |
| $cmd9 | Text | "awk 'match($0, /(upstart|systemd|sysvinit)/){ print substr($0, RSTART, RLENGTH);exit;" | ascii |
| $ws1 | Text | "/commands/@slp" | wide |
| $ws2 | Text | "/commands/cmd" | wide |
| $ws3 | Text | "/settings/proxy/@password" | wide |
| $ws4 | Text | "/settings/servers/server[@current='true']" | wide |
| $ws5 | Text | "/settings/servers/server/@current[text()='true']" | wide |
| $ws6 | Text | "/settings/servers/server[text()='%s']/@current" | wide |
| $ws7 | Text | "/settings/servers/server[%d]" | wide |
| $ws8 | Text | "/settings/storage" | wide |
| $ws9 | Text | "/settings/check" | wide |
| $ws10 | Text | "/settings/interval" | wide |
| $ws11 | Text | "report.txt" | wide |
| $ws12 | Text | "stg%02d.cab" | ascii |
| $ws13 | Text | "urlmon.dll" | ascii |
| $ws14 | Text | "ReportDir" | ascii |
Bedingung
( uint16( 0 ) == 0x457f and ( all of ( $s* ) and 6 of ( $cmd* ) ) ) or ( uint16( 0 ) == 0x5a4d and 12 of ( $ws* ) )In Worten (Heuristik)
- Die Datei muss mit „MZ“ beginnen — eine Windows-Programmdatei (PE).
- Alle Muster aus ( $s* ) müssen treffen.
- Mindestens 6 Muster aus ( $cmd* ) müssen treffen.
- Mindestens 12 Muster aus ( $ws* ) müssen treffen.
Diese Regel im Browser testen
Legen Sie eine Datei ab, um sie mit dieser Regel und YARA-X als WebAssembly zu scannen. Nichts wird hochgeladen.
Referenzen
Lizenz & Namensnennung
Autor: ditekSHen
Quell-Repository: ditekSHen detection @ e76c93dcde
Lizenz: BSD 2-Clause License (Repository-Lizenz)
Copyright-Hinweis: Copyright 2021 by ditekSHen (https://github.com/ditekshen/detection).
Gespiegelt über YARA Forge 20260927, das Regelnamen mit der Quelle präfixiert und normalisierte Meta-Felder ergänzt.
Regel-ID: 014f10f3-4502-5719-93f6-4b2940f53876
Metadaten
| clamav_sig1 | MALWARE_Linux.Backdoor.Exaramel |
|---|---|
| clamav_sig2 | MALWARE_Win.Backdoor.Exaramel |
Tags:FILE
Verwandte Regeln
- MalwareMalpedia signator rules· Felix Bilstein - yara-signator at cocacoding dot com· 2026-05-04
- APT / AkteurSignature Base (Florian Roth / Nextron)· FR/ANSSI/SDO· 2021-02-15
- APT / AkteurSignature Base (Florian Roth / Nextron)· FR/ANSSI/SDO· 2021-02-15
- APT / AkteurSignature Base (Florian Roth / Nextron)· FR/ANSSI/SDO· 2021-02-15
- APT / AkteurSignature Base (Florian Roth / Nextron)· FR/ANSSI/SDO· 2021-02-15
- APT / AkteurSignature Base (Florian Roth / Nextron)· FR/ANSSI/SDO· 2021-02-15
- APT / AkteurSignature Base (Florian Roth / Nextron)· FR/ANSSI/SDO (composed from 4 saparate rules by Florian R…· 2021-02-15
- APT / AkteurSignature Base (Florian Roth / Nextron)· FR/ANSSI/SDO· 2021-02-15