Skip to content

YARA · Volexity threat-intel

VOLEXITY_Apt_Malware_Python_Knuckleball

Detects KNUCKLEBALL, a python based injector malware, using string patterns.

APT / threat actorVolexity threat-intelBSD 2-Clause LicenseCompiles with YARA-X
Author
threatintel@volexity.com
Date
2026-07-06
Modified
2026-07-14
Score / Quality
75 / 80

What this rule detects

Detects KNUCKLEBALL, a python based injector malware, using string patterns.

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

Summary generated from the rule's metadata and condition.

Rule source

apt-malware-python-knuckleball.yarBSD 2-Clause License
rule VOLEXITY_Apt_Malware_Python_Knuckleball : UTA0533 KNUCKLEBALL FILE MEMORY
{
	meta:
		description = "Detects KNUCKLEBALL, a python based injector malware, using string patterns."
		author = "threatintel@volexity.com"
		id = "bceaee99-902b-5e0d-a8e6-f9909fcd3334"
		date = "2026-07-06"
		modified = "2026-07-14"
		reference = "https://github.com/volexity/threat-intel"
		source_url = "https://github.com/volexity/threat-intel/blob/3a9d0b52459877ee866a9a0ba06e60059b778c77/2026/2026-07-17 SonicWall/rules.yar#L77-L109"
		license_url = "https://github.com/volexity/threat-intel/blob/3a9d0b52459877ee866a9a0ba06e60059b778c77/LICENSE.txt"
		hash = "8c470301dcb7278f73e622f1950073567b34011c64b60cdfbb0f89803923a5a3"
		logic_hash = "306b5e0cc66af163c1dea29f8c55f0dbb396ddcefb63f22d62601d7cf1ea839d"
		score = 75
		quality = 80
		tags = "UTA0533, KNUCKLEBALL, FILE, MEMORY"
		os = "linux"
		os_arch = "all"
		scan_context = "file,memory"
		severity = "high"
		report1 = "TIB-20260714B"
		license = "See license at https://github.com/volexity/threat-intel/blob/main/LICENSE.txt"
		rule_id = 13233
		version = 5

	strings:
		$s1 = "/tmp/.java_pid{pid}" ascii
		$s2 = "/tmp/.attach_pid{pid}" ascii
		$s3 = "timeout waiting for JVMTI attach socket" ascii
		$s4 = "workplace.startup.CommandStartup" ascii
		$s5 = "/var/run/control.unit.sock" ascii
		$func1 = "unit_put(" ascii
		$func2 = "check_gate(" ascii
		$func3 = "inject_jar(" ascii
		$func4 = "find_wp_pid(" ascii

	condition:
		2 of ( $s* ) or 3 of ( $func* )
}

Strings (9 patterns)

IdentifierTypeValueModifiers
$s1text"/tmp/.java_pid{pid}"ascii
$s2text"/tmp/.attach_pid{pid}"ascii
$s3text"timeout waiting for JVMTI attach socket"ascii
$s4text"workplace.startup.CommandStartup"ascii
$s5text"/var/run/control.unit.sock"ascii
$func1text"unit_put("ascii
$func2text"check_gate("ascii
$func3text"inject_jar("ascii
$func4text"find_wp_pid("ascii

Condition

2 of ( $s* ) or 3 of ( $func* )

In plain words (Heuristic)

  • At least 2 patterns in ( $s* ) must match.
  • At least 3 patterns in ( $func* ) 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.

Drop a file here or click to chooseScanned locally with YARA-X. Files up to 200 MB.

Open in editor

References

Sample hashes

Hashes of samples the author lists in the rule's meta (look them up in your threat-intelligence platform).

  • 8c470301dcb7278f73e622f1950073567b34011c64b60cdfbb0f89803923a5a3

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: bceaee99-902b-5e0d-a8e6-f9909fcd3334

Metadata

oslinux
os_archall
scan_contextfile,memory
severityhigh
report1TIB-20260714B
rule_id13233
version5

Tags:UTA0533KNUCKLEBALLFILEMEMORY