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.
- Auteur
- threatintel@volexity.com
- Date
- 2025-06-30
- Modifiée
- 2025-10-08
- Score / Qualité
- 75 / 78
Ce que détecte cette règle
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.
Elle définit 32 motifs (24 texte, 8 hex, 0 regex).
YARA-X indique : warning[duplicate_pattern_value]: duplicate pattern value
Résumé généré à partir des métadonnées et de la condition de la règle.
Source de la règle
rule VOLEXITY_Apt_Malware_Golang_Govershell_Strings_UTA0388 : UTA0388 FILE MEMORY
{
meta:
= "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."
= "threatintel@volexity.com"
= "1fe9b2b8-5c74-5d3c-954b-37f625911f75"
= "2025-06-30"
= "2025-10-08"
= "TIB-20250708B"
= "https://github.com/volexity/threat-intel/blob/3a9d0b52459877ee866a9a0ba06e60059b778c77/2025/2025-10-08 UTA0388/rules.yar#L74-L134"
= "https://github.com/volexity/threat-intel/blob/3a9d0b52459877ee866a9a0ba06e60059b778c77/LICENSE.txt"
= "a5ee55a78d420dbba6dec0b87ffd7ad6252628fd4130ed4b1531ede960706d2d"
= "fbade9d8a040ed643b68e25e19cba9562d2bd3c51d38693fe4be72e01da39861"
= "74fa940002e0af9095790b1cf7260778661c97db4e3d316183eecde0e2b580a8"
= 75
= 78
= "UTA0388, FILE, MEMORY"
= "win"
= "all"
= "MAR-20250930"
= "file,memory"
= "critical"
= "See license at https://github.com/volexity/threat-intel/blob/main/LICENSE.txt"
= 11993
= 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* )
}
Chaînes (32 motifs)
| Identifiant | Type | Valeur | Modificateurs |
|---|---|---|---|
| $a1 | texte | "/lib/te64/" | |
| $a2 | texte | "te64/payload." | |
| $a3 | texte | "payload.sendAuthRequest.Println.func1" | |
| $a4 | texte | "sendAuthRequest.deferwrap" | |
| $a5 | texte | ".ensureSingleInstance.Printf." | |
| $a6 | texte | "httpslike.NewHttpsLikeConn" | |
| $a7 | texte | "main.Execute.Println." | |
| $a8 | texte | "C:/Users/Dev/Desktop/20250608" | |
| $a9 | texte | "/lib/te64/httpslike/httpslike.go" | |
| $a10 | texte | "/lib/te64/payload/payload.go" | |
| $a11 | texte | "/lib/te64/main.go" | |
| $a12 | texte | "'rootFolderObj" | |
| $a13 | texte | "'triggersObj" | |
| $a14 | texte | "'repetitionObj" | |
| $a15 | texte | "httpslike" | |
| $a16 | texte | "main.CopySelf.copyDir." | |
| $s1 | texte | "C:/Users/Make/Downloads/te250608/lib/te64/payload" | |
| $s2 | texte | "te64/payload." | |
| $s3 | texte | "C:/Users/Make/Desktop/lib/" | |
| $s4 | texte | "CreateUserTask.deferwrap" | |
| $s5 | texte | "main.generateRandomDir" | |
| $s6 | texte | "te64.dll" | |
| $s7 | texte | "payload.NewHttpClient.ProxyURL." | |
| $s8 | texte | "payload.normalizeProxyURL" | |
| $b1 | hex | {27 70 72 6f 67 72 61 6d 44 61 74 61 00} | |
| $b2 | hex | {27 72 61 6e 64 6f 6d 44 69 72 00} | |
| $b3 | hex | {27 74 61 72 67 65 74 44 69 72 00} | |
| $b4 | hex | {27 65 78 65 50 61 74 68 00} | |
| $b5 | hex | {27 63 75 72 72 65 6e 74 44 69 72 00} | |
| $b6 | hex | {27 65 78 65 4e 61 6d 65 00} | |
| $b7 | hex | {27 74 61 72 67 65 74 45 78 65 00} | |
| $b8 | hex | {27 72 65 6c 50 61 74 68 00} |
Condition
4 of ( $a* ) or 5 of ( $s* ) or 3 of ( $b* )En clair (Heuristique)
- Au moins 4 motifs de ( $a* ) doivent être trouvés.
- Au moins 5 motifs de ( $s* ) doivent être trouvés.
- Au moins 3 motifs de ( $b* ) doivent être trouvés.
Tester cette règle dans votre navigateur
Déposez un fichier pour le scanner avec cette règle grâce à YARA-X compilé en WebAssembly. Rien n’est envoyé.
Hashes d’échantillons
Hashes des échantillons listés par l’auteur dans les métadonnées de la règle (à rechercher dans votre plateforme de threat intelligence).
- a5ee55a78d420dbba6dec0b87ffd7ad6252628fd4130ed4b1531ede960706d2d
- fbade9d8a040ed643b68e25e19cba9562d2bd3c51d38693fe4be72e01da39861
Licence et attribution
Auteur : threatintel@volexity.com
Dépôt source : Volexity threat-intel @ 3a9d0b5245
Licence : BSD 2-Clause License (indiquée dans les métadonnées de la règle)
“See license at https://github.com/volexity/threat-intel/blob/main/LICENSE.txt”
Mention de copyright : Copyright 2022 by Volexity, Inc.
Reprise via YARA Forge 20260927, qui préfixe les noms de règles par la source et ajoute des champs meta normalisés.
Identifiant de règle: 1fe9b2b8-5c74-5d3c-954b-37f625911f75
Métadonnées
| os | win |
|---|---|
| os_arch | all |
| report2 | MAR-20250930 |
| scan_context | file,memory |
| severity | critical |
| rule_id | 11993 |
| version | 10 |
Règles liées
- APT / acteurVolexity threat-intel· threatintel@volexity.com· 2024-07-30
- APT / acteurVolexity threat-intel· threatintel@volexity.com· 2023-07-21
- APT / acteurVolexity threat-intel· threatintel@volexity.com· 2023-08-17
- APT / acteurVolexity threat-intel· threatintel@volexity.com· 2023-03-30
- APT / acteurVolexity threat-intel· threatintel@volexity.com· 2022-11-03
- APT / acteurVolexity threat-intel· threatintel@volexity.com· 2022-11-02
- APT / acteurVolexity threat-intel· threatintel@volexity.com· 2022-11-03
- APT / acteurVolexity threat-intel· threatintel@volexity.com· 2022-11-03