Skip to content

YARA · Signature Base (Florian Roth / Nextron)

SIGNATURE_BASE_MAL_Qbot_HTML_Smuggling_Indicators_Oct22_1

Detects double encoded PKZIP headers as seen in HTML files used by QBot

MalwareSignature Base (Florian Roth / Nextron)Detection Rule License 1.1Compiles with YARA-X
Author
Florian Roth (Nextron Systems)
Date
2022-10-07
Modified
2023-12-05
Score / Quality
75 / 83

What this rule detects

Detects double encoded PKZIP headers as seen in HTML files used by QBot

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

Summary generated from the rule's metadata and condition.

Rule source

mal-qbot-html-smuggling-indicators-oct22-1.yarDetection Rule License 1.1
rule SIGNATURE_BASE_MAL_Qbot_HTML_Smuggling_Indicators_Oct22_1 : FILE
{
	meta:
		description = "Detects double encoded PKZIP headers as seen in HTML files used by QBot"
		author = "Florian Roth (Nextron Systems)"
		id = "8034d6af-4dae-5ff6-b635-efb5175fe4d1"
		date = "2022-10-07"
		modified = "2023-12-05"
		reference = "https://twitter.com/ankit_anubhav/status/1578257383133876225?s=20&t=Bu3CCJCzImpTGOQX_KGsdA"
		source_url = "https://github.com/Neo23x0/signature-base/blob/94a1c48d7ab499879287ff611dfe7f9c56376030/yara/mal_qbot_payloads.yar#L2-L55"
		license_url = "https://github.com/Neo23x0/signature-base/blob/94a1c48d7ab499879287ff611dfe7f9c56376030/LICENSE"
		hash = "4f384bcba31fda53e504d0a6c85cee0ce3ea9586226633d063f34c53ddeaca3f"
		hash = "8e61c2b751682becb4c0337f5a79b2da0f5f19c128b162ec8058104b894cae9b"
		hash = "c5d23d991ce3fbcf73b177bc6136d26a501ded318ccf409ca16f7c664727755a"
		hash = "5072d91ee0d162c28452123a4d9986f3df6b3244e48bf87444ce88add29dd8ed"
		hash = "ff4e21f788c36aabe6ba870cf3b10e258c2ba6f28a2d359a25d5a684c92a0cad"
		logic_hash = "a5bd9eb72205f1398ec0b8773751309699b3267e0272dacf2728f8495c0c0ec2"
		score = 75
		quality = 83
		tags = "FILE"

	strings:
		$sd1 = "VUVzREJCUUFBUUFJQ"
		$sd2 = "VFc0RCQlFBQVFBSU"
		$sd3 = "VRXNEQkJRQUFRQUlB"
		$sdr1 = "QJFUUBFUUCJERzVUV"
		$sdr2 = "USBFVQBFlQCR0cFV"
		$sdr3 = "BlUQRFUQRJkQENXRV"
		$st1 = "VlVWelJFSkNVVUZCVVVGSl"
		$st2 = "ZVVnpSRUpDVVVGQlVVRkpR"
		$st3 = "WVVZ6UkVKQ1VVRkJVVUZKU"
		$st4 = "VkZjMFJDUWxGQlFWRkJTV"
		$st5 = "ZGYzBSQ1FsRkJRVkZCU1"
		$st6 = "WRmMwUkNRbEZCUVZGQlNV"
		$st7 = "VlJYTkVRa0pSUVVGUlFVbE"
		$st8 = "ZSWE5FUWtKUlFVRlJRVWxC"
		$st9 = "WUlhORVFrSlJRVUZSUVVsQ"
		$str1 = "UUpGVVVCRlVVQ0pFUnpWVV"
		$str2 = "FKRlVVQkZVVUNKRVJ6VlVW"
		$str3 = "RSkZVVUJGVVVDSkVSelZVV"
		$str4 = "VVNCRlZRQkZsUUNSMGNGV"
		$str5 = "VTQkZWUUJGbFFDUjBjRl"
		$str6 = "VU0JGVlFCRmxRQ1IwY0ZW"
		$str7 = "QmxVUVJGVVFSSmtRRU5YUl"
		$str8 = "JsVVFSRlVRUkprUUVOWFJW"
		$str9 = "CbFVRUkZVUVJKa1FFTlhSV"
		$htm = "<html" ascii
		$eml = "Content-Transfer-Encoding:" ascii

	condition:
		filesize < 10MB and ( ( 1 of ( $sd* ) and $htm and not $eml ) or ( 1 of ( $st* ) and $eml ) )
}

Strings (26 patterns)

IdentifierTypeValueModifiers
$sd1text"VUVzREJCUUFBUUFJQ"
$sd2text"VFc0RCQlFBQVFBSU"
$sd3text"VRXNEQkJRQUFRQUlB"
$sdr1text"QJFUUBFUUCJERzVUV"
$sdr2text"USBFVQBFlQCR0cFV"
$sdr3text"BlUQRFUQRJkQENXRV"
$st1text"VlVWelJFSkNVVUZCVVVGSl"
$st2text"ZVVnpSRUpDVVVGQlVVRkpR"
$st3text"WVVZ6UkVKQ1VVRkJVVUZKU"
$st4text"VkZjMFJDUWxGQlFWRkJTV"
$st5text"ZGYzBSQ1FsRkJRVkZCU1"
$st6text"WRmMwUkNRbEZCUVZGQlNV"
$st7text"VlJYTkVRa0pSUVVGUlFVbE"
$st8text"ZSWE5FUWtKUlFVRlJRVWxC"
$st9text"WUlhORVFrSlJRVUZSUVVsQ"
$str1text"UUpGVVVCRlVVQ0pFUnpWVV"
$str2text"FKRlVVQkZVVUNKRVJ6VlVW"
$str3text"RSkZVVUJGVVVDSkVSelZVV"
$str4text"VVNCRlZRQkZsUUNSMGNGV"
$str5text"VTQkZWUUJGbFFDUjBjRl"
$str6text"VU0JGVlFCRmxRQ1IwY0ZW"
$str7text"QmxVUVJGVVFSSmtRRU5YUl"
$str8text"JsVVFSRlVRUkprUUVOWFJW"
$str9text"CbFVRUkZVUVJKa1FFTlhSV"
$htmtext"<html"ascii
$emltext"Content-Transfer-Encoding:"ascii

Condition

filesize < 10MB and ( ( 1 of ( $sd* ) and $htm and not $eml ) or ( 1 of ( $st* ) and $eml ) )

In plain words (Heuristic)

  • The file must be smaller than 10MB (a cheap guard that skips large files).
  • At least 1 patterns in ( $sd* ) must match.
  • At least 1 patterns in ( $st* ) must match.
  • Pattern $eml must NOT be present.
  • Pattern $htm must be present.
  • Pattern $eml must be present.

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

References

Sample hashes

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

  • 4f384bcba31fda53e504d0a6c85cee0ce3ea9586226633d063f34c53ddeaca3f
  • 8e61c2b751682becb4c0337f5a79b2da0f5f19c128b162ec8058104b894cae9b
  • c5d23d991ce3fbcf73b177bc6136d26a501ded318ccf409ca16f7c664727755a
  • 5072d91ee0d162c28452123a4d9986f3df6b3244e48bf87444ce88add29dd8ed
  • ff4e21f788c36aabe6ba870cf3b10e258c2ba6f28a2d359a25d5a684c92a0cad

Licence & attribution

Author: Florian Roth (Nextron Systems)

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: 8034d6af-4dae-5ff6-b635-efb5175fe4d1

Tags:FILE