Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
citrix-netscaler-triage — Outil de triage forensique pour les appareils Citrix NetScaler, doté d'un scanner IOC basé sur Dissect pour les webshells, le timestomping et les binaires suspects, ainsi que d'un scanner de versions à distance qui identifie les vulnérabilités CVE. | Kitploit
Outils/GitHubGitHub/fox-it/citrix-netscaler-triage
Gestion des Indicateurs de Compromission (IOC)Scanners de VulnérabilitésSécurité WebSécurité RéseauCriminalistique NumériqueRéponse aux Incidents
GitHubfox-it/citrix-netscaler-triage

citrix-netscaler-triage

Outil de triage forensique pour les appareils Citrix NetScaler, doté d'un scanner IOC basé sur Dissect pour les webshells, le timestomping et les binaires suspects, ainsi que d'un scanner de versions à distance qui identifie les vulnérabilités CVE.

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Voir le dépôtSite web
741812il y a 9 moisVérifié par Kitploit
Partager

Triage Citrix NetScaler

Ce dépôt contient des scripts de triage pour les équipements Citrix NetScaler :

  • iocitrix.py -- un script Dissect pour trier une image/cible Citrix NetScaler.
  • scan-citrix-netscaler-version.py -- Scanner et identifier la version d'un équipement NetScaler via HTTP(s).

scan-citrix-netscaler-version.py

Vous pouvez utiliser ce script pour scanner et déterminer la version d'un équipement Citrix NetScaler via HTTP(s). Il déterminera également si le NetScaler est vulnérable à des CVE spécifiques en fonction de la version.

Installation de scan-citrix-netscaler-version.py

Suivez les étapes suivantes si vous utilisez pip :

  1. git clone https://github.com/fox-it/citrix-netscaler-triage.git
  2. cd citrix-netscaler-triage
  3. pip install httpx
  4. python3 scan-citrix-netscaler-version.py --help

Si vous utilisez uv, vous pouvez exécuter le script directement avec :

  1. uv run https://raw.githubusercontent.com/fox-it/citrix-netscaler-triage/refs/heads/main/scan-citrix-netscaler-version.py

Exemple d'utilisation :

root@kitploit:~
$ python3 scan-citrix-netscaler-version.py 192.168.1.10 192.168.1.12
192.168.1.10 (*.local.domain) is running Citrix NetScaler version 13.1-51.15 (VULNERABLE)
192.168.1.12 (*.local.domain) is running Citrix NetScaler version 12.1-55.330 (NOT VULNERABLE)

Ou obtenez les résultats en JSON :

root@kitploit:~
$ python3 scan-citrix-netscaler-version.py https://192.168.1.11 --json | jq
root@kitploit:~
{
  "scanned_at": "2025-09-03T23:11:36.864228+00:00",
  "target": "https://192.168.1.11",
  "tls_names": "my-first-netscaler.local",
  "rdx_en_stamp": 1702886392,
  "rdx_en_dt": "2023-12-18T07:59:52+00:00",
  "version": "12.1-55.302",
  "error": null,
  "vulnerable": {
    "CVE-2025-5349": true,
    "CVE-2025-5777": true,
    "CVE-2025-6543": false,
    "CVE-2025-7775": true,
    "CVE-2025-7776": true,
    "CVE-2025-8424": true
  },
  "is_vulnerable": true
}

Il est également possible de limiter les vérifications de statut de vulnérabilité à des CVE spécifiques en utilisant le drapeau --cve :

root@kitploit:~
$ python3 scan-citrix-netscaler-version.py https://192.168.1.11 --cve CVE-2025-6543 --json | jq
root@kitploit:~
{
  "scanned_at": "2025-09-03T23:16:36.573016+00:00",
  "target": "https://192.168.1.11",
  "tls_names": "my-first-netscaler.local",
  "rdx_en_stamp": 1702886392,
  "rdx_en_dt": "2023-12-18T07:59:52+00:00",
  "version": "12.1-55.302",
  "error": null,
  "vulnerable": {
    "CVE-2025-6543": false
  },
  "is_vulnerable": false
}

Pour obtenir les résultats au format CSV, utilisez simplement le drapeau --csv. Pour plus d'options, consultez --help.

