
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로 이어지는 유기적인 공격 시나리오
- 공격자 PC의 /etc/hosts 파일에 [Target IP] ignition.htb를 등록하여 정상적인 웹 접속 환경을 구성
- 디렉토리 브루트포싱을 통해 http://ignition.htb/admin 관리자 페이지를 식별
- admin / admin123이라는 취약한 자격 증명으로 로그인하여 Magento 대시보드 제어권을 확보
- Magento 관리자 기능(플러그인/모듈 업로드 또는 레이아웃 템플릿 조작 등)을 악용하여 악의적인 PHP 웹 쉘을 주입
- 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
Discussion 0