Saltar al contenido

YARA · WithSecure Labs IOCs

WITHSECURELABS_Tanglecrypt

Detects samples packed with TangleCrypt

Sospechoso / huntingWithSecure Labs IOCsBSD 2-Clause LicenseCompila con YARA-X (con avisos)
Autor
WithSecure
Fecha
2025-11-25
Modificada
2025-11-24
Puntuación / Calidad
75 / 73

Qué detecta esta regla

Detects samples packed with TangleCrypt

Objetivos: PE de Windows.

Define 3 patrones (0 de texto, 3 hex, 0 regex).

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

Resumen generado a partir de los metadatos y la condición de la regla.

Código de la regla

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

Cadenas (3 patrones)

IdentificadorTipoValorModificadores
$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 ) }

Condición

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

En palabras sencillas (Heurística)

  • El archivo debe empezar por «MZ»: un ejecutable de Windows (PE).
  • Deben coincidir todos los patrones de ( $str* ).
  • El patrón $opc_x64 debe aparecer > 50 veces.
  • El patrón $opc_x86 debe aparecer > 50 veces.

Prueba esta regla en tu navegador

Arrastra un archivo para escanearlo con esta regla usando YARA-X compilado a WebAssembly. No se sube nada.

Arrastra un archivo aquí o haz clic para elegirSe escanea en local con YARA-X. Archivos de hasta 200 MB.

Abrir en el editor

Referencias

Hashes de muestras

Hashes de las muestras que el autor lista en los metadatos de la regla (búscalos en tu plataforma de threat intelligence).

  • 2936f5f3ff24f5bb42eace4ad2d64989b19dc6cd75d8f4ee83496ee6bdf169f6
  • fb3fc93dc627c7dfd8d95c1d66c2cb66caac92783b6d6eb33ac5b91647871ae6

Licencia y atribución

Autor: WithSecure

Repositorio de origen: WithSecure Labs IOCs @ 1a8384468d

Licencia: BSD 2-Clause License (licencia del repositorio)

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

Regla original

Obtenida a través de YARA Forge 20260927, que añade a los nombres el prefijo de la fuente y campos meta normalizados.

Id de la regla: d208791a-5edf-5c79-87e2-78ed5023ece7

Metadatos

version1.0

Etiquetas:FILE