Skip to content

YARA · Signature Base (Florian Roth / Nextron)

SIGNATURE_BASE_MAL_Sindoor_Decryptor_Aug25

Detects AES decryptor used by Sindoor dropper related to APT 36

MalwareSignature Base (Florian Roth / Nextron)Detection Rule License 1.1Compiles with YARA-X
Author
Pezier Pierre-Henri
Date
2025-08-29
Modified
2026-05-15
Score / Quality
80 / 85

What this rule detects

Detects AES decryptor used by Sindoor dropper related to APT 36

Targets: Windows PE, Linux ELF, macOS Mach-O.

It defines 5 patterns (5 text, 0 hex, 0 regex).

Summary generated from the rule's metadata and condition.

Rule source

mal-sindoor-decryptor-aug25.yarDetection Rule License 1.1
rule SIGNATURE_BASE_MAL_Sindoor_Decryptor_Aug25 : FILE
{
	meta:
		description = "Detects AES decryptor used by Sindoor dropper related to APT 36"
		author = "Pezier Pierre-Henri"
		id = "3c0c5217-b125-51a3-8129-30af5f0c7263"
		date = "2025-08-29"
		modified = "2026-05-15"
		reference = "Internal Research"
		source_url = "https://github.com/Neo23x0/signature-base/blob/94a1c48d7ab499879287ff611dfe7f9c56376030/yara/apt_apt36_operation_sindoor.yar#L38-L63"
		license_url = "https://github.com/Neo23x0/signature-base/blob/94a1c48d7ab499879287ff611dfe7f9c56376030/LICENSE"
		hash = "9a1adb50bb08f5a28160802c8f315749b15c9009f25aa6718c7752471db3bb4b"
		logic_hash = "4172fd9aee39a1a0681483f6dada6394debc62149a588ab4807e3016a823bed3"
		score = 80
		quality = 85
		tags = "FILE"

	strings:
		$s1 = "Go build"
		$s2 = "main.rc4EncryptDecrypt"
		$s3 = "main.processFile"
		$s4 = "main.deriveKeyAES"
		$s5 = "use RC4 instead of AES"

	condition:
		filesize < 100MB and ( uint16( 0 ) == 0x5a4d or uint32be( 0 ) == 0x7f454c46 or ( uint32be( 0 ) == 0xcafebabe and uint32be( 4 ) < 0x20 ) or uint32( 0 ) == 0xfeedface or uint32( 0 ) == 0xfeedfacf ) and all of them
}

Strings (5 patterns)

IdentifierTypeValueModifiers
$s1text"Go build"
$s2text"main.rc4EncryptDecrypt"
$s3text"main.processFile"
$s4text"main.deriveKeyAES"
$s5text"use RC4 instead of AES"

Condition

filesize < 100MB and ( uint16( 0 ) == 0x5a4d or uint32be( 0 ) == 0x7f454c46 or ( uint32be( 0 ) == 0xcafebabe and uint32be( 4 ) < 0x20 ) or uint32( 0 ) == 0xfeedface or uint32( 0 ) == 0xfeedfacf ) and all of them

In plain words (Heuristic)

  • The file must start with “MZ” — a Windows executable (PE).
  • The file must start with the ELF header — a Linux/Unix executable.
  • The file must start with a Mach-O / fat binary magic — a macOS executable.
  • The file must be smaller than 100MB (a cheap guard that skips large files).
  • All patterns in the rule must match.

Test this rule in your browser

Drop a file to scan it with this rule using YARA-X compiled to WebAssembly. Nothing is uploaded.

Drop a file here or click to chooseScanned locally with YARA-X. Files up to 200 MB.

Open in editor

Sample hashes

Hashes of samples the author lists in the rule's meta (look them up in your threat-intelligence platform).

  • 9a1adb50bb08f5a28160802c8f315749b15c9009f25aa6718c7752471db3bb4b

Licence & attribution

Author: Pezier Pierre-Henri

Source repository: Signature Base (Florian Roth / Nextron) @ 94a1c48d7a

Licence: Detection Rule License 1.1 (repository licence)

Original rule

Mirrored via YARA Forge 20260927, which prefixes rule names with the source and adds normalised meta fields.

Rule id: 3c0c5217-b125-51a3-8129-30af5f0c7263

Tags:FILE