Saltar al contenido

YARA · elceef yara-rulz

ELCEEF_HTML_Smuggling_B

Generic detection for HTML smuggling (T1027.006)

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

Qué detecta esta regla

Generic detection for HTML smuggling (T1027.006)

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

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

Código de la regla

html-smuggling-b.yarMIT License
rule ELCEEF_HTML_Smuggling_B : T1027 FILE
{
	meta:
		description = "Generic detection for HTML smuggling (T1027.006)"
		author = "marcin@ulikowski.pl"
		id = "640d70c2-f1fc-5e32-a720-ebc92839ec40"
		date = "2022-12-02"
		modified = "2023-04-16"
		reference = "https://github.com/elceef/yara-rulz"
		source_url = "https://github.com/elceef/yara-rulz/blob/5683b294a12cf0c875b624933586029ae43a852f/rules/HTML_Smuggling.yara#L33-L60"
		license_url = "https://github.com/elceef/yara-rulz/blob/5683b294a12cf0c875b624933586029ae43a852f/LICENSE"
		hash = "63955db0ccd6c0613912afb862635bde0fa925847f27adc8a0d65c994a7e05ea"
		logic_hash = "3c42e6f715bd5476aea4d47e9f6431747ddf7c7c8098840560201e2c21723eeb"
		score = 75
		quality = 75
		tags = "T1027, FILE"

	strings:
		$objecturl = { ( 2e | 22 | 27 ) 63 72 65 61 74 65 4f 62 6a 65 63 74 55 52 4c ( 28 | 22 | 27 ) }
		$atob = "atob("
		$blob = "new Blob("
		$file = "new File(["
		$array = "new Uint8Array("
		$ole2 = "0M8R4KGxGuEA"
		$pe32 = "TVqQAAMAAAAE"
		$iso = "AAAABQ0QwMDE"
		$udf = "AAAAQkVBMDEB"
		$zip = { 55 45 73 44 42 ( 41 | 42 | 43 | 44 ) ( 6f | 30 | 4d | 51 ) ( 41 | 44 ) ( 41 | 43 ) }
		$jsxor = { 2e 63 68 61 72 43 6f 64 65 41 74 28 [1-10] 29 ( 5e | 20 5e ) }

	condition:
		filesize < 5MB and $atob and #objecturl == 1 and #file == 1 and #blob == 1 and #array == 1 and ( #ole2 + #pe32 + #iso + #udf + #zip + #jsxor ) == 1
}

Cadenas (11 patrones)

IdentificadorTipoValorModificadores
$objecturlhex{ ( 2e | 22 | 27 ) 63 72 65 61 74 65 4f 62 6a 65 63 74 55 52 4c ( 28 | 22 | 27 ) }
$atobtexto"atob("
$blobtexto"new Blob("
$filetexto"new File(["
$arraytexto"new Uint8Array("
$ole2texto"0M8R4KGxGuEA"
$pe32texto"TVqQAAMAAAAE"
$isotexto"AAAABQ0QwMDE"
$udftexto"AAAAQkVBMDEB"
$ziphex{ 55 45 73 44 42 ( 41 | 42 | 43 | 44 ) ( 6f | 30 | 4d | 51 ) ( 41 | 44 ) ( 41 | 43 ) }
$jsxorhex{ 2e 63 68 61 72 43 6f 64 65 41 74 28 [1-10] 29 ( 5e | 20 5e ) }

Condición

filesize < 5MB and $atob and #objecturl == 1 and #file == 1 and #blob == 1 and #array == 1 and ( #ole2 + #pe32 + #iso + #udf + #zip + #jsxor ) == 1

En palabras sencillas (Heurística)

  • El archivo debe ocupar menos de 5MB (un límite barato que descarta archivos grandes).
  • El patrón $objecturl debe aparecer == 1 veces.
  • El patrón $file debe aparecer == 1 veces.
  • El patrón $blob debe aparecer == 1 veces.
  • El patrón $array debe aparecer == 1 veces.
  • El patrón $atob 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).

  • 63955db0ccd6c0613912afb862635bde0fa925847f27adc8a0d65c994a7e05ea

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: 640d70c2-f1fc-5e32-a720-ebc92839ec40

Etiquetas:T1027FILE