Metasploit 에서 보조 스캐너를 사용하여 FTP 열거 수행하기

Kali LinuxBeginner
지금 연습하기

소개

이 실습에서는 정보 수집을 위한 Metasploit Framework 사용의 기초를 배우게 됩니다. 특히, 보조 스캐너 모듈을 사용하여 FTP(File Transfer Protocol) 열거에 중점을 둘 것입니다.

Metasploit 은 해킹을 더 쉽게 만드는 강력한 침투 테스트 프레임워크입니다. 방대한 도구, 익스플로잇 및 모듈 컬렉션을 포함하고 있습니다. 보조 모듈은 직접적인 익스플로잇을 포함하지 않는 스캐닝, 퍼징 및 정찰과 같은 작업을 위해 사용되는 핵심 구성 요소입니다.

FTP 열거는 FTP 서비스의 버전, 구성 및 익명 액세스를 허용하는지 여부와 같은 정보를 수집하는 프로세스입니다. 이 정보는 잠재적인 취약점을 식별하는 데 중요합니다. ftp_version 보조 모듈을 사용하여 대상을 스캔하고 실행 중인 FTP 서버 소프트웨어를 식별할 것입니다.

이 실습이 끝나면 Metasploit 모듈을 찾고, 구성하고, 실행하는 기본적인 워크플로우에 익숙해질 것입니다.

ftp_version 보조 모듈 검색

이 단계에서는 Metasploit Framework 콘솔을 실행하고 FTP 버전 스캐닝에 적합한 모듈을 검색합니다. Metasploit 콘솔은 프레임워크와 상호 작용하는 기본 인터페이스입니다.

먼저 터미널을 열고 Metasploit 콘솔을 시작합니다. 더 깔끔한 인터페이스를 위해 배너를 표시하지 않는 "quiet" 시작을 위해 -q 플래그를 사용합니다.

msfconsole -q

msfconsole 프롬프트에 들어가면 search 명령을 사용하여 모듈을 찾을 수 있습니다. FTP 서버 버전을 식별할 수 있는 모듈을 찾고 있습니다. 검색할 좋은 키워드는 ftp_version입니다.

msfconsole 프롬프트에 다음 명령을 입력합니다.

search ftp_version

일치하는 모듈 목록이 표시됩니다. 우리가 관심 있는 것은 보조 스캐너입니다.

msf6 > search ftp_version

Matching Modules
================

   ##  Name                                 Disclosure Date  Rank    Check  Description
   -  ----                                 ---------------  ----    -----  -----------
   0  auxiliary/scanner/ftp/ftp_version                     normal  No     FTP Version Scanner
   1  exploit/windows/ftp/ftpshell_version_bof  2010-05-12       good    No     FTPShell 6.70 (Windows 7) Version Stack Buffer Overflow

출력에는 auxiliary/scanner/ftp/ftp_version 모듈이 표시되며, 이는 우리의 작업에 필요한 정확한 모듈입니다.

ftp_version 모듈 선택

이 단계에서는 이전 단계에서 찾은 모듈을 선택합니다. search 명령으로 적합한 모듈을 식별한 후에는 프레임워크의 컨텍스트로 로드하여 구성하고 실행해야 합니다.

모듈을 선택하는 명령은 use이며, 검색 결과에서 해당 모듈의 전체 이름을 뒤에 붙입니다.

이전 단계의 출력에 따라 다음 명령을 사용하여 FTP 버전 스캐너를 선택합니다.

use auxiliary/scanner/ftp/ftp_version

이 명령을 실행하면 msfconsole 프롬프트가 변경된 것을 알 수 있습니다. 이제 선택한 모듈의 이름이 포함되어 해당 모듈의 컨텍스트 내에서 작업 중임을 나타냅니다.

msf6 > use auxiliary/scanner/ftp/ftp_version
msf6 auxiliary(scanner/ftp/ftp_version) >

이 새로운 프롬프트는 ftp_version 모듈이 이제 활성화되어 구성 준비가 되었음을 확인시켜 줍니다.

대상 IP 로 RHOSTS 옵션 설정

이 단계에서는 선택한 모듈을 구성합니다. 대부분의 Metasploit 모듈은 실행 전에 특정 옵션을 설정해야 합니다. 스캐너 모듈의 경우 가장 일반적인 옵션은 "Remote Hosts"를 의미하는 RHOSTS입니다. 이 옵션은 모듈이 어떤 대상 (들) 을 스캔해야 하는지 알려줍니다.

저희의 실험 환경은 동일한 머신 (localhost) 에서 실행되는 FTP 서버를 가지고 있습니다. localhost 의 IP 주소는 127.0.0.1입니다.

