Aller au contenu

YARA · Signature Base (Florian Roth / Nextron)

SIGNATURE_BASE_Brooxml_Hunting

Detects Microsoft OOXML files with prepended data/manipulated header

Suspect / chasseSignature Base (Florian Roth / Nextron)Detection Rule License 1.1Compile avec YARA-X
Auteur
Proofpoint
Date
2024-11-27
Modifiée
2025-06-02
Score / Qualité
70 / 85

Ce que détecte cette règle

Detects Microsoft OOXML files with prepended data/manipulated header

Cibles : PE Windows.

Elle définit 8 motifs (1 texte, 7 hex, 0 regex).

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

Source de la règle

brooxml-hunting.yarDetection Rule License 1.1
rule SIGNATURE_BASE_Brooxml_Hunting : HUNTING FILE
{
	meta:
		description = "Detects Microsoft OOXML files with prepended data/manipulated header"
		author = "Proofpoint"
		id = "1ffea1c7-9f97-5bb1-93d7-ce914765416f"
		date = "2024-11-27"
		modified = "2025-06-02"
		reference = "https://x.com/threatinsight/status/1861817946508763480"
		source_url = "https://github.com/Neo23x0/signature-base/blob/94a1c48d7ab499879287ff611dfe7f9c56376030/yara/gen_brooxml_dec24.yar#L2-L39"
		license_url = "https://github.com/Neo23x0/signature-base/blob/94a1c48d7ab499879287ff611dfe7f9c56376030/LICENSE"
		logic_hash = "8a8d934fe9286c9d1c83a2a0676bb8a5f2501116b96cca32dc27136ecfb9325b"
		score = 70
		quality = 85
		tags = "HUNTING, FILE"
		category = "hunting"

	strings:
		$pk_ooxml_magic = {50 4b 03 04 [22] 13 00 [2] 5b 43 6f 6e 74 65 6e 74 5f 54 79 70 65 73 5d 2e 78 6d 6c}
		$pk_0102 = {50 4b 01 02}
		$pk_0304 = {50 4b 03 04}
		$pk_0506 = {50 4b 05 06}
		$pk_0708 = {50 4b 07 08}
		$word = "word/"
		$ole = {d0 cf 11 e0}
		$tef = {78 9f 3e 22}

	condition:
		$pk_ooxml_magic in ( 4 .. 16384 ) and $pk_0506 in ( 16384 .. filesize ) and #pk_0506 == 1 and #pk_0102 > 2 and #pk_0304 > 2 and $word and not ( $pk_0102 at 0 ) and not ( $pk_0304 at 0 ) and not ( $pk_0506 at 0 ) and not ( $pk_0708 at 0 ) and not ( $ole at 0 ) and not ( uint16( 0 ) == 0x5a4d ) and not ( $tef at 0 )
}

Chaînes (8 motifs)

IdentifiantTypeValeurModificateurs
$pk_ooxml_magichex{50 4b 03 04 [22] 13 00 [2] 5b 43 6f 6e 74 65 6e 74 5f 54 79 70 65 73 5d 2e 78 6d 6c}
$pk_0102hex{50 4b 01 02}
$pk_0304hex{50 4b 03 04}
$pk_0506hex{50 4b 05 06}
$pk_0708hex{50 4b 07 08}
$wordtexte"word/"
$olehex{d0 cf 11 e0}
$tefhex{78 9f 3e 22}

Condition

$pk_ooxml_magic in ( 4 .. 16384 ) and $pk_0506 in ( 16384 .. filesize ) and #pk_0506 == 1 and #pk_0102 > 2 and #pk_0304 > 2 and $word and not ( $pk_0102 at 0 ) and not ( $pk_0304 at 0 ) and not ( $pk_0506 at 0 ) and not ( $pk_0708 at 0 ) and not ( $ole at 0 ) and not ( uint16( 0 ) == 0x5a4d ) and not ( $tef at 0 )

En clair (Heuristique)

  • Le fichier doit commencer par « MZ » — un exécutable Windows (PE).
  • Le motif $pk_0506 doit apparaître == 1 fois.
  • Le motif $pk_0102 doit apparaître > 2 fois.
  • Le motif $pk_0304 doit apparaître > 2 fois.
  • Le motif $pk_0102 doit se trouver à l’offset 0.
  • Le motif $pk_0304 doit se trouver à l’offset 0.
  • Le motif $pk_0506 doit se trouver à l’offset 0.
  • Le motif $pk_0708 doit se trouver à l’offset 0.
  • Le motif $ole doit se trouver à l’offset 0.
  • Le motif $tef doit se trouver à l’offset 0.
  • Le motif $pk_ooxml_magic doit se trouver dans la plage 4 .. 16384.
  • Le motif $pk_0506 doit se trouver dans la plage 16384 .. filesize.
  • Le motif $word doit être présent.

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

Licence et attribution

Auteur : Proofpoint

Dépôt source : Signature Base (Florian Roth / Nextron) @ 94a1c48d7a

Licence : Detection Rule License 1.1 (licence du dépôt)

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: 1ffea1c7-9f97-5bb1-93d7-ce914765416f

Métadonnées

categoryhunting

Tags:HUNTINGFILE