iocitrix.py

Vous pouvez utiliser iocitrix.py pour rechercher des Indicateurs de Compromission connus sur une cible Dissect NetScaler. Il vérifie les éléments suivants :

  • Chaînes connues utilisées dans les webshells
  • Fichiers avec timestomping
  • Cronjobs suspects
  • Binaires SUID inconnus

Notez que ce script est destiné à être exécuté sur des images disque forensiques d'équipements Citrix NetScaler et non sur l'équipement lui-même. Consultez également la section Création d'images disque Citrix NetScaler pour savoir comment créer des images disque forensiques de votre Citrix NetScaler.

Assurez-vous de disposer de la dernière version de Dissect ; la prise en charge de Citrix NetScaler a été ajoutée dans cette PR : https://github.com/fox-it/dissect.target/pull/357

Avertissement : Bien que cet outil s'efforce d'être précis, il peut produire des faux positifs ou des faux négatifs. Il est conseillé aux utilisateurs de recouper les résultats et d'utiliser leur propre jugement avant de prendre toute décision basée sur la sortie de cet outil.

Installation de iocitrix.py

Suivez les étapes suivantes :

  1. git clone https://github.com/fox-it/citrix-netscaler-triage.git
  2. cd citrix-netscaler-triage
  3. pip install -r requirements.txt
  4. pip install --upgrade --pre dissect.volume dissect.target

Notez que l'étape 4 affichera l'erreur suivante, mais vous pouvez l'ignorer :

root@kitploit:~
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.

Vous pouvez ensuite exécuter iocitrix.py <TARGETS> pour lancer une vérification IOC sur une ou plusieurs images forensiques. Le script accepte toute entrée que dissect peut lire comme Target, comme un fichier .VMDK ou une image disque brute. Quelques exemples sont fournis ci-dessous.

root@kitploit:~
python3 iocitrix.py image.vmx
python3 iocitrix.py image.vmdk

Si vous avez également créé une image forensique du disque RAM, vous pouvez utiliser iocitrix.py pour intégrer les données volatiles dans son triage comme suit :

root@kitploit:~
python3 iocitrix.py md0.img+image.vmx
python3 iocitrix.py md0.img+image.vmdk
python3 iocitrix.py md0.img+da0.img

Le signe + (plus) chargera les deux images disque comme une seule cible Dissect.

Création d'images disque Citrix NetScaler

Un Citrix NetScaler expose deux périphériques de blocs importants qui peuvent être imagés pour une analyse forensique hors ligne. Ces fichiers de périphériques de blocs se trouvent aux chemins suivants :

  • /dev/md0 : Le disque qui contient le répertoire racine (/). Il s'agit d'un disque RAM
  • /dev/da0 : Le disque qui contient les répertoires /var et /flash. Il s'agit d'un disque persistant.

Le répertoire racine (/) de Citrix NetScaler est un disque RAM, ce qui signifie qu'il s'agit d'un disque volatile. Ce disque se trouve à /dev/md0 lorsque le NetScaler est sous tension et en cours d'exécution, et sera indisponible lorsque le NetScaler est éteint. Les répertoires /var et /flash résident sur le disque /dev/da0 sous forme de deux partitions distinctes et sont persistants.

Les commandes suivantes peuvent être utilisées sur une machine Linux locale pour créer une image disque de votre NetScaler via SSH :

Créer une image disque du disque /dev/da0 sur votre machine locale

root@kitploit:~
local ~ $ ssh nsroot@<YOUR-NETSCALER-IP> shell dd if=/dev/da0 bs=10M | tail -c +7 | head -c -6 > da0.img

Notez que cela peut prendre un certain temps. Aucune progression n'est affichée lors de l'utilisation de dd. Il est conseillé d'attendre de récupérer le contrôle de l'invite de commande. C'est une indication que dd a terminé.

De plus, si vous n'avez pas /dev/da0, il s'agit probablement de /dev/ada0 ; vous pouvez le vérifier avec la commande mount ou gpart show.

Créer une image disque du disque /dev/md0 sur votre machine locale

