본문 바로가기
CTF/HTB

Ignition

 

1. Target Overview (머신 요약)

  • Target Name: Ignition
  • OS: Linux
  • Difficulty: Tier 1 (Starting Point)
  • Vulnerability: Virtual Host Routing (가상 호스팅 라우팅), Weak Admin Credentials (취약한 관리자 자격 증명)
  • Attack Vector: /etc/hosts 도메인 매핑 ➔ 디렉토리 브루트포싱(Admin Panel) ➔ 약한 패스워드 대입 ➔ Magento Authenticated RCE (인증된 원격 코드 실행)

2. 핵심 개념 총정리

① 가상 호스팅(Virtual Hosting)과 Host 헤더

  • 단일 IP 주소와 단일 웹 서버 프로세스(Nginx, Apache 등)를 사용하여 여러 개의 웹사이트(도메인)를 동시에 서비스하는 기술
  • 클라이언트(웹 브라우저)가 서버에 접속할 때 HTTP 요청의 Host: ignition.htb 헤더를 전송
    • 웹 서버는 이 헤더 값을 분석하여 알맞은 웹사이트 디렉토리로 라우팅
    • 따라서 타겟의 도메인을 로컬의 /etc/hosts 파일에 매핑하지 않고 IP로만 접속,
    • 서버는 요청을 처리하지 못하고 302 Redirect 또는 404 Not Found 에러를 반환

 

② Magento CMS

  • 전 세계적으로 가장 널리 사용되는 오픈소스 이커머스(전자상거래) 플랫폼
  • 강력한 기능을 제공하는 만큼, 관리자(Admin) 권한이 탈취될 경우 악의적인 플러그인 업로드나 템플릿 레이아웃 수정을 통해 서버 운영체제에 직접 명령을 내리는 원격 코드 실행(RCE) 공격으로 직결되는 치명적인 위험성을 내포

[Task 1] Which service version is found to be running on port 80?

  • 정답: nginx 1.14.2
  • 분석: nmap -sV -p 80 [Target IP] 스캐닝을 통해, 80/tcp 포트에서 웹 애플리케이션의 프론트엔드 및 프록시 처리를 담당하는 Nginx 웹 서버 데몬이 구동 중임을 식별

[Task 2] What is the 3-digit HTTP status code returned when you visit http://{machine IP}/?

  • 정답: 302
  • 분석: 도메인이 아닌 IP 주소로 직접 접속을 시도했을 때, 웹 서버(Magento)에 설정된 기본 Base URL 정책에 의해 정식 가상 호스트 도메인으로 리다이렉션(Found) 시키는 HTTP 302 상태 코드를 반환

[Task 3] What is the virtual host name the webpage expects to be accessed by?

  • 정답: ignition.htb
  • 분석: HTTP 302 응답의 Location 헤더를 분석하거나 Nmap 스크립트 결과를 통해, 웹 서버가 클라이언트에게 요구하는 정확한 도메인 명칭(Virtual Host)을 식별

[Task 4] What is the full path to the file on a Linux computer that holds a local list of domain name to IP address pairs?

  • 정답: /etc/hosts
  • 분석: 외부 DNS 서버의 도움 없이 공격자(Kali Linux) 환경에서 타겟 도메인(ignition.htb)을 타겟의 IP 주소로 강제 연결(Mapping)하기 위해 수정해야 하는 정적 호스트 네임스페이스 파일
# /etc/hosts 도메인 매핑
echo "[Target IP] ignition.htb" | sudo tee -a /etc/hosts
 

[Task 5] Use a tool to brute force directories on the webserver. What is the full URL to the Magento login page?

  • 정답: http://ignition.htb/admin
  • 분석: Gobuster나 Dirsearch와 같은 웹 디렉토리 퍼징(Fuzzing) 도구를 사용하여 일반 사용자에게는 숨겨진 최고 관리자 로그인 포털의 정확한 엔드포인트 URL을 도출
#웹 디렉토리 브루트포싱을 통한 /admin 경로 식별
gobuster dir -u http://ignition.htb/ -w /usr/share/wordlists/dirb/common.txt
 

[Task 6] Look up the password requirements for Magento and also try searching for the most common passwords of 2023. Which password provides access to the admin account?

  • 정답: admin123
  • 분석
    • Magento는 기본적으로 영문과 숫자가 포함된 7자 이상의 패스워드 정책을 요구
    • 2023년 가장 많이 사용된 취약한 패스워드 목록(Rockyou 등)의 통계와 해당 보안 요구사항을 결합하여 유추한 결과
    • 최고 관리자 계정(admin)에 이처럼 보안성이 매우 떨어지는 패스워드가 설정되어 있음을 확인하고 인증을 우회

[Root Flag] 시스템 침투 및 플래그 추출

  • 분석: 정보 수집부터 CMS 제어권 장악, 그리고 최종적인 RCE로 이어지는 유기적인 공격 시나리오
  1. 공격자 PC의 /etc/hosts 파일에 [Target IP] ignition.htb를 등록하여 정상적인 웹 접속 환경을 구성
  2. 디렉토리 브루트포싱을 통해 http://ignition.htb/admin 관리자 페이지를 식별
  3. admin / admin123이라는 취약한 자격 증명으로 로그인하여 Magento 대시보드 제어권을 확보
  4. Magento 관리자 기능(플러그인/모듈 업로드 또는 레이아웃 템플릿 조작 등)을 악용하여 악의적인 PHP 웹 쉘을 주입
  5. Netcat(nc -lnvp 1234)으로 리버스 쉘을 연결 받아 시스템 최고 관리자 권한을 획득하고 플래그를 탈취
# 1. /etc/hosts 도메인 매핑
echo "[Target IP] ignition.htb" | sudo tee -a /etc/hosts

# 2. 웹 디렉토리 브루트포싱을 통한 /admin 경로 식별
gobuster dir -u http://ignition.htb/ -w /usr/share/wordlists/dirb/common.txt

# 3. 브라우저에서 http://ignition.htb/admin 접속 후 로그인
# Username: admin
# Password: admin123

# 4. Magento 시스템 취약점을 이용한 쉘 권한 획득 (로컬 터미널)
nc -lnvp 1234
# ... (리버스 쉘 연결 성공) ...
id
uid=0(root) gid=0(root) groups=0(root)
cat /root/flag.txt
 

 

'CTF > HTB' 카테고리의 다른 글

Nocturnal  (0) 2026.04.24
Tactics  (0) 2026.04.08
Pennyworth  (0) 2026.04.06
Funnel  (0) 2026.04.06
Three  (0) 2026.04.06

Discussion 0