Aller au contenu

YARA · Signature Base (Florian Roth / Nextron)

SIGNATURE_BASE_WEBSHELL_PAS_Webshell_Perlnetworkscript

Detects PERL scripts created by P.A.S. webshell

Web shellSignature Base (Florian Roth / Nextron)Detection Rule License 1.1Compile avec YARA-X (avertissements)
Auteur
FR/ANSSI/SDO
Date
2021-02-15
Modifiée
2024-05-25
Score / Qualité
90 / 85

Ce que détecte cette règle

Detects PERL scripts created by P.A.S. webshell

Elle définit 5 motifs (5 texte, 0 hex, 0 regex).

YARA-X indique : warning[unintended_pattern_in_set]: pattern `$pl_start` may be unintendedly or redundantly included in pattern set `$pl*`

Résumé généré à partir des métadonnées et de la condition de la règle.

Source de la règle

webshell-pas-webshell-perlnetworkscript.yarDetection Rule License 1.1
rule SIGNATURE_BASE_WEBSHELL_PAS_Webshell_Perlnetworkscript : FILE
{
	meta:
		description = "Detects PERL scripts created by P.A.S. webshell"
		author = "FR/ANSSI/SDO"
		id = "1625b63f-ead7-5712-92b4-0ce6ecc49fd4"
		date = "2021-02-15"
		modified = "2024-05-25"
		reference = "https://www.cert.ssi.gouv.fr/uploads/CERTFR-2021-CTI-005.pdf"
		source_url = "https://github.com/Neo23x0/signature-base/blob/94a1c48d7ab499879287ff611dfe7f9c56376030/yara/apt_sandworm_centreon.yar#L44-L62"
		license_url = "https://github.com/Neo23x0/signature-base/blob/94a1c48d7ab499879287ff611dfe7f9c56376030/LICENSE"
		logic_hash = "b170c07a005e737c8069f2cc63f869d4d3ff6593b3bfca5bcaf02d7808da6852"
		score = 90
		quality = 85
		tags = "FILE"

	strings:
		$pl_start = "#!/usr/bin/perl\n$SIG{'CHLD'}='IGNORE'; use IO::Socket; use FileHandle;"
		$pl_status = "$o=\" [OK]\";$e=\" Error: \""
		$pl_socket = "socket(SOCKET, PF_INET, SOCK_STREAM,$tcp) or die print \"$l$e$!$l"
		$msg1 = "print \"$l OK! I\\'m successful connected.$l\""
		$msg2 = "print \"$l OK! I\\'m accept connection.$l\""

	condition:
		filesize < 6000 and ( $pl_start at 0 and all of ( $pl* ) ) or any of ( $msg* )
}

Chaînes (5 motifs)

IdentifiantTypeValeurModificateurs
$pl_starttexte"#!/usr/bin/perl\n$SIG{'CHLD'}='IGNORE'; use IO::Socket; use FileHandle;"
$pl_statustexte"$o=\" [OK]\";$e=\" Error: \""
$pl_sockettexte"socket(SOCKET, PF_INET, SOCK_STREAM,$tcp) or die print \"$l$e$!$l"
$msg1texte"print \"$l OK! I\\'m successful connected.$l\""
$msg2texte"print \"$l OK! I\\'m accept connection.$l\""

Condition

filesize < 6000 and ( $pl_start at 0 and all of ( $pl* ) ) or any of ( $msg* )

En clair (Heuristique)

  • Le fichier doit faire moins de 6000 (garde-fou peu coûteux qui écarte les gros fichiers).
  • Tous les motifs de ( $pl* ) doivent être trouvés.
  • Au moins un motif de ( $msg* ) doit être trouvé.
  • Le motif $pl_start doit se trouver à l’offset 0.

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é.

Déposez un fichier ici ou cliquez pour choisirScanné localement avec YARA-X. Fichiers jusqu’à 200 Mo.

Ouvrir dans l’éditeur

Références

Licence et attribution

Auteur : FR/ANSSI/SDO

Dépôt source : Signature Base (Florian Roth / Nextron) @ 94a1c48d7a

Licence : Detection Rule License 1.1 (licence du dépôt)

Règle d’origine

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: 1625b63f-ead7-5712-92b4-0ce6ecc49fd4

Tags:FILE