Zum Inhalt springen

YARA · ditekSHen detection

DITEKSHEN_MALWARE_Multi_Exaramel

Exaramel Windows/Linux backdoor payload

MalwareExaramelditekSHen detectionBSD 2-Clause LicenseKompiliert mit YARA-X
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

malware-multi-exaramel.yarBSD 2-Clause License
rule DITEKSHEN_MALWARE_Multi_Exaramel : FILE
{
	meta:
		description = "Exaramel Windows/Linux backdoor payload"
		author = "ditekSHen"
		id = "014f10f3-4502-5719-93f6-4b2940f53876"
		date = "2020-11-06"
		modified = "2024-11-01"
		reference = "https://github.com/ditekshen/detection"
		source_url = "https://github.com/ditekshen/detection/blob/e76c93dcdedff04076380ffc60ea54e45b313635/yara/malware.yar#L420-L459"
		license_url = "https://github.com/ditekshen/detection/blob/e76c93dcdedff04076380ffc60ea54e45b313635/LICENSE.txt"
		logic_hash = "e64383304bc913b07a2e63d61c81354b996c01171357005f4a28957d4d889599"
		score = 75
		quality = 73
		tags = "FILE"
		clamav_sig1 = "MALWARE_Linux.Backdoor.Exaramel"
		clamav_sig2 = "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)

BezeichnerTypWertModifikatoren
$s1Text"vendor/golang_org/x/crypto/"ascii
$s2Text"vendor/golang_org/x/net/http2"ascii
$s3Text"vendor/golang_org/x/text/unicode"ascii
$s4Text"vendor/golang_org/x/text/transform"ascii
$s5Text"config.json"ascii
$cmd1Text"App.Update"ascii
$cmd2Text"App.Delete"ascii
$cmd3Text"App.SetProxy"ascii
$cmd4Text"App.SetServer"ascii
$cmd5Text"App.SetTimeout"ascii
$cmd6Text"IO.WriteFile"ascii
$cmd7Text"IO.ReadFile"ascii
$cmd8Text"OS.ShellExecute"ascii
$cmd9Text"awk 'match($0, /(upstart|systemd|sysvinit)/){ print substr($0, RSTART, RLENGTH);exit;"ascii
$ws1Text"/commands/@slp"wide
$ws2Text"/commands/cmd"wide
$ws3Text"/settings/proxy/@password"wide
$ws4Text"/settings/servers/server[@current='true']"wide
$ws5Text"/settings/servers/server/@current[text()='true']"wide
$ws6Text"/settings/servers/server[text()='%s']/@current"wide
$ws7Text"/settings/servers/server[%d]"wide
$ws8Text"/settings/storage"wide
$ws9Text"/settings/check"wide
$ws10Text"/settings/interval"wide
$ws11Text"report.txt"wide
$ws12Text"stg%02d.cab"ascii
$ws13Text"urlmon.dll"ascii
$ws14Text"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.

Datei hier ablegen oder klicken zum AuswählenLokal mit YARA-X gescannt. Dateien bis 200 MB.

Im Editor öffnen

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).

Originalregel

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_sig1MALWARE_Linux.Backdoor.Exaramel
clamav_sig2MALWARE_Win.Backdoor.Exaramel

Tags:FILE

Weitere Exaramel-Regeln