YARA · Volexity threat-intel
VOLEXITY_Apt_Ico_Uta0040_B64_C2
Detection of malicious ICO files used in 3CX compromise.
- Author
- threatintel@volexity.com
- Date
- 2023-03-30
- Score / Quality
- 75 / 80
What this rule detects
Detection of malicious ICO files used in 3CX compromise.
It defines 2 patterns (0 text, 2 hex, 0 regex).
YARA-X says: warning[potentially_slow_loop]: potentially slow loop
Summary generated from the rule's metadata and condition.
Rule source
rule VOLEXITY_Apt_Ico_Uta0040_B64_C2 : UTA0040 FILE
{
meta:
= "Detection of malicious ICO files used in 3CX compromise."
= "threatintel@volexity.com"
= "1efb6376-a362-5f03-b4d3-08cd7d634de6"
= "2023-03-30"
= "2023-03-30"
= "https://github.com/volexity/threat-intel"
= "https://github.com/volexity/threat-intel/blob/3a9d0b52459877ee866a9a0ba06e60059b778c77/2023/2023-03-30 3CX/indicators/rules.yar#L1-L31"
= "https://github.com/volexity/threat-intel/blob/3a9d0b52459877ee866a9a0ba06e60059b778c77/LICENSE.txt"
= "a541e5fc421c358e0a2b07bf4771e897fb5a617998aa4876e0e1baa5fbb8e25c"
= "2667a36ce151c6e964f9ce9a6f587eedbffdd6ec76e451a23c5cfdd08248d15e"
= 75
= 80
= "UTA0040, FILE"
= 0
= "See license at https://github.com/volexity/threat-intel/blob/main/LICENSE.txt"
strings:
$IEND_dollar = {49 45 4e 44 ae 42 60 82 24}
$IEND_nodollar = {49 45 4e 44 ae 42 60 82 }
condition:
uint16be( 0 ) == 0x0000 and filesize < 120KB and ( $IEND_dollar in ( filesize -500 .. filesize ) and not $IEND_nodollar in ( filesize -20 .. filesize ) and for any k in ( 1 .. #IEND_dollar ) : ( for all i in ( 1 .. 4 ) : ( uint8( @IEND_dollar [ k ] + !IEND_dollar [ k ] + i ) < 123 and uint8( @IEND_dollar [ k ] + !IEND_dollar [ k ] + i ) > 47 ) ) )
}
Strings (2 patterns)
| Identifier | Type | Value | Modifiers |
|---|---|---|---|
| $IEND_dollar | hex | {49 45 4e 44 ae 42 60 82 24} | |
| $IEND_nodollar | hex | {49 45 4e 44 ae 42 60 82 } |
Condition
uint16be( 0 ) == 0x0000 and filesize < 120KB and ( $IEND_dollar in ( filesize -500 .. filesize ) and not $IEND_nodollar in ( filesize -20 .. filesize ) and for any k in ( 1 .. #IEND_dollar ) : ( for all i in ( 1 .. 4 ) : ( uint8( @IEND_dollar [ k ] + !IEND_dollar [ k ] + i ) < 123 and uint8( @IEND_dollar [ k ] + !IEND_dollar [ k ] + i ) > 47 ) ) )In plain words (Heuristic)
- The file must be smaller than 120KB (a cheap guard that skips large files).
- Pattern $IEND_dollar must be found within the range filesize -500 .. filesize.
- Pattern $IEND_nodollar must be found within the range filesize -20 .. filesize.
- A for-loop checks a property over several matches or items.
- Pattern $IEND_nodollar must NOT 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.
References
Sample hashes
Hashes of samples the author lists in the rule's meta (look them up in your threat-intelligence platform).
- a541e5fc421c358e0a2b07bf4771e897fb5a617998aa4876e0e1baa5fbb8e25c
Licence & attribution
Author: threatintel@volexity.com
Source repository: Volexity threat-intel @ 3a9d0b5245
Licence: BSD 2-Clause License (stated in the rule's own meta)
“See license at https://github.com/volexity/threat-intel/blob/main/LICENSE.txt”
Copyright notice: Copyright 2022 by Volexity, Inc.
Mirrored via YARA Forge 20260927, which prefixes rule names with the source and adds normalised meta fields.
Rule id: 1efb6376-a362-5f03-b4d3-08cd7d634de6
Metadata
| memory_suitable | 0 |
|---|
Related rules
- APT / threat actorVolexity threat-intel· threatintel@volexity.com· 2023-03-30
- APT / threat actorVolexity threat-intel· threatintel@volexity.com· 2023-03-30
- APT / threat actorVolexity threat-intel· threatintel@volexity.com· 2023-03-30
- APT / threat actorVolexity threat-intel· threatintel@volexity.com· 2024-07-30
- APT / threat actorVolexity threat-intel· threatintel@volexity.com· 2023-07-21
- APT / threat actorVolexity threat-intel· threatintel@volexity.com· 2023-08-17
- APT / threat actorVolexity threat-intel· threatintel@volexity.com· 2022-11-03
- APT / threat actorVolexity threat-intel· threatintel@volexity.com· 2022-11-02