Aller au contenu

YARA · WithSecure Labs IOCs

WITHSECURELABS_Tanglecrypt

Detects samples packed with TangleCrypt

Suspect / chasseWithSecure Labs IOCsBSD 2-Clause LicenseCompile avec YARA-X (avertissements)
Auteur
WithSecure
Date
2025-11-25
Modifiée
2025-11-24
Score / Qualité
75 / 73

Ce que détecte cette règle

Detects samples packed with TangleCrypt

Cibles : PE Windows.

Elle définit 3 motifs (0 texte, 3 hex, 0 regex).

YARA-X indique : warning[text_as_hex]: hex pattern could be written as text literal

Résumé généré à partir des métadonnées et de la condition de la règle.

Source de la règle

tanglecrypt.yarBSD 2-Clause License
rule WITHSECURELABS_Tanglecrypt : FILE
{
	meta:
		description = "Detects samples packed with TangleCrypt"
		author = "WithSecure"
		id = "d208791a-5edf-5c79-87e2-78ed5023ece7"
		date = "2025-11-25"
		modified = "2025-11-24"
		reference = "https://labs.withsecure.com/publications/tanglecrypt"
		source_url = "https://github.com/WithSecureLabs/iocs/blob/1a8384468dd292c6d2c5114c32e42dc0da1f5ae1/TangleCrypt/TangleCrypt_YARA.yar#L1-L27"
		license_url = "https://github.com/WithSecureLabs/iocs/blob/1a8384468dd292c6d2c5114c32e42dc0da1f5ae1/LICENSE"
		hash = "2936f5f3ff24f5bb42eace4ad2d64989b19dc6cd75d8f4ee83496ee6bdf169f6"
		hash = "fb3fc93dc627c7dfd8d95c1d66c2cb66caac92783b6d6eb33ac5b91647871ae6"
		logic_hash = "0d980d72e6ddcc9eedc5977bf895f358144f5720c2ca32266854497afad4a382"
		score = 75
		quality = 73
		tags = "FILE"
		version = "1.0"

	strings:
		$str1 = { 43 61 6E 27 74 20 63 61 6C 6C 20 57 69 6E 41 50 49 20 66 75 6E 63 74 69 6F 6E }
		$opc_x64 = { 41 B8 D7 08 00 00 [0-10] ( E8 | FF 15 ) }
		$opc_x86 = { 68 D7 08 00 00 [0-10] ( E8 | FF 15 ) }

	condition:
		uint16( 0 ) == 0x5A4D and ( uint32( uint32( 0x3C ) ) == 0x00004550 ) and all of ( $str* ) and ( #opc_x64 > 50 or #opc_x86 > 50 )
}

Chaînes (3 motifs)

IdentifiantTypeValeurModificateurs
$str1hex{ 43 61 6E 27 74 20 63 61 6C 6C 20 57 69 6E 41 50 49 20 66 75 6E 63 74 69 6F 6E }
$opc_x64hex{ 41 B8 D7 08 00 00 [0-10] ( E8 | FF 15 ) }
$opc_x86hex{ 68 D7 08 00 00 [0-10] ( E8 | FF 15 ) }

Condition

uint16( 0 ) == 0x5A4D and ( uint32( uint32( 0x3C ) ) == 0x00004550 ) and all of ( $str* ) and ( #opc_x64 > 50 or #opc_x86 > 50 )

En clair (Heuristique)

  • Le fichier doit commencer par « MZ » — un exécutable Windows (PE).
  • Tous les motifs de ( $str* ) doivent être trouvés.
  • Le motif $opc_x64 doit apparaître > 50 fois.
  • Le motif $opc_x86 doit apparaître > 50 fois.

Tester cette règle dans votre navigateur

Déposez un fichier pour le scanner avec cette règle grâce à YARA-X compilé en WebAssembly. Rien n’est envoyé.

Déposez un fichier ici ou cliquez pour choisirScanné localement avec YARA-X. Fichiers jusqu’à 200 Mo.

Ouvrir dans l’éditeur

Références

Hashes d’échantillons

Hashes des échantillons listés par l’auteur dans les métadonnées de la règle (à rechercher dans votre plateforme de threat intelligence).

  • 2936f5f3ff24f5bb42eace4ad2d64989b19dc6cd75d8f4ee83496ee6bdf169f6
  • fb3fc93dc627c7dfd8d95c1d66c2cb66caac92783b6d6eb33ac5b91647871ae6

Licence et attribution

Auteur : WithSecure

Dépôt source : WithSecure Labs IOCs @ 1a8384468d

Licence : BSD 2-Clause License (licence du dépôt)

Mention de copyright : Copyright (c) 2022, WithSecure Oyj

Règle d’origine

Reprise via YARA Forge 20260927, qui préfixe les noms de règles par la source et ajoute des champs meta normalisés.

Identifiant de règle: d208791a-5edf-5c79-87e2-78ed5023ece7

Métadonnées

version1.0

Tags:FILE