YARA · elceef yara-rulz
ELCEEF_HTML_Smuggling_A
Generic detection for HTML smuggling (T1027.006)
- Author
- marcin@ulikowski.pl
- Date
- 2021-05-13
- Modified
- 2023-04-16
- Score / Quality
- 75 / 75
What this rule detects
Generic detection for HTML smuggling (T1027.006)
It defines 14 patterns (6 text, 8 hex, 0 regex).
Summary generated from the rule's metadata and condition.
Rule source
html-smuggling-a.yarMIT License
rule ELCEEF_HTML_Smuggling_A : T1027 FILE
{
meta:
= "Generic detection for HTML smuggling (T1027.006)"
= "marcin@ulikowski.pl"
= "b711318f-81d2-5d0b-968f-04ae18fdea5b"
= "2021-05-13"
= "2023-04-16"
= "https://github.com/elceef/yara-rulz"
= "https://github.com/elceef/yara-rulz/blob/5683b294a12cf0c875b624933586029ae43a852f/rules/HTML_Smuggling.yara#L1-L31"
= "https://github.com/elceef/yara-rulz/blob/5683b294a12cf0c875b624933586029ae43a852f/LICENSE"
= "279d5ef8f80aba530aaac8afd049fa171704fc703d9cfe337b56639732e8ce11"
= "bc076e9f3d4c6d2aa5a3602436408e5b2ac3140ca9f7cc776c44835cba211951"
= 75
= 75
= "T1027, FILE"
strings:
$mssave = { ( 2e | 22 | 27 ) 6d 73 53 61 76 65 }
$element = { ( 2e | 22 | 27 ) 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 ( 28 | 22 | 27 ) }
$objecturl = { ( 2e | 22 | 27 ) 63 72 65 61 74 65 4f 62 6a 65 63 74 55 52 4c ( 28 | 22 | 27 ) }
$download = { ( 2e | 22 | 27 ) 64 6f 77 6e 6c 6f 61 64 ( 3d | 22 | 27 ) }
$click = { ( 2e | 22 | 27 ) 63 6c 69 63 6b ( 3d | 22 | 27 ) }
$atob = { 61 74 6f 62 ( 28 | 22 | 27 ) }
$blob = "new Blob("
$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 ( $mssave or ( #element == 1 and #objecturl == 1 and #download == 1 and #click == 1 ) ) and $blob and $array and $atob and ( #ole2 + #pe32 + #iso + #udf + #zip + #jsxor ) == 1
}
Strings (14 patterns)
| Identifier | Type | Value | Modifiers |
|---|---|---|---|
| $mssave | hex | { ( 2e | 22 | 27 ) 6d 73 53 61 76 65 } | |
| $element | hex | { ( 2e | 22 | 27 ) 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 ( 28 | 22 | 27 ) } | |
| $objecturl | hex | { ( 2e | 22 | 27 ) 63 72 65 61 74 65 4f 62 6a 65 63 74 55 52 4c ( 28 | 22 | 27 ) } | |
| $download | hex | { ( 2e | 22 | 27 ) 64 6f 77 6e 6c 6f 61 64 ( 3d | 22 | 27 ) } | |
| $click | hex | { ( 2e | 22 | 27 ) 63 6c 69 63 6b ( 3d | 22 | 27 ) } | |
| $atob | hex | { 61 74 6f 62 ( 28 | 22 | 27 ) } | |
| $blob | text | "new Blob(" | |
| $array | text | "new Uint8Array(" | |
| $ole2 | text | "0M8R4KGxGuEA" | |
| $pe32 | text | "TVqQAAMAAAAE" | |
| $iso | text | "AAAABQ0QwMDE" | |
| $udf | text | "AAAAQkVBMDEB" | |
| $zip | hex | { 55 45 73 44 42 ( 41 | 42 | 43 | 44 ) ( 6f | 30 | 4d | 51 ) ( 41 | 44 ) ( 41 | 43 ) } | |
| $jsxor | hex | { 2e 63 68 61 72 43 6f 64 65 41 74 28 [1-10] 29 ( 5e | 20 5e ) } |
Condition
filesize < 5MB and ( $mssave or ( #element == 1 and #objecturl == 1 and #download == 1 and #click == 1 ) ) and $blob and $array and $atob and ( #ole2 + #pe32 + #iso + #udf + #zip + #jsxor ) == 1In plain words (Heuristic)
- The file must be smaller than 5MB (a cheap guard that skips large files).
- Pattern $element must occur == 1 times.
- Pattern $objecturl must occur == 1 times.
- Pattern $download must occur == 1 times.
- Pattern $click must occur == 1 times.
- Pattern $mssave must be present.
- Pattern $blob must be present.
- Pattern $array must be present.
- Pattern $atob 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.
References
MITRE ATT&CK
Sample hashes
Hashes of samples the author lists in the rule's meta (look them up in your threat-intelligence platform).
- 279d5ef8f80aba530aaac8afd049fa171704fc703d9cfe337b56639732e8ce11
Licence & attribution
Author: marcin@ulikowski.pl
Source repository: elceef yara-rulz @ 5683b294a1
Licence: MIT License (repository licence)
Copyright notice: Copyright (c) 2022 Marcin Ulikowski
Mirrored via YARA Forge 20260927, which prefixes rule names with the source and adds normalised meta fields.
Rule id: b711318f-81d2-5d0b-968f-04ae18fdea5b
Related rules
- Genericelceef yara-rulz· marcin@ulikowski.pl· 2023-04-17
- Genericelceef yara-rulz· marcin@ulikowski.pl· 2022-12-02
- MalwareTrellix Advanced Research Center· TS @ McAfee ATR· 2021-01-19
- Exploitelceef yara-rulz· marcin@ulikowski.pl· 2025-08-18
- Genericelceef yara-rulz· marcin@ulikowski.pl· 2024-04-10
- Genericelceef yara-rulz· marcin@ulikowski.pl· 2023-05-05
- Suspicious / huntingelceef yara-rulz· marcin@ulikowski.pl· 2023-05-01
- Exploitelceef yara-rulz· marcin@ulikowski.pl· 2023-09-23