YARA · Signature Base (Florian Roth / Nextron)
SIGNATURE_BASE_HKTL_Khepri_Beacon_Sep21_1
Detects Khepri C2 framework beacons
- Autor
- Florian Roth (Nextron Systems)
- Fecha
- 2021-09-08
- Modificada
- 2023-12-05
- Puntuación / Calidad
- 90 / 85
Qué detecta esta regla
Detects Khepri C2 framework beacons
Objetivos: PE de Windows, ELF de Linux.
Define 15 patrones (11 de texto, 4 hex, 0 regex).
Resumen generado a partir de los metadatos y la condición de la regla.
Código de la regla
rule SIGNATURE_BASE_HKTL_Khepri_Beacon_Sep21_1 : FILE
{
meta:
= "Detects Khepri C2 framework beacons"
= "Florian Roth (Nextron Systems)"
= "b2c8aaf7-7953-55a3-8499-565800fa01f1"
= "2021-09-08"
= "2023-12-05"
= "https://github.com/geemion/Khepri/"
= "https://github.com/Neo23x0/signature-base/blob/94a1c48d7ab499879287ff611dfe7f9c56376030/yara/gen_khepri.yar#L2-L44"
= "https://github.com/Neo23x0/signature-base/blob/94a1c48d7ab499879287ff611dfe7f9c56376030/LICENSE"
= "86c48679db5f4c085fd741ebec5235bc6cf0cdf8ef2d98fd8a689ceb5088f431"
= "c688dbda6006ef28305285f6aeec24a23cbfe9174d09cf4e3586bd0cf7290e60"
= 90
= 85
= "FILE"
strings:
$x1 = "NT %d.%d Build %d ProductType:%s" ascii fullword
$xe1 = "YzIuQ01EUEFSQU0uY21k" ascii
$xe2 = "MyLkNNRFBBUkFNLmNtZ" ascii
$xe3 = "jMi5DTURQQVJBTS5jbW" ascii
$sx1 = "c2.ProcessItem.user" ascii fullword
$sx2 = "c2.CMDPARAM.cmd" ascii fullword
$sx3 = "c2.DownLoadFile.file_path" ascii fullword
$sa1 = "file size zero"
$sa2 = "cmd.exe /c "
$sa3 = "error parse param"
$sa4 = "innet_ip"
$op1 = { c3 b9 b4 98 49 00 87 01 5d c3 b8 b8 98 49 00 c3 8b ff }
$op2 = { 8b f1 80 3d 58 97 49 00 00 0f 85 96 00 00 00 33 c0 40 b9 50 97 49 00 87 01 33 db }
$op3 = { 90 d5 0c 43 00 34 0d 43 00 ea 0c 43 00 7e 0d 43 00 b6 0d 43 00 cc }
$op4 = { 69 c0 ff 00 00 00 8b 4d c0 23 88 40 7c 49 00 89 4d c0 8b 45 cc 0b 45 c0 89 45 cc 8b 45 d0 }
condition:
( uint16( 0 ) == 0x5a4d or uint32be( 0 ) == 0x7f454c46 ) and filesize < 2000KB and ( 1 of ( $x* ) or 2 of ( $sx* ) or all of ( $sa* ) or 3 of ( $op* ) ) or ( filesize < 10MB and 1 of ( $xe* ) ) or 5 of them
}
Cadenas (15 patrones)
| Identificador | Tipo | Valor | Modificadores |
|---|---|---|---|
| $x1 | texto | "NT %d.%d Build %d ProductType:%s" | ascii fullword |
| $xe1 | texto | "YzIuQ01EUEFSQU0uY21k" | ascii |
| $xe2 | texto | "MyLkNNRFBBUkFNLmNtZ" | ascii |
| $xe3 | texto | "jMi5DTURQQVJBTS5jbW" | ascii |
| $sx1 | texto | "c2.ProcessItem.user" | ascii fullword |
| $sx2 | texto | "c2.CMDPARAM.cmd" | ascii fullword |
| $sx3 | texto | "c2.DownLoadFile.file_path" | ascii fullword |
| $sa1 | texto | "file size zero" | |
| $sa2 | texto | "cmd.exe /c " | |
| $sa3 | texto | "error parse param" | |
| $sa4 | texto | "innet_ip" | |
| $op1 | hex | { c3 b9 b4 98 49 00 87 01 5d c3 b8 b8 98 49 00 c3 8b ff } | |
| $op2 | hex | { 8b f1 80 3d 58 97 49 00 00 0f 85 96 00 00 00 33 c0 40 b9 50 97 49 00 87 01 33 db } | |
| $op3 | hex | { 90 d5 0c 43 00 34 0d 43 00 ea 0c 43 00 7e 0d 43 00 b6 0d 43 00 cc } | |
| $op4 | hex | { 69 c0 ff 00 00 00 8b 4d c0 23 88 40 7c 49 00 89 4d c0 8b 45 cc 0b 45 c0 89 45 cc 8b 45 d0 } |
Condición
( uint16( 0 ) == 0x5a4d or uint32be( 0 ) == 0x7f454c46 ) and filesize < 2000KB and ( 1 of ( $x* ) or 2 of ( $sx* ) or all of ( $sa* ) or 3 of ( $op* ) ) or ( filesize < 10MB and 1 of ( $xe* ) ) or 5 of themEn palabras sencillas (Heurística)
- El archivo debe empezar por «MZ»: un ejecutable de Windows (PE).
- El archivo debe empezar por la cabecera ELF: un ejecutable de Linux/Unix.
- El archivo debe ocupar menos de 2000KB (un límite barato que descarta archivos grandes).
- El archivo debe ocupar menos de 10MB (un límite barato que descarta archivos grandes).
- Deben coincidir todos los patrones de ( $sa* ).
- Deben coincidir al menos 1 patrones de ( $x* ).
- Deben coincidir al menos 2 patrones de ( $sx* ).
- Deben coincidir al menos 3 patrones de ( $op* ).
- Deben coincidir al menos 1 patrones de ( $xe* ).
- Deben coincidir al menos 5 patrones de la regla.
Prueba esta regla en tu navegador
Arrastra un archivo para escanearlo con esta regla usando YARA-X compilado a WebAssembly. No se sube nada.
Referencias
Hashes de muestras
Hashes de las muestras que el autor lista en los metadatos de la regla (búscalos en tu plataforma de threat intelligence).
- 86c48679db5f4c085fd741ebec5235bc6cf0cdf8ef2d98fd8a689ceb5088f431
Licencia y atribución
Autor: Florian Roth (Nextron Systems)
Repositorio de origen: Signature Base (Florian Roth / Nextron) @ 94a1c48d7a
Licencia: Detection Rule License 1.1 (licencia del repositorio)
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: b2c8aaf7-7953-55a3-8499-565800fa01f1
Etiquetas:FILE
Reglas relacionadas
- Herramienta ofensivaSignature Base (Florian Roth / Nextron)· Florian Roth (Nextron Systems)· 2020-08-09
- Herramienta ofensivaSignature Base (Florian Roth / Nextron)· Florian Roth (Nextron Systems)· 2022-12-27
- Herramienta ofensivaSignature Base (Florian Roth / Nextron)· Florian Roth (Nextron Systems)· 2022-09-15
- Herramienta ofensivaSignature Base (Florian Roth / Nextron)· Florian Roth (Nextron Systems)· 2021-03-03
- Herramienta ofensivaSignature Base (Florian Roth / Nextron)· Florian Roth (Nextron Systems)· 2021-03-02
- Herramienta ofensivaSignature Base (Florian Roth / Nextron)· Florian Roth (Nextron Systems)· 2020-04-07
- APT / actorSignature Base (Florian Roth / Nextron)· Florian Roth (Nextron Systems)· 2022-01-16
- APT / actorSignature Base (Florian Roth / Nextron)· Florian Roth (Nextron Systems)· 2022-01-16