Skip to content

YARA · Volexity threat-intel

VOLEXITY_Apt_Malware_Py_Dustpan_Pyloader

Detects Python script used by KPlayer to update, modified by attackers to download a malicious payload.

APT / threat actorDustpanVolexity threat-intelBSD 2-Clause LicenseCompiles with YARA-X
Author
threatintel@volexity.com
Date
2023-07-21
Modified
2024-08-02
Score / Quality
75 / 80

What this rule detects

Detects Python script used by KPlayer to update, modified by attackers to download a malicious payload.

Associated malware family: Dustpan.

It defines 11 patterns (11 text, 0 hex, 0 regex).

Summary generated from the rule's metadata and condition.

Rule source

apt-malware-py-dustpan-pyloader.yarBSD 2-Clause License
rule VOLEXITY_Apt_Malware_Py_Dustpan_Pyloader : STORMBAMBOO FILE MEMORY
{
	meta:
		description = "Detects Python script used by KPlayer to update, modified by attackers to download a malicious payload."
		author = "threatintel@volexity.com"
		id = "446d2eef-c60a-50ed-9ff1-df86b6210dff"
		date = "2023-07-21"
		modified = "2024-08-02"
		reference = "TIB-20231221"
		source_url = "https://github.com/volexity/threat-intel/blob/3a9d0b52459877ee866a9a0ba06e60059b778c77/2024/2024-08-02 StormBamboo/rules.yar#L236-L270"
		license_url = "https://github.com/volexity/threat-intel/blob/3a9d0b52459877ee866a9a0ba06e60059b778c77/LICENSE.txt"
		logic_hash = "bb3a70dad28181534e27abbbd618165652c137264bfd3726ae4480c642493a3b"
		score = 75
		quality = 80
		tags = "STORMBAMBOO, FILE, MEMORY"
		os = "all"
		os_arch = "all"
		scan_context = "file,memory"
		severity = "critical"
		license = "See license at https://github.com/volexity/threat-intel/blob/main/LICENSE.txt"
		rule_id = 9530
		version = 4

	strings:
		$s_1 = "def count_md5(src)"
		$s_2 = "urllib.request.urlretrieve(image_url,main)"
		$s_3 = "m1 != '4c8a326899272d2fe30e818181f6f67f'"
		$s_4 = "os.path.split(os.path.realpath(__file__))[0]"
		$s_5 = "r_v = os.system('curl '+ini_url+cc)"
		$s_6 = "b41ef5f591226a0d5adce99cb2e629d8"
		$s_7 = "1df495e7c85e59ad0de1b9e50912f8d0"
		$s_8 = "tasklist | findstr mediainfo.exe"
		$url_1 = "http://dl1.5kplayer.com/youtube/youtube_dl.png"
		$url_2 = "http://dl1.5kplayer.com/youtube/youtube.ini?fire="
		$path_1 = "C:\\\\ProgramData\\\\Digiarty\\\\mediainfo.exe"

	condition:
		3 of ( $s_* ) or any of ( $url_* ) or $path_1
}

Strings (11 patterns)

IdentifierTypeValueModifiers
$s_1text"def count_md5(src)"
$s_2text"urllib.request.urlretrieve(image_url,main)"
$s_3text"m1 != '4c8a326899272d2fe30e818181f6f67f'"
$s_4text"os.path.split(os.path.realpath(__file__))[0]"
$s_5text"r_v = os.system('curl '+ini_url+cc)"
$s_6text"b41ef5f591226a0d5adce99cb2e629d8"
$s_7text"1df495e7c85e59ad0de1b9e50912f8d0"
$s_8text"tasklist | findstr mediainfo.exe"
$url_1text"http://dl1.5kplayer.com/youtube/youtube_dl.png"
$url_2text"http://dl1.5kplayer.com/youtube/youtube.ini?fire="
$path_1text"C:\\\\ProgramData\\\\Digiarty\\\\mediainfo.exe"

Condition

3 of ( $s_* ) or any of ( $url_* ) or $path_1

In plain words (Heuristic)

  • At least one pattern in ( $url_* ) must match.
  • At least 3 patterns in ( $s_* ) must match.
  • Pattern $path_1 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.

Open in editor

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.

Original rule

Mirrored via YARA Forge 20260927, which prefixes rule names with the source and adds normalised meta fields.

Rule id: 446d2eef-c60a-50ed-9ff1-df86b6210dff

Metadata

osall
os_archall
scan_contextfile,memory
severitycritical
rule_id9530
version4

Tags:STORMBAMBOOFILEMEMORY

More Dustpan rules