Saltar al contenido

YARA · elceef yara-rulz

ELCEEF_HTML_Smuggling_C

Generic detection for HTML smuggling (T1027.006)

Genéricaelceef yara-rulzMIT LicenseCompila con YARA-X
Autor
marcin@ulikowski.pl
Fecha
2023-04-17
Puntuación / Calidad
75 / 75

Qué detecta esta regla

Generic detection for HTML smuggling (T1027.006)

Define 4 patrones (2 de texto, 2 hex, 0 regex).

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

Código de la regla

html-smuggling-c.yarMIT License
rule ELCEEF_HTML_Smuggling_C : T1027 FILE
{
	meta:
		description = "Generic detection for HTML smuggling (T1027.006)"
		author = "marcin@ulikowski.pl"
		id = "ea1eafad-905b-571e-a016-8774e65bd976"
		date = "2023-04-17"
		modified = "2023-04-17"
		reference = "https://github.com/elceef/yara-rulz"
		source_url = "https://github.com/elceef/yara-rulz/blob/5683b294a12cf0c875b624933586029ae43a852f/rules/HTML_Smuggling.yara#L62-L82"
		license_url = "https://github.com/elceef/yara-rulz/blob/5683b294a12cf0c875b624933586029ae43a852f/LICENSE"
		hash = "0b4cdfc8ae8ae17d7b6786050f1962c19858b91febb18f61f553083f57d96fea"
		hash = "2b99bf97f3d02ba3b44406cedd1ab31824723b56a8aae8057256cc87870c199e"
		hash = "904ea1ada62cfd4b964a6a3eb9bab5b98022ab000f77b75eb265a2ac44b45b37"
		logic_hash = "83409b0b173980975f6349e448e72fe1b2115fc7dbdec8ee7ad1826a65db17d3"
		score = 75
		quality = 75
		tags = "T1027, FILE"

	strings:
		$blob = "new Blob("
		$array = "new Uint8Array("
		$mssave = { ( 2e | 22 | 27 ) 6d 73 53 61 76 65 }
		$loop = { ?? 5b 69 5d ( 3d | 20 3d | 3d 20 | 20 3d 20 ) ?? 5b 69 5d ( 2d | 20 2d | 2d 20 | 20 2d 20 ) 3? 3b }

	condition:
		filesize < 5MB and $mssave and #blob == 1 and #array == 1 and #loop == 1
}

Cadenas (4 patrones)

IdentificadorTipoValorModificadores
$blobtexto"new Blob("
$arraytexto"new Uint8Array("
$mssavehex{ ( 2e | 22 | 27 ) 6d 73 53 61 76 65 }
$loophex{ ?? 5b 69 5d ( 3d | 20 3d | 3d 20 | 20 3d 20 ) ?? 5b 69 5d ( 2d | 20 2d | 2d 20 | 20 2d 20 ) 3? 3b }

Condición

filesize < 5MB and $mssave and #blob == 1 and #array == 1 and #loop == 1

En palabras sencillas (Heurística)

  • El archivo debe ocupar menos de 5MB (un límite barato que descarta archivos grandes).
  • El patrón $blob debe aparecer == 1 veces.
  • El patrón $array debe aparecer == 1 veces.
  • El patrón $loop debe aparecer == 1 veces.
  • El patrón $mssave debe estar presente.

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

MITRE ATT&CK

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

  • 0b4cdfc8ae8ae17d7b6786050f1962c19858b91febb18f61f553083f57d96fea
  • 2b99bf97f3d02ba3b44406cedd1ab31824723b56a8aae8057256cc87870c199e
  • 904ea1ada62cfd4b964a6a3eb9bab5b98022ab000f77b75eb265a2ac44b45b37

Licencia y atribución

Autor: marcin@ulikowski.pl

Repositorio de origen: elceef yara-rulz @ 5683b294a1

Licencia: MIT License (licencia del repositorio)

Aviso de copyright: Copyright (c) 2022 Marcin Ulikowski

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: ea1eafad-905b-571e-a016-8774e65bd976

Etiquetas:T1027FILE