hhkb.dev

BLOG

2025-11-22 / 호스트기반모의해킹 · 10

FTP 취약점 진단

1. 개요

FTP(File Transfer Protocol)는 파일 전송을 위해 오래전부터 쓰여 온 프로토콜이다.

  • 특징: 기본적으로 암호화를 제공하지 않는 평문 통신(Clear Text Communication)을 사용한다.
  • 포트: 보통 TCP 21번을 사용한다.

2. 주요 진단 항목

2.1 서비스 버전 확인 및 CVE 조회

오래된 서버나 솔루션에 포함된 Legacy FTP 서비스는 이미 알려진 공개 취약점(Public Exploit)이 붙어 있을 가능성이 크다.

진단은 보통 아래 순서로 간다.

  1. 배너 그래빙(-sV)으로 정확한 버전을 식별한다. 예를 들면 vsftpd 2.3.4 같은 식이다.
  2. searchsploit vsftpd 2.3.4처럼 버전 기준으로 공개된 취약점 정보를 확인한다.

대표 사례로 vsftpd 2.3.4는 특정 조건에서 치명적인 원격 코드 실행 이슈로 자주 언급된다.

2.2 익명 로그인 허용 여부(Anonymous Login)

계정이 없는 사용자도 anonymous로 접속할 수 있게 열어 둔 경우가 있다.

진단은 아래처럼 기본 접속 여부를 확인하는 방식으로 본다.

ftp [Target_IP]
Name: anonymous
Password:(엔터 또는 아무 문자)

이 설정이 열려 있으면 설정 파일이나 백업 데이터 같은 민감 정보가 그대로 노출될 수 있다.

2.3 파일 접근 권한(File Permissions)

핵심은 읽기와 쓰기 권한이 어디까지 열려 있는지 확인하는 것이다.

  • 읽기 권한(Read): 중요 파일(secret.txt, config.php)을 내려받을 수 있는지 본다.
  • 쓰기 권한(Write): 업로드가 가능한지, 그리고 업로드된 파일이 다른 서비스와 연결되어 추가 위험으로 이어지는지 확인한다.
  • 기본 명령: get [file]는 다운로드, put [file]는 업로드에 쓴다.

2.4 기본 계정 및 무차별 대입(Default Credentials)

기본 계정이 그대로 남아 있는지도 자주 보는 항목이다.

  • 목적: admin/admin, root/root 같은 초기 계정을 그대로 쓰는지 확인한다.
  • 도구: Hydra 같은 도구로 제한된 범위의 사전 대입을 점검할 수 있다.

3. 실무에서는?

실무에서는 FTP를 단독 이슈보다, 정보 노출이나 다른 서비스와의 연계 지점으로 보는 경우가 많다.

  1. DoS(서비스 거부) 계열 검증은 우선순위에서 제외한다. 모의해킹의 목적은 서비스 마비가 아니라 위험 확인에 가깝다.
  2. FTP 자체 취약점보다, 업로드 경로와 다른 서비스가 맞물리는 구성을 함께 보는 편이 실제 결과물에 더 도움이 된다.
  3. 테스트 과정에서 업로드한 파일(test.txt 등)은 끝난 뒤 반드시 정리하거나 삭제 요청을 남겨야 한다.