본문 바로가기
CTF/HTB

Crocodile

 

1. Target Overview (머신 요약)

  • Target Name: Crocodile
  • OS: Linux
  • Difficulty: Tier 1 (Starting Point)
  • Vulnerability: Anonymous FTP Access (익명 FTP 접근), Information Disclosure (민감한 정보 노출)
  • Attack Vector: Credential Reuse/Chaining (탈취한 인증 정보를 활용한 타 서비스 웹 로그인 우회)

2. 핵심 개념 총정리

① 크리덴셜 체이닝 (Credential Chaining / Reuse)

  • 공격자가 특정 시스템이나 서비스(예: FTP, SMB)에서 획득한 아이디와 패스워드 조합을 타겟 인프라 내의 전혀 다른 서비스(예: Web Admin Panel, SSH)에 대입하여 권한을 확장하는 횡적/종적 이동(Lateral/Vertical Movement) 기법
  • 보안 실무에서 가장 빈번하게 발생하는 '패스워드 재사용'이라는 휴먼 에러를 파고드는 치명적인 공격 벡터

 

② Nmap 스크립트 엔진 (NSE, Nmap Scripting Engine)

  • 단순한 포트 스캐닝을 넘어, Nmap에 내장된 Lua 기반 스크립트를 활용하여 대상 서비스의 알려진 취약점, 익명 로그인 허용 여부, 상세 배너 정보 등을 자동으로 탐지하는 강력한 기능

 

③ 확장자 기반 웹 디렉토리 브루트포싱 (Extension Fuzzing)

  • Gobuster 등의 도구를 사용하여 웹 경로를 탐색할 때, 단순히 디렉토리 이름뿐만 아니라 .php, .html, .txt와 같은 특정 파일 확장자(Extension)를 결합하여 스캐닝함으로써 숨겨진 로그인 파일이나 백업 데이터를 정밀하게 식별하는 기법

[Task 1] What Nmap scanning switch employs the use of default scripts during a scan?

  • 정답: -sC
  • 분석: Nmap 스캔 시 기본(Default) 카테고리에 속하는 다양한 보안 점검 스크립트(NSE)를 자동으로 실행하여 타겟 포트의 세부적인 취약점 정보를 수집하는 스위치 옵션

[Task 2] What service version is found to be running on port 21?

  • 정답: vsftpd 3.0.3
  • 분석:
  • 명령을 통해 포트 21번을 스캔한 결과, 구동 중인 FTP 데몬의 정확한 버전(Very Secure FTP Daemon 3.0.3)을 식별했습니다.
 nmap -sC -sV [Target IP]
 

[Task 3] What FTP code is returned to us for the "Anonymous FTP login allowed" message?

  • 정답: 230
  • 분석: Nmap 스크립트(ftp-anon) 또는 수동 접속 테스트 결과, 서버가 인증 성공 및 "User logged in, proceed"를 의미하는 HTTP 200과 유사한 FTP 상태 코드 230을 반환하며 익명 접근을 허용했음을 확인

[Task 4] After connecting to the FTP server using the ftp client, what username do we provide when prompted to log in anonymously?

  • 정답: anonymous
  • 분석: 인증 자격 증명 없이 누구나 공개된 FTP 자원에 접근하고자 할 때 입력하는 국제 표준 익명 계정명

[Task 5] After connecting to the FTP server anonymously, what command can we use to download the files we find on the FTP server?

  • 정답: get
  • 분석: FTP 쉘 환경에 진입한 후, 원격 서버에 존재하는 특정 타겟 파일을 로컬 공격자 PC로 다운로드(Exfiltration)할 때 사용하는 CLI 명령어

[Task 6] What is one of the higher-privilege sounding usernames in 'allowed.userlist' that we download from the FTP server?

  • 정답: admin
  • 분석: 탈취한 allowed.userlist 파일을 로컬에서 열람(cat)한 결과, 최고 권한 관리자를 강하게 암시하는 계정명을 식별

[Task 7] What version of Apache HTTP Server is running on the target host?

  • 정답: 2.4.41
  • 분석: Nmap 서비스 배너 그래빙 결과, 80/tcp 포트에서 수신 대기 중인 웹 서버 데몬이 Apache 버전 2.4.41 임을 식별

[Task 8] What switch can we use with Gobuster to specify we are looking for specific filetypes?

  • 정답: -x
  • 분석: Gobuster 실행 시 단어장(Wordlist)의 각 항목 끝에 특정 확장자(예: -x php,html)를 덧붙여 숨겨진 특정 포맷의 파일을 퓨징(Fuzzing)하도록 지정하는 파라미터
gobuster dir -u http://[Target IP]/ -w [단어장] -x php,html
 

[Task 9] Which PHP file can we identify with directory brute force that will provide the opportunity to authenticate to the web service?

  • 정답: login.php
  • 분석: gobuster dir -u http://[Target IP]/ -w [단어장] -x php,html 명령을 실행한 결과, 200 OK 상태 코드를 반환하는 관리자 인증 포털 페이지의 정확한 경로를 도출

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

  • 분석: 이번 침투의 핵심은 크리덴셜 체이닝(Credential Chaining)
  1. 익명 로그인이 허용된 FTP 서버(ftp [Target IP])에 anonymous 계정으로 접속
  2. 내부 탐색(ls)을 통해 민감한 텍스트 파일인 allowed.userlist와 allowed.passwords (또는 이와 유사한 자격 증명 파일)를 식별
  3. get 명령어로 모두 탈취
  4. 로컬에서 두 파일을 대조하여 admin 계정과 매칭되는 평문 패스워드를 확보
  5. 앞서 Gobuster로 찾아낸 http://[Target IP]/login.php 관리자 페이지에 접속
  6. 탈취한 자격 증명을 그대로 대입(Reuse)
  7. 인증 우회에 성공하여 관리자 대시보드 내의 서버 플래그 해시값을 획득
# 1. FTP 익명 접속 및 정보 탈취
ftp [Target IP]
Name: anonymous
Password: [Enter]
ftp> get allowed.userlist
ftp> get allowed.passwords
ftp> exit

# 2. 로컬에서 계정 정보 확인
cat allowed.userlist
cat allowed.passwords

# 3. 브라우저에서 /login.php 접속 후 해당 정보로 로그인 성공
 

 

 

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

Three  (0) 2026.04.06
Responder  (0) 2026.04.06
Sequel  (0) 2026.04.06
Appointment  (1) 2026.04.06
Synced  (0) 2026.04.06

Discussion 0