Skip to content

YARA · Volexity threat-intel

VOLEXITY_Apt_Malware_Golang_Govershell_Strings_UTA0388

This rule detects multiple variants of the GOVERSHELL malware family employed by UTA0388 via unique strings. The implant is side-loaded by a legitimate executable and uses various network protocol to communicate with the C2 server.

APT / threat actorVolexity threat-intelBSD 2-Clause LicenseCompiles with YARA-X (with warnings)
Author
threatintel@volexity.com
Date
2025-06-30
Modified
2025-10-08
Score / Quality
75 / 78

What this rule detects

This rule detects multiple variants of the GOVERSHELL malware family employed by UTA0388 via unique strings. The implant is side-loaded by a legitimate executable and uses various network protocol to communicate with the C2 server.

It defines 32 patterns (24 text, 8 hex, 0 regex).

YARA-X says: warning[duplicate_pattern_value]: duplicate pattern value

Summary generated from the rule's metadata and condition.

Rule source

apt-malware-golang-govershell-strings-uta0388.yarBSD 2-Clause License
rule VOLEXITY_Apt_Malware_Golang_Govershell_Strings_UTA0388 : UTA0388 FILE MEMORY
{
	meta:
		description = "This rule detects multiple variants of the GOVERSHELL malware family employed by UTA0388 via unique strings. The implant is side-loaded by a legitimate executable and uses various network protocol to communicate with the C2 server."
		author = "threatintel@volexity.com"
		id = "1fe9b2b8-5c74-5d3c-954b-37f625911f75"
		date = "2025-06-30"
		modified = "2025-10-08"
		reference = "TIB-20250708B"
		source_url = "https://github.com/volexity/threat-intel/blob/3a9d0b52459877ee866a9a0ba06e60059b778c77/2025/2025-10-08 UTA0388/rules.yar#L74-L134"
		license_url = "https://github.com/volexity/threat-intel/blob/3a9d0b52459877ee866a9a0ba06e60059b778c77/LICENSE.txt"
		hash = "a5ee55a78d420dbba6dec0b87ffd7ad6252628fd4130ed4b1531ede960706d2d"
		hash = "fbade9d8a040ed643b68e25e19cba9562d2bd3c51d38693fe4be72e01da39861"
		logic_hash = "74fa940002e0af9095790b1cf7260778661c97db4e3d316183eecde0e2b580a8"
		score = 75
		quality = 78
		tags = "UTA0388, FILE, MEMORY"
		os = "win"
		os_arch = "all"
		report2 = "MAR-20250930"
		scan_context = "file,memory"
		severity = "critical"
		license = "See license at https://github.com/volexity/threat-intel/blob/main/LICENSE.txt"
		rule_id = 11993
		version = 10

	strings:
		$a1 = "/lib/te64/"
		$a2 = "te64/payload."
		$a3 = "payload.sendAuthRequest.Println.func1"
		$a4 = "sendAuthRequest.deferwrap"
		$a5 = ".ensureSingleInstance.Printf."
		$a6 = "httpslike.NewHttpsLikeConn"
		$a7 = "main.Execute.Println."
		$a8 = "C:/Users/Dev/Desktop/20250608"
		$a9 = "/lib/te64/httpslike/httpslike.go"
		$a10 = "/lib/te64/payload/payload.go"
		$a11 = "/lib/te64/main.go"
		$a12 = "'rootFolderObj"
		$a13 = "'triggersObj"
		$a14 = "'repetitionObj"
		$a15 = "httpslike"
		$a16 = "main.CopySelf.copyDir."
		$s1 = "C:/Users/Make/Downloads/te250608/lib/te64/payload"
		$s2 = "te64/payload."
		$s3 = "C:/Users/Make/Desktop/lib/"
		$s4 = "CreateUserTask.deferwrap"
		$s5 = "main.generateRandomDir"
		$s6 = "te64.dll"
		$s7 = "payload.NewHttpClient.ProxyURL."
		$s8 = "payload.normalizeProxyURL"
		$b1 = {27 70 72 6f 67 72 61 6d 44 61 74 61 00}
		$b2 = {27 72 61 6e 64 6f 6d 44 69 72 00}
		$b3 = {27 74 61 72 67 65 74 44 69 72 00}
		$b4 = {27 65 78 65 50 61 74 68 00}
		$b5 = {27 63 75 72 72 65 6e 74 44 69 72 00}
		$b6 = {27 65 78 65 4e 61 6d 65 00}
		$b7 = {27 74 61 72 67 65 74 45 78 65 00}
		$b8 = {27 72 65 6c 50 61 74 68 00}

	condition:
		4 of ( $a* ) or 5 of ( $s* ) or 3 of ( $b* )
}

Strings (32 patterns)

IdentifierTypeValueModifiers
$a1text"/lib/te64/"
$a2text"te64/payload."
$a3text"payload.sendAuthRequest.Println.func1"
$a4text"sendAuthRequest.deferwrap"
$a5text".ensureSingleInstance.Printf."
$a6text"httpslike.NewHttpsLikeConn"
$a7text"main.Execute.Println."
$a8text"C:/Users/Dev/Desktop/20250608"
$a9text"/lib/te64/httpslike/httpslike.go"
$a10text"/lib/te64/payload/payload.go"
$a11text"/lib/te64/main.go"
$a12text"'rootFolderObj"
$a13text"'triggersObj"
$a14text"'repetitionObj"
$a15text"httpslike"
$a16text"main.CopySelf.copyDir."
$s1text"C:/Users/Make/Downloads/te250608/lib/te64/payload"
$s2text"te64/payload."
$s3text"C:/Users/Make/Desktop/lib/"
$s4text"CreateUserTask.deferwrap"
$s5text"main.generateRandomDir"
$s6text"te64.dll"
$s7text"payload.NewHttpClient.ProxyURL."
$s8text"payload.normalizeProxyURL"
$b1hex{27 70 72 6f 67 72 61 6d 44 61 74 61 00}
$b2hex{27 72 61 6e 64 6f 6d 44 69 72 00}
$b3hex{27 74 61 72 67 65 74 44 69 72 00}
$b4hex{27 65 78 65 50 61 74 68 00}
$b5hex{27 63 75 72 72 65 6e 74 44 69 72 00}
$b6hex{27 65 78 65 4e 61 6d 65 00}
$b7hex{27 74 61 72 67 65 74 45 78 65 00}
$b8hex{27 72 65 6c 50 61 74 68 00}

Condition

4 of ( $a* ) or 5 of ( $s* ) or 3 of ( $b* )

In plain words (Heuristic)

  • At least 4 patterns in ( $a* ) must match.
  • At least 5 patterns in ( $s* ) must match.
  • At least 3 patterns in ( $b* ) 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

Sample hashes

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

  • a5ee55a78d420dbba6dec0b87ffd7ad6252628fd4130ed4b1531ede960706d2d
  • fbade9d8a040ed643b68e25e19cba9562d2bd3c51d38693fe4be72e01da39861

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: 1fe9b2b8-5c74-5d3c-954b-37f625911f75

Metadata

oswin
os_archall
report2MAR-20250930
scan_contextfile,memory
severitycritical
rule_id11993
version10

Tags:UTA0388FILEMEMORY