Metasploit 에서 옵션을 설정하려면 set 명령을 사용하고 옵션 이름과 값을 뒤에 붙입니다.

RHOSTS 옵션을 대상 IP 주소로 설정합니다.

set RHOSTS 127.0.0.1

Metasploit 은 변경된 설정을 다시 에코하여 변경 사항을 확인합니다.

msf6 auxiliary(scanner/ftp/ftp_version) > set RHOSTS 127.0.0.1
RHOSTS => 127.0.0.1

이제 모듈은 어떤 대상을 스캔해야 하는지 알고 있습니다.

show options 로 모듈 옵션 보기 및 이해

이 단계에서는 모듈의 구성을 보고 확인하는 방법을 배웁니다. 모듈을 실행하기 전에 모든 옵션을 검토하여 모든 것이 올바르게 설정되었는지 확인하는 것이 항상 좋은 습관입니다.

show options 명령은 현재 활성화된 모듈의 모든 구성 가능한 매개변수를 표시합니다.

ftp_version 스캐너의 옵션을 보려면 다음 명령을 실행합니다.

show options

그러면 각 옵션에 대한 세부 정보가 포함된 테이블이 표시됩니다.

msf6 auxiliary(scanner/ftp/ftp_version) > show options

Module options (auxiliary/scanner/ftp/ftp_version):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   RHOSTS   127.0.0.1        yes       대상 호스트(들), CIDR 범위 식별자 또는 'file:<path>' 구문을 가진 호스트 파일
   RPORT    21               yes       대상 포트 (TCP)
   THREADS  1                yes       동시 스레드 수 (호스트당 최대 하나)

각 열을 살펴보겠습니다.

  • Name: 옵션의 이름 (예: RHOSTS).
  • Current Setting: 현재 옵션에 할당된 값입니다. RHOSTS127.0.0.1이 설정된 것을 볼 수 있습니다.
  • Required: 모듈이 실행되기 위해 옵션을 설정해야 하는지 여부를 나타냅니다 (yes 또는 no).
  • Description: 옵션이 수행하는 작업에 대한 간략한 설명입니다.

이 출력을 검토함으로써 필수 RHOSTS 옵션이 대상에 올바르게 설정되었는지 확인할 수 있습니다. 다른 필수 옵션인 RPORTTHREADS는 이미 스캔에 적합한 기본값을 가지고 있습니다.

run 명령으로 모듈 실행

이 단계에서는 모듈을 실행하여 스캔을 수행합니다. 모듈을 선택하고 필요한 모든 옵션을 구성했으면 이제 모듈을 실행할 준비가 되었습니다.

보조 모듈 (auxiliary module) 을 실행하는 명령은 run입니다. (익스플로잇 모듈의 경우 run 또는 exploit를 사용할 수 있습니다.)

이제 스캐너를 실행합니다.

run

모듈은 지정된 포트에서 대상 FTP 서버에 연결하고 버전 배너를 검색하려고 시도합니다. 출력에는 스캔 결과가 표시됩니다.

msf6 auxiliary(scanner/ftp/ftp_version) > run

[+] 127.0.0.1:21      - FTP Banner: 220 (vsFTPd 3.0.5)
[*] 127.0.0.1:21      - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed

[+] 127.0.0.1:21 - FTP Banner: 220 (vsFTPd 3.0.5)라는 출력은 핵심 정보입니다. 이는 대상에서 FTP 서버가 실행 중임을 확인하고 소프트웨어 및 버전을 알려줍니다: vsFTPd 3.0.5. 이것은 성공적인 열거 (enumeration) 입니다.

요약

이 실습에서는 Metasploit Framework 를 사용하여 기본적인 FTP 열거 (enumeration) 를 성공적으로 수행했습니다. 보조 모듈 (auxiliary module) 을 사용하는 기본적인 워크플로우를 배웠으며, 이는 모든 Metasploit 사용자에게 핵심적인 기술입니다.

다음과 같은 주요 명령 및 개념을 연습했습니다.

  • msfconsole로 Metasploit 콘솔 시작하기.
  • search 명령으로 모듈 찾기.
  • use 명령으로 사용할 모듈 선택하기.
  • set 명령으로 RHOSTS와 같은 모듈 옵션 구성하기.
  • show options로 모듈 구성 확인하기.
  • run 명령으로 모듈을 실행하여 작업 수행하기.

이러한 검색, 선택, 구성 및 실행 프로세스는 Metasploit 내 수천 개의 모듈에 적용될 수 있으며, 이는 침투 테스트 및 보안 분석을 위한 기초적인 기술이 됩니다.