YARA · Volexity threat-intel
VOLEXITY_Apt_Malware_Ps1_Powerless_B
Detects POWERLESS malware.
- Author
- threatintel@volexity.com
- Date
- 2023-10-25
- Modified
- 2024-01-29
- Score / Quality
- 75 / 78
What this rule detects
Detects POWERLESS malware.
It defines 34 patterns (34 text, 0 hex, 0 regex).
Summary generated from the rule's metadata and condition.
Rule source
rule VOLEXITY_Apt_Malware_Ps1_Powerless_B : CHARMINGCYPRESS FILE MEMORY
{
meta:
= "Detects POWERLESS malware."
= "threatintel@volexity.com"
= "e62703b5-32fb-5ceb-9f21-f52a4871f3d9"
= "2023-10-25"
= "2024-01-29"
= "TIB-20231027"
= "https://github.com/volexity/threat-intel/blob/3a9d0b52459877ee866a9a0ba06e60059b778c77/2024/2024-02-13 CharmingCypress/rules.yar#L100-L157"
= "https://github.com/volexity/threat-intel/blob/3a9d0b52459877ee866a9a0ba06e60059b778c77/LICENSE.txt"
= "62de7abb39cf4c47ff120c7d765749696a03f4fa4e3e84c08712bb0484306ae1"
= "eb9d199c1f7c2a42d711c1a44ab13526787169c18a77ce988568525baca043ef"
= 75
= 78
= "CHARMINGCYPRESS, FILE, MEMORY"
= "win"
= "all"
= "file,memory"
= "critical"
= "See license at https://github.com/volexity/threat-intel/blob/main/LICENSE.txt"
= 9794
= 5
strings:
$fun_1 = "function verifyClickStorke"
$fun_2 = "function ConvertTo-SHA256"
$fun_3 = "function Convert-Tobase" fullword
$fun_4 = "function Convert-Frombase" fullword
$fun_5 = "function Send-Httppacket"
$fun_6 = "function Generat-FetchCommand"
$fun_7 = "function Create-Fetchkey"
$fun_8 = "function Run-Uploader"
$fun_9 = "function Run-Shot" fullword
$fun_10 = "function ShotThis("
$fun_11 = "function File-Manager"
$fun_12 = "function zip-files"
$fun_13 = "function Run-Stealer"
$fun_14 = "function Run-Downloader"
$fun_15 = "function Run-Stro" fullword
$fun_16 = "function Run-Tele" fullword
$fun_17 = "function Run-Voice"
$s_1 = "if($commandtype -eq \"klg\")"
$s_2 = "$desrilizedrecievedcommand"
$s_3 = "$getAsyncKeyProto = @"
$s_4 = "$Global:BotId ="
$s_5 = "$targetCLSID = (Get-ScheduledTask | Where-Object TaskName -eq"
$s_6 = "$burl = \"$Global:HostAddress/"
$s_7 = "$hashString = [System.BitConverter]::ToString($hash).Replace('-','').ToLower()"
$s_8 = "$Global:UID = ((gwmi win32_computersystemproduct).uuid -replace '[^0-9a-z]').substring("
$s_9 = "$rawpacket = \"{`\"MId`\":`\"$Global:MachineID`\",`\"BotId`\":`\"$basebotid`\"}\""
$s_12 = "Runned Without any Error"
$s_13 = "$commandresponse = (Invoke-Expression $instruction -ErrorAction Stop) | Out-String"
$s_14 = "Operation started successfuly"
$s_15 = "$t_path = (Get-WmiObject Win32_Process -Filter \"name = '$process'\" | Select-Object CommandLine).CommandLine"
$s_16 = "?{ $_.DisplayName -match \"Telegram Desktop\" } | %{$app_path += $_.InstallLocation }"
$s_17 = "$chlids = get-ChildItem $t -Recurse -Exclude \"$t\\tdata\\user_data\""
$s_18 = "if($FirsttimeFlag -eq $True)"
$s_19 = "Update-Conf -interval $inter -url $url -next_url $next -conf_path $conf_path -key $config_key"
condition:
3 of ( $fun_* ) or any of ( $s_* )
}
Strings (34 patterns)
| Identifier | Type | Value | Modifiers |
|---|---|---|---|
| $fun_1 | text | "function verifyClickStorke" | |
| $fun_2 | text | "function ConvertTo-SHA256" | |
| $fun_3 | text | "function Convert-Tobase" | fullword |
| $fun_4 | text | "function Convert-Frombase" | fullword |
| $fun_5 | text | "function Send-Httppacket" | |
| $fun_6 | text | "function Generat-FetchCommand" | |
| $fun_7 | text | "function Create-Fetchkey" | |
| $fun_8 | text | "function Run-Uploader" | |
| $fun_9 | text | "function Run-Shot" | fullword |
| $fun_10 | text | "function ShotThis(" | |
| $fun_11 | text | "function File-Manager" | |
| $fun_12 | text | "function zip-files" | |
| $fun_13 | text | "function Run-Stealer" | |
| $fun_14 | text | "function Run-Downloader" | |
| $fun_15 | text | "function Run-Stro" | fullword |
| $fun_16 | text | "function Run-Tele" | fullword |
| $fun_17 | text | "function Run-Voice" | |
| $s_1 | text | "if($commandtype -eq \"klg\")" | |
| $s_2 | text | "$desrilizedrecievedcommand" | |
| $s_3 | text | "$getAsyncKeyProto = @" | |
| $s_4 | text | "$Global:BotId =" | |
| $s_5 | text | "$targetCLSID = (Get-ScheduledTask | Where-Object TaskName -eq" | |
| $s_6 | text | "$burl = \"$Global:HostAddress/" | |
| $s_7 | text | "$hashString = [System.BitConverter]::ToString($hash).Replace('-','').ToLower()" | |
| $s_8 | text | "$Global:UID = ((gwmi win32_computersystemproduct).uuid -replace '[^0-9a-z]').substring(" | |
| $s_9 | text | "$rawpacket = \"{`\"MId`\":`\"$Global:MachineID`\",`\"BotId`\":`\"$basebotid`\"}\"" | |
| $s_12 | text | "Runned Without any Error" | |
| $s_13 | text | "$commandresponse = (Invoke-Expression $instruction -ErrorAction Stop) | Out-String" | |
| $s_14 | text | "Operation started successfuly" | |
| $s_15 | text | "$t_path = (Get-WmiObject Win32_Process -Filter \"name = '$process'\" | Select-Object CommandLine).CommandLine" | |
| $s_16 | text | "?{ $_.DisplayName -match \"Telegram Desktop\" } | %{$app_path += $_.InstallLocation }" | |
| $s_17 | text | "$chlids = get-ChildItem $t -Recurse -Exclude \"$t\\tdata\\user_data\"" | |
| $s_18 | text | "if($FirsttimeFlag -eq $True)" | |
| $s_19 | text | "Update-Conf -interval $inter -url $url -next_url $next -conf_path $conf_path -key $config_key" |
Condition
3 of ( $fun_* ) or any of ( $s_* )In plain words (Heuristic)
- At least one pattern in ( $s_* ) must match.
- At least 3 patterns in ( $fun_* ) must match.
Test this rule in your browser
Drop a file to scan it with this rule using YARA-X compiled to WebAssembly. Nothing is uploaded.
Sample hashes
Hashes of samples the author lists in the rule's meta (look them up in your threat-intelligence platform).
- 62de7abb39cf4c47ff120c7d765749696a03f4fa4e3e84c08712bb0484306ae1
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: e62703b5-32fb-5ceb-9f21-f52a4871f3d9
Metadata
| os | win |
|---|---|
| os_arch | all |
| scan_context | file,memory |
| severity | critical |
| rule_id | 9794 |
| version | 5 |
Tags:CHARMINGCYPRESSFILEMEMORY
Related rules
- APT / threat actorVolexity threat-intel· threatintel@volexity.com· 2024-01-04
- APT / threat actorVolexity threat-intel· threatintel@volexity.com· 2023-10-17
- APT / threat actorVolexity threat-intel· threatintel@volexity.com· 2023-10-17
- APT / threat actorVolexity threat-intel· threatintel@volexity.com· 2023-10-17
- APT / threat actorVolexity threat-intel· threatintel@volexity.com· 2023-06-02
- 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