Saltar al contenido

YARA · SEKOIA.IO Community

SEKOIA_Implant_Macos_Geacon

Finds Geacon samples based on specific strings

MalwareSEKOIA.IO CommunityDetection Rule License 1.1Compila con YARA-X
Autor
Sekoia.io
Fecha
2024-01-11
Modificada
2024-12-19
Puntuación / Calidad
75 / 80

Qué detecta esta regla

Finds Geacon samples based on specific strings

Objetivos: Mach-O de macOS.

Define 18 patrones (18 de texto, 0 hex, 0 regex).

Resumen generado a partir de los metadatos y la condición de la regla.

Código de la regla

implant-macos-geacon.yarDetection Rule License 1.1
rule SEKOIA_Implant_Macos_Geacon : FILE
{
	meta:
		description = "Finds Geacon samples based on specific strings"
		author = "Sekoia.io"
		id = "a7784bfa-66a7-47df-b88b-d98217d8cca5"
		date = "2024-01-11"
		modified = "2024-12-19"
		reference = "https://www.sentinelone.com/blog/geacon-brings-cobalt-strike-capabilities-to-macos-threat-actors/"
		source_url = "https://github.com/SEKOIA-IO/Community/blob/a438a5901a211c2abdf75da9c93921ef187473d1/yara_rules/implant_macos_geacon.yar#L1-L35"
		license_url = "https://github.com/SEKOIA-IO/Community/blob/a438a5901a211c2abdf75da9c93921ef187473d1/LICENSE.md"
		logic_hash = "284574d185d3777a373f4a19e0870eec5245fb8ea5ebd6124bc281f8c74e0998"
		score = 75
		quality = 80
		tags = "FILE"
		version = "1.0"
		classification = "TLP:CLEAR"

	strings:
		$gea01 = "geacon/config.init" ascii
		$gea02 = "geacon_pro-master/config/config.go" ascii
		$gea03 = "geacon_plus-main/config/config.go" ascii
		$gea04 = "command type %d is not support by geacon now" ascii
		$gea05 = "main/sysinfo.GeaconID" ascii
		$str01 = "command.StealToken" ascii
		$str02 = "command.MakeToken" ascii
		$str03 = "command/misc.go" ascii
		$str04 = "config/c2profile.go" ascii
		$str05 = "crypt.AesCBCDecrypt" ascii
		$str06 = "packet.File_Browse" ascii
		$str07 = "packet.FirstBlood" ascii
		$str08 = "packet.ParseCommandShell" ascii
		$str09 = "packet.ParseCommandUpload" ascii
		$str10 = "packet.PushResult" ascii
		$str11 = "sysinfo.GetComputerName" ascii
		$str12 = "sysinfo.IsOSX64" ascii
		$str13 = "util..inittask" ascii

	condition:
		uint32( 0 ) == 0xFEEDFACF and ( ( 1 of ( $gea* ) and 2 of ( $str* ) ) or 8 of ( $str* ) )
}

Cadenas (18 patrones)

IdentificadorTipoValorModificadores
$gea01texto"geacon/config.init"ascii
$gea02texto"geacon_pro-master/config/config.go"ascii
$gea03texto"geacon_plus-main/config/config.go"ascii
$gea04texto"command type %d is not support by geacon now"ascii
$gea05texto"main/sysinfo.GeaconID"ascii
$str01texto"command.StealToken"ascii
$str02texto"command.MakeToken"ascii
$str03texto"command/misc.go"ascii
$str04texto"config/c2profile.go"ascii
$str05texto"crypt.AesCBCDecrypt"ascii
$str06texto"packet.File_Browse"ascii
$str07texto"packet.FirstBlood"ascii
$str08texto"packet.ParseCommandShell"ascii
$str09texto"packet.ParseCommandUpload"ascii
$str10texto"packet.PushResult"ascii
$str11texto"sysinfo.GetComputerName"ascii
$str12texto"sysinfo.IsOSX64"ascii
$str13texto"util..inittask"ascii

Condición

uint32( 0 ) == 0xFEEDFACF and ( ( 1 of ( $gea* ) and 2 of ( $str* ) ) or 8 of ( $str* ) )

En palabras sencillas (Heurística)

  • El archivo debe empezar por una firma Mach-O / fat: un ejecutable de macOS.
  • Deben coincidir al menos 1 patrones de ( $gea* ).
  • Deben coincidir al menos 2 patrones de ( $str* ).
  • Deben coincidir al menos 8 patrones de ( $str* ).

Prueba esta regla en tu navegador

Arrastra un archivo para escanearlo con esta regla usando YARA-X compilado a WebAssembly. No se sube nada.

Arrastra un archivo aquí o haz clic para elegirSe escanea en local con YARA-X. Archivos de hasta 200 MB.

Abrir en el editor

Referencias

Licencia y atribución

Autor: Sekoia.io

Repositorio de origen: SEKOIA.IO Community @ a438a5901a

Licencia: Detection Rule License 1.1 (licencia del repositorio)

Regla original

Obtenida a través de YARA Forge 20260927, que añade a los nombres el prefijo de la fuente y campos meta normalizados.

Id de la regla: a7784bfa-66a7-47df-b88b-d98217d8cca5

Metadatos

version1.0
classificationTLP:CLEAR

Etiquetas:FILE