root@kitploit:~
local ~ $ ssh nsroot@<YOUR-NETSCALER-IP> shell dd if=/dev/md0 bs=10M | tail -c +7 | head -c -6 > md0.img

REMARQUE : Bien qu'il soit recommandé de créer des images disque de /dev/md0 et /dev/da0, la création d'une image disque de /dev/md0 est facultative. Cette étape peut être ignorée, mais cela peut amener iocitrix.py à manquer certains indicateurs de compromission.

Exécution de iocitrix.py sur vos images

Après avoir exécuté les commandes précédentes sur votre machine locale, les fichiers da0.img et md0.img seront présents. Vous pouvez pointer iocitrix vers ces fichiers pour commencer le triage de vos images. Utilisez la commande suivante :

root@kitploit:~
local ~ $ python3 iocitrix.py md0.img+da0.img

Exemple de sortie :

root@kitploit:~
(venv) user@dissect:/data/netscaler/image$ python3 iocitrix.py md0.img+da0.img
<Target md0.img+da0.img>

Disks
- <RawContainer size=555745286 vs=None>
- <RawContainer size=21474836486 vs=<DissectVolumeSystem serial=None>>

Volumes
- <Volume name=None size=555745286 fs=<FfsFilesystem>>
- <Volume name='part_00000000' size=1717567488 fs=<FfsFilesystem>>
- <Volume name='part_66600000' size=4401922048 fs=<FfsFilesystem>>
- <Volume name='part_16cc00000' size=2097152 fs=<FfsFilesystem>>
- <Volume name='part_16ce00000' size=15353200128 fs=<FfsFilesystem>>

Hostname      : None
Domain        : None
IPs           : 10.164.0.39, 10.164.0.10
OS family     : citrix-netscaler (CitrixBsdPlugin)
OS version    : NetScaler 13.1 build 30 (ns-13.1-30.52)
Architecture  : x86_64-citrix-netscaler
Language(s)   :
Timezone      : None
Install date  : 2023-08-08 13:59:38.228043+00:00
Last activity : 2023-08-11 08:51:13.979536+00:00


*** Checking for webshells ***

<ioc/hit type='php-file-permission' alert='Suspicious php permission 0o644' confidence='high' path='/var/netscaler/logon/LogonPoint/uiareas/linux/adminupevents.php'>
<ioc/hit type='php-file-contents' alert="Suspicious PHP code 'b'array_filter(''" confidence='high' path='/var/netscaler/logon/LogonPoint/uiareas/linux/adminupevents.php'>
<ioc/hit type='php-file-permission' alert='Suspicious php permission 0o644' confidence='high' path='/var/vpn/config.php'>
<ioc/hit type='php-file-contents' alert="Suspicious PHP code 'b'array_filter(''" confidence='high' path='/var/vpn/config.php'>
<ioc/hit type='php-file-permission' alert='Suspicious php permission 0o644' confidence='high' path='/var/vpn/themes/config.php'>

*** Checking for timestomped files ***


*** Checking for suspicious cronjobs ***


*** Checking for SUID Binaries (this takes a while) ***

<ioc/hit type='binary/suid' alert='Binary with SUID bit set Observed' confidence='medium' path='/tmp/python/bash'>

********************************************************************************
***                                                                          ***
*** There were findings for Indicators of Compromise.                        ***
*** Please consider performing further forensic investigation of the system. ***
***                                                                          ***
********************************************************************************

Confidence    Type                 Alert                                       Artefact Location
------------  -------------------  ------------------------------------------  ---------------------------------------------------------------
high          php-file-permission  Suspicious php permission 0o644             /var/netscaler/logon/LogonPoint/uiareas/linux/adminupevents.php
high          php-file-contents    Suspicious PHP code 'b'array_filter(''      /var/netscaler/logon/LogonPoint/uiareas/linux/adminupevents.php
high          php-file-permission  Suspicious php permission 0o644             /var/vpn/config.php
high          php-file-contents    Suspicious PHP code 'b'array_filter(''      /var/vpn/config.php
high          php-file-permission  Suspicious php permission 0o644             /var/vpn/themes/config.php
medium        binary/suid          Binary with SUID bit set Observed           /tmp/python/bash

All targets analyzed.
Télécharger l’outil