Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
citrix-netscaler-triage — Herramienta de triaje forense para dispositivos Citrix NetScaler, que incluye un escáner de IOC basado en Dissect para webshells, timestomping y binarios sospechosos, además de un escáner remoto de versiones que identifica vulnerabilidades CVE. | Kitploit
Herramientas/GitHubGitHub/fox-it/citrix-netscaler-triage
Gestión de Indicadores de Compromiso (IOC)Escáneres de VulnerabilidadesSeguridad WebSeguridad de RedesForensia DigitalRespuesta a Incidentes
GitHubfox-it/citrix-netscaler-triage

citrix-netscaler-triage

Herramienta de triaje forense para dispositivos Citrix NetScaler, que incluye un escáner de IOC basado en Dissect para webshells, timestomping y binarios sospechosos, además de un escáner remoto de versiones que identifica vulnerabilidades CVE.

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Ver RepositorioSitio web
741882hace 10 mesesRevisado por Kitploit
Compartir

Triage de Citrix NetScaler

Este repositorio contiene scripts de triage para dispositivos Citrix NetScaler:

  • iocitrix.py -- un script de Dissect para hacer triage de una imagen/objetivo de Citrix NetScaler.
  • scan-citrix-netscaler-version.py -- Escanea y obtiene la huella digital de la versión de un dispositivo NetScaler a través de HTTP(s).

scan-citrix-netscaler-version.py

Puedes usar este script para escanear y determinar la versión de un dispositivo Citrix NetScaler a través de HTTP(s). También determinará si el NetScaler es vulnerable a CVEs específicos según la versión.

Instalación de scan-citrix-netscaler-version.py

Usa los siguientes pasos si estás usando 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

En caso de usar uv, puedes ejecutar el script directamente usando:

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

Ejemplo de uso:

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)

O obtén los resultados 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
}

También es posible limitar las comprobaciones de estado de vulnerabilidad a CVEs específicos usando la bandera --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
}

Para obtener los resultados en formato CSV, solo usa la bandera --csv. Para más opciones consulta --help.

iocitrix.py

Puedes usar iocitrix.py para comprobar Indicadores de Compromiso conocidos en un objetivo de Dissect de NetScaler. Comprueba lo siguiente:

  • Cadenas conocidas usadas en webshells
  • Archivos con marcas de tiempo manipuladas (timestomped)
  • Cronjobs sospechosos
  • Binarios SUID desconocidos

Ten en cuenta que este script está diseñado para ejecutarse en imágenes forenses de disco de dispositivos Citrix NetScaler y no en el propio dispositivo. Consulta también la sección Creación de imágenes de disco de Citrix NetScaler sobre cómo crear imágenes forenses de disco de tu Citrix NetScaler.

Asegúrate de tener la última versión de Dissect; el soporte para Citrix NetScaler se añadió en este PR: https://github.com/fox-it/dissect.target/pull/357

Descargo de responsabilidad: Aunque esta herramienta se esfuerza por ser precisa, es posible que produzca falsos positivos o falsos negativos. Se recomienda a los usuarios contrastar los resultados y usar su propio criterio antes de tomar cualquier decisión basada en la salida de esta herramienta.

Instalación de iocitrix.py

Usa los siguientes pasos:

  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

Ten en cuenta que el paso 4 mostrará el siguiente error, pero puedes ignorarlo:

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.

Luego puedes ejecutar iocitrix.py <TARGETS> para iniciar una comprobación de IOC contra una o más imágenes forenses. El script acepta cualquier entrada que dissect pueda leer como un Target, como un .VMDK o una imagen de disco cruda. Se proporcionan algunos ejemplos a continuación.

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

Si también has creado una imagen forense del disco RAM, puedes utilizar iocitrix.py para incorporar datos volátiles en su triage de la siguiente manera:

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

El signo + (más) cargará las dos imágenes de disco como un único Target de Dissect.

Creación de imágenes de disco de Citrix NetScaler

Un Citrix NetScaler expone dos dispositivos de bloque importantes que pueden ser imageados para análisis forense sin conexión. Estos archivos de dispositivo de bloque se pueden encontrar en las siguientes rutas:

  • /dev/md0: El disco que contiene el directorio raíz (/). Este es un disco RAM
  • /dev/da0: El disco que contiene los directorios /var y /flash. Este es un disco persistente.

El directorio raíz (/) de Citrix NetScaler es un disco RAM, lo que significa que es un disco volátil. Este disco se puede encontrar en /dev/md0 cuando el NetScaler está encendido y en funcionamiento, y no estará disponible cuando el NetScaler esté apagado. Los directorios /var y /flash residen en el disco /dev/da0 como dos particiones separadas y son persistentes.

Los siguientes comandos se pueden usar en una máquina linux local para crear una imagen de tu NetScaler a través de SSH:

Crear una imagen de disco del disco /dev/da0 en tu máquina local

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

Ten en cuenta que esto puede tardar algún tiempo en completarse. No se muestra progreso cuando se usa dd. Se recomienda esperar hasta recuperar el control del prompt. Esto es una indicación de que dd ha terminado.

Además, si no tienes /dev/da0, lo más probable es que sea /dev/ada0; puedes verificarlo usando el comando mount o gpart show.

Crear una imagen de disco del disco /dev/md0 en tu máquina local

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

NOTA: Aunque se recomienda crear imágenes de disco tanto de /dev/md0 como de /dev/da0, crear una imagen de disco de /dev/md0 es opcional. Este paso podría omitirse, aunque esto puede hacer que iocitrix.py pase por alto ciertos indicadores de compromiso.

Ejecutar iocitrix.py en tus imágenes

Después de ejecutar los comandos anteriores en tu máquina local, los archivos da0.img y md0.img estarán presentes. Puedes apuntar iocitrix a estos archivos para comenzar a hacer triage de tus imágenes. Usa el siguiente comando para hacerlo:

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

Ejemplo de salida:

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.
Descargar herramienta