Permalink
Find file
41b8e37 Jul 24, 2016
119 lines (98 sloc) 4.18 KB
/*
This Yara ruleset is under the GNU-GPLv2 license (http://www.gnu.org/licenses/gpl-2.0.html) and open to any user or organization, as long as you use it under this license.
*/
rule Atmos_Malware : kutuzov_101 Banker Atmos
{
meta:
description = "Generic Spyware.Citadel.Atmos Signature"
author = "xylitol@temari.fr"
reference = "http://www.xylibox.com/2016/02/citadel-0011-atmos.html"
date = "20/08/2016"
// May only the challenge guide you
strings:
// Check for the presence of MZ and kutuzov license identifier
$MZ = {4D 5A}
$LKEY = "533D9226E4C1CE0A9815DBEB19235AE4" wide ascii
// TokenSpy identifiers
$TS1 = "X-TS-Rule-Name: %s" wide ascii
$TS2 = "X-TS-Rule-PatternID: %u" wide ascii
$TS3 = "X-TS-BotID: %s" wide ascii
$TS4 = "X-TS-Domain: %s" wide ascii
$TS5 = "X-TS-SessionID: %s" wide ascii
$TS6 = "X-TS-Header-Cookie: %S" wide ascii
$TS7 = "X-TS-Header-Referer: %S" wide ascii
$TS8 = "X-TS-Header-AcceptEncoding: %S" wide ascii
$TS9 = "X-TS-Header-AcceptLanguage: %S" wide ascii
$TS10 = "X-TS-Header-UserAgent: %S" wide ascii
// Hidden VNC identifiers
$VNC1 = "_hvnc_init@4" wide ascii
$VNC2 = "_hvnc_uninit@0" wide ascii
$VNC3 = "_hvnc_start@8" wide ascii
$VNC4 = "_hvnc_stop@0" wide ascii
$VNC5 = "_hvnc_wait@0" wide ascii
$VNC6 = "_hvnc_work@0" wide ascii
// Browsers identifiers
$WB1 = "nspr4.dll" wide ascii
$WB2 = "nss3.dll" wide ascii
$WB3 = "chrome.dll" wide ascii
$WB4 = "Internet Explorer" wide ascii
$WB5 = "Firefox" wide ascii
$WB6 = "Chrome" wide ascii
condition:
($MZ at 0 and $LKEY) and
(
(5 of ($TS*) and all of ($WB*)) or
(3 of ($VNC*) and all of ($WB*))
)
and filesize < 300KB // Standard size (raw from builder) should be arround ~264kb
// Remove the above line if you want to trig also on memory dumps, etc...
}
rule Atmos_Packed_Malware : Packed Atmos Banker
{
meta:
description = "Second Generic Spyware.Citadel.Atmos signture when builder add a packed layer"
author = "xylitol@temari.fr"
reference = "http://www.xylibox.com/2016/02/citadel-0011-atmos.html"
date = "20/08/2016"
// May only the challenge guide you
strings:
$MZ = {4D 5A}
// Entry point identifier with CreateThread pointer in '??'
$a = {55 8B EC 83 EC 0C 53 56 8B 35 ?? ?? ?? 00 57 33 DB BF 00 28 00 00}
// End of main proc with sleep value in '??' and api call to sleep in '??'
$b = {68 ?? ?? ?? ?? FF 15 ?? ?? ?? 00 E9 62 FF FF FF E8 69 10 FE FF 5F 5E 5B C9 C3}
// API String identifier (ShellExecuteExW, SHELL32.dll, GetUserNameExW, Secur32.dll)
$c = {53 68 65 6C 6C 45 78 65 63 75 74 65 45 78 57 00 53 48 45 4C 4C 33 32 2E 64 6C 6C 00 1E 00 47 65}
$d = {74 55 73 65 72 4E 61 6D 65 45 78 57 00 00 53 65 63 75 72 33 32 2E 64 6C 6C 00 10 00}
// New Thread identifier
$e = {55 8B EC 83 E4 F8 83 EC 1C 83 7D 08 00 57 74 ?? 6A FF FF 75 08 FF 15 ?? ?? ?? 00}
condition:
all of them
and filesize < 300KB // Standard size (raw from builder) should be arround ~264kb
// Remove the above line if you want to trig also on memory dumps, etc...
}
rule Atmos_Builder : Cracked kutuzov Builder
{
meta:
description = "Generic signature for Hacktool.Atmos.Builder cracked version"
author = "xylitol@temari.fr"
reference = "http://www.xylibox.com/2016/02/citadel-0011-atmos.html"
date = "20/08/2016"
// May only the challenge guide you
strings:
// Check for the presence of MZ, kutuzov license identifier, and good hardware ID
$MZ = {4D 5A}
$LKEY = "533D9226E4C1CE0A9815DBEB19235AE4" wide ascii
$HWID = "D19FC0FB14BE23BCF35DA427951BB5AE" wide ascii
// Builder strings identifiers
$s1 = "url_loader=%S" wide ascii
$s2 = "url_webinjects=%S" wide ascii
$s3 = "url_tokenspy=%S" wide ascii
$s4 = "file_webinjects=%S" wide ascii
$s5 = "moneyparser.enabled=%u" wide ascii
$s6 = "enable_luhn10_post=%u" wide ascii
$s7 = "insidevm_enable=%u" wide ascii
$s8 = "disable_antivirus=%u" wide ascii
condition:
$MZ at 0 and $LKEY and $HWID and all of ($s*)
}