YARA · ESET malware-ioc
ESET_Apt_Windows_Invisimole_C2
InvisiMole C&C servers
- Author
- ESET Research
- Date
- 2021-05-17
- Score / Quality
- 75 / 78
What this rule detects
InvisiMole C&C servers
Associated malware family: Invisimole.
Targets: Windows PE.
It defines 25 patterns (25 text, 0 hex, 0 regex).
YARA-X says: warning[duplicate_pattern_value]: duplicate pattern value
Summary generated from the rule's metadata and condition.
Rule source
Includes the imports and 1 rule(s) it depends on needed to compile it on its own.
private rule ESET_Invisimole_Blob_PRIVATE
{
meta:
= "Detects InvisiMole blobs by magic values"
= "ESET Research"
= "6a179d91-50f1-5400-b141-0f162efd2431"
= "2021-05-17"
= "2021-05-17"
= "https://github.com/eset/malware-ioc/"
= "https://github.com/eset/malware-ioc/blob/17baf44964a77368e9149f4f593eb098beddf1c5/invisimole/invisimole.yar#L34-L52"
= "https://github.com/eset/malware-ioc/blob/17baf44964a77368e9149f4f593eb098beddf1c5/LICENSE"
= "8bddaf874da58fbe6362498f8979b511f39531fe2b98d4be8c099bdafb6d0067"
= 75
= 80
= ""
= "BSD 2-Clause"
= "1"
strings:
$magic_old_32 = {F9 FF D0 DE}
$magic_old_64 = {64 FF D0 DE}
$magic_new_32 = {86 DA 11 CE}
$magic_new_64 = {64 DA 11 CE}
condition:
($magic_old_32 at 0 ) or ( $magic_old_64 at 0 ) or ( $magic_new_32 at 0 ) or ( $magic_new_64 at 0 )
}
rule ESET_Apt_Windows_Invisimole_C2 : FILE
{
meta:
= "InvisiMole C&C servers"
= "ESET Research"
= "9279c8cd-2c16-5f90-a7f5-e668d57c805b"
= "2021-05-17"
= "2021-05-17"
= "https://github.com/eset/malware-ioc/"
= "https://github.com/eset/malware-ioc/blob/17baf44964a77368e9149f4f593eb098beddf1c5/invisimole/invisimole.yar#L257-L297"
= "https://github.com/eset/malware-ioc/blob/17baf44964a77368e9149f4f593eb098beddf1c5/LICENSE"
= "aff8456ce7a9ebe875c02e51c09b77ee7b1fddfc11d4ad236e12c8c5240a01a8"
= 75
= 78
= "FILE"
= "BSD 2-Clause"
= "1"
strings:
$s1 = "46.165.220.228" ascii wide
$s2 = "80.255.3.66" ascii wide
$s3 = "85.17.26.174" ascii wide
$s4 = "185.193.38.55" ascii wide
$s5 = "194.187.249.157" ascii wide
$s6 = "195.154.255.211" ascii wide
$s7 = "153.re" ascii wide fullword
$s8 = "adstat.red" ascii wide
$s9 = "adtrax.net" ascii wide
$s10 = "akamai.sytes.net" ascii wide
$s11 = "amz-eu401.com" ascii wide
$s12 = "blabla234342.sytes.net" ascii wide
$s13 = "mx1.be" ascii wide fullword
$s14 = "statad.de" ascii wide
$s15 = "time.servehttp.com" ascii wide
$s16 = "upd.re" ascii wide fullword
$s17 = "update.xn--6frz82g" ascii wide
$s18 = "updatecloud.sytes.net" ascii wide
$s19 = "updchecking.sytes.net" ascii wide
$s20 = "wlsts.net" ascii wide
$s21 = "ro2.host" ascii wide fullword
$s22 = "2ld.xyz" ascii wide fullword
$s23 = "the-haba.com" ascii wide
$s24 = "82.202.172.134" ascii wide
$s25 = "update.xn--6frz82g" ascii wide
condition:
(( uint16( 0 ) == 0x5A4D ) or ESET_Invisimole_Blob_PRIVATE ) and $s21 and any of them
}
Strings (25 patterns)
| Identifier | Type | Value | Modifiers |
|---|---|---|---|
| $s1 | text | "46.165.220.228" | ascii wide |
| $s2 | text | "80.255.3.66" | ascii wide |
| $s3 | text | "85.17.26.174" | ascii wide |
| $s4 | text | "185.193.38.55" | ascii wide |
| $s5 | text | "194.187.249.157" | ascii wide |
| $s6 | text | "195.154.255.211" | ascii wide |
| $s7 | text | "153.re" | ascii wide fullword |
| $s8 | text | "adstat.red" | ascii wide |
| $s9 | text | "adtrax.net" | ascii wide |
| $s10 | text | "akamai.sytes.net" | ascii wide |
| $s11 | text | "amz-eu401.com" | ascii wide |
| $s12 | text | "blabla234342.sytes.net" | ascii wide |
| $s13 | text | "mx1.be" | ascii wide fullword |
| $s14 | text | "statad.de" | ascii wide |
| $s15 | text | "time.servehttp.com" | ascii wide |
| $s16 | text | "upd.re" | ascii wide fullword |
| $s17 | text | "update.xn--6frz82g" | ascii wide |
| $s18 | text | "updatecloud.sytes.net" | ascii wide |
| $s19 | text | "updchecking.sytes.net" | ascii wide |
| $s20 | text | "wlsts.net" | ascii wide |
| $s21 | text | "ro2.host" | ascii wide fullword |
| $s22 | text | "2ld.xyz" | ascii wide fullword |
| $s23 | text | "the-haba.com" | ascii wide |
| $s24 | text | "82.202.172.134" | ascii wide |
| $s25 | text | "update.xn--6frz82g" | ascii wide |
Condition
(( uint16( 0 ) == 0x5A4D ) or ESET_Invisimole_Blob_PRIVATE ) and $s21 and any of themIn plain words (Heuristic)
- The file must start with “MZ” — a Windows executable (PE).
- At least one pattern in the rule must match.
- Depends on the rule ESET_Invisimole_Blob_PRIVATE.
- Pattern $s21 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.
References
Licence & attribution
Author: ESET Research
Source repository: ESET malware-ioc @ 17baf44964
Licence: BSD 2-Clause License (stated in the rule's own meta)
“BSD 2-Clause”
Copyright notice: Copyright (c) 2014-2018 ESET spol. s r.o.
Mirrored via YARA Forge 20260927, which prefixes rule names with the source and adds normalised meta fields.
Rule id: 9279c8cd-2c16-5f90-a7f5-e668d57c805b
Metadata
| version | 1 |
|---|
Tags:FILE
Related rules
- APT / threat actorESET malware-ioc· ESET Research· 2021-05-17
- APT / threat actorESET malware-ioc· ESET Research· 2021-05-17
- APT / threat actorESET malware-ioc· ESET Research· 2021-05-17
- APT / threat actorESET malware-ioc· ESET Research· 2021-05-17
- APT / threat actorESET malware-ioc· ESET Research· 2021-05-17
- APT / threat actorESET malware-ioc· ESET Research· 2021-05-17
- APT / threat actorESET malware-ioc· ESET Research· 2021-05-17
- MalwareESET malware-ioc· ESET Research· 2021-05-17