Metasploit 에서 모듈 검색하기

Kali LinuxBeginner
지금 연습하기

소개

Metasploit Framework 는 보안 전문가들이 침투 테스트 및 취약점 평가에 사용하는 강력한 도구입니다. 익스플로잇 (exploits), 보조 스캐너 (auxiliary scanners), 페이로드 (payloads) 등을 포함한 방대한 모듈 데이터베이스를 보유하고 있습니다. 수천 개의 모듈이 존재하므로, 올바른 모듈을 효율적으로 검색하는 방법을 아는 것은 매우 중요한 기술입니다.

이 랩에서는 Metasploit 에서 모듈을 검색하는 기본적인 기술을 배우게 됩니다. 키워드 검색부터 시작하여 모듈 유형 및 특정 CVE 식별자를 필터링하여 검색을 개선하는 방법을 탐색할 것입니다. 마지막으로 모듈의 세부 정보를 검사하고 사용을 위해 선택하는 방법을 배우게 됩니다.

ssh 와 같은 서비스 이름으로 search 명령어 사용하기

이 단계에서는 Metasploit 콘솔을 실행하고 특정 서비스와 관련된 모듈에 대한 기본 검색을 수행하는 것부터 시작합니다. search 명령어는 Metasploit 의 광범위한 모듈 라이브러리를 탐색하는 주요 도구입니다.

먼저 터미널을 열고 msfconsole 명령을 실행하여 Metasploit Framework 콘솔을 시작합니다. 로드하는 데 시간이 걸릴 수 있습니다.

msfconsole

배너와 함께 msf6 >와 같은 Metasploit 명령 프롬프트가 표시됩니다.

이제 SSH(Secure Shell) 서비스와 관련된 모든 모듈을 검색해 보겠습니다. Metasploit 콘솔에 다음 명령을 입력하고 Enter 키를 누릅니다.

search ssh

Metasploit 는 이름이나 설명에 "ssh"가 포함된 모든 모듈 목록을 표시합니다. 출력은 여러 열로 구성된 테이블 형식으로 표시됩니다.

  • #: 검색 결과에서 모듈의 인덱스 번호입니다.
  • Name: 모듈의 전체 경로 및 이름입니다.
  • Disclosure Date: 취약점이 공개적으로 공개된 날짜입니다.
  • Rank: 모듈의 신뢰도 등급입니다 (예: excellent, great, good).
  • Check: 타겟이 취약한지 여부를 익스플로잇 없이 확인할 수 있는 check 메서드가 있는지 나타냅니다.
  • Description: 모듈이 수행하는 작업에 대한 간략한 요약입니다.

출력은 다음과 유사하게 표시됩니다 (목록이 더 길거나 버전이 다를 수 있습니다).

msf6 > search ssh

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

   ##   Name                                                 Disclosure Date  Rank     Check  Description
   -   ----                                                 ---------------  ----     -----  -----------
   0   auxiliary/scanner/ssh/ssh_login                      1999-01-01       normal   No     SSH Login Check Scanner
   1   auxiliary/scanner/ssh/ssh_login_pubkey               2002-07-23       normal   No     SSH Public Key Login Scanner
   2   exploit/linux/ssh/libssh_auth_bypass                 2018-10-16       great    Yes    LibSSH Authentication Bypass
   3   auxiliary/scanner/ssh/ssh_enumusers                  2018-08-20       normal   No     OpenSSH User Enumeration
   4   post/linux/manage/ssh_authorized_keys                                 normal   No     Linux Manage SSH Authorized Keys
...

이 간단한 검색을 통해 사용 가능한 모든 SSH 관련 모듈에 대한 개요를 파악할 수 있습니다.

exploit 또는 auxiliary 와 같은 모듈 유형으로 검색 결과 필터링하기

이 단계에서는 특정 모듈 유형으로 검색 결과를 좁히는 방법을 배우게 됩니다. 이전 검색에서는 auxiliary, exploit, post와 같은 다양한 유형의 모듈이 반환되었습니다. 종종 필요한 모듈의 종류를 알고 있을 것입니다.

Metasploit 에서는 type과 같은 키워드를 사용하여 검색을 필터링할 수 있습니다. 가장 일반적인 유형은 다음과 같습니다.

  • exploit: 취약점을 이용하여 제어권을 획득하는 모듈입니다.
  • auxiliary: 직접적인 익스플로잇이 아닌 스캐닝, 퍼징 (fuzzing), 스니핑 (sniffing) 및 기타 작업을 위한 모듈입니다.
  • post: 침해된 시스템에서 실행되는 포스트 익스플로잇 (post-exploitation) 모듈입니다.

SSH 와 관련된 exploit 모듈만 찾도록 이전 검색을 개선해 보겠습니다. 검색 쿼리에서 type: 필터를 사용합니다.

search type:exploit ssh

이제 출력은 익스플로잇으로 분류된 모듈로 제한됩니다.

msf6 > search type:exploit ssh

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

   ##   Name                                  Disclosure Date  Rank    Check  Description
   -   ----                                  ---------------  ----    -----  -----------
   0   exploit/linux/ssh/libssh_auth_bypass  2018-10-16       great   Yes    LibSSH Authentication Bypass
   1   exploit/multi/ssh/sshexec             2004-01-01       manual  No     SSH Exec
...

마찬가지로, SSH 서비스에 대한 정보를 수집하기 위한 스캐너를 찾고 있다면 auxiliary 모듈을 검색할 것입니다.

search type:auxiliary ssh

이 명령은 SSH 에 대한 스캐너 및 기타 비 - 익스플로잇 도구 목록을 반환합니다.

msf6 > search type:auxiliary ssh

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

   ##   Name                                  Disclosure Date  Rank    Check  Description
   -   ----                                  ---------------  ----    -----  -----------
   0   auxiliary/scanner/ssh/ssh_login       1999-01-01       normal  No     SSH Login Check Scanner
   1   auxiliary/scanner/ssh/ssh_enumusers   2018-08-20       normal  No     OpenSSH User Enumeration
...

유형 필터를 사용하는 것은 필요한 도구의 종류를 빠르게 찾는 강력한 방법입니다.

특정 CVE 식별자로 검색하기

이 단계에서는 특정 Common Vulnerabilities and Exposures (CVE) 식별자와 관련된 모듈을 검색하는 방법을 배우게 됩니다. 타겟으로 삼고 싶은 취약점의 CVE ID 를 알고 있다면, 해당 익스플로잇을 찾는 가장 직접적인 방법입니다.

CVE 는 공개적으로 알려진 사이버 보안 취약점에 대한 고유 식별자입니다. Metasploit 모듈은 종종 해결하는 CVE 와 함께 태그됩니다.

cve: 필터를 사용하여 CVE 로 검색할 수 있습니다. 예를 들어, 일부 OpenSSH 버전의 사용자 열거 취약점인 CVE-2018-15473 과 관련된 모듈을 검색해 보겠습니다.

search cve:2018-15473

이 검색은 매우 구체적이며 이 특정 취약점을 타겟으로 하도록 설계된 모듈만 반환해야 합니다.

msf6 > search cve:2018-15473

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

   ##   Name                                 Disclosure Date  Rank    Check  Description
   -   ----                                 ---------------  ----    -----  -----------
   0   auxiliary/scanner/ssh/ssh_enumusers  2018-08-20       normal  No     OpenSSH User Enumeration

보시다시피, 검색은 이 CVE 에 대한 정확한 보조 모듈 (auxiliary module) 을 정확히 찾아냅니다. CVE 로 검색하는 것은 취약점 스캔 보고서나 보안 권고를 바탕으로 작업할 때 필수적인 기술입니다.

info 명령어를 사용하여 상세 모듈 정보 보기

이 단계에서는 모듈을 사용하기 전에 해당 모듈에 대한 상세 정보를 얻는 방법을 배우게 됩니다. 유망한 모듈을 찾은 후에는 해당 모듈이 무엇을 하는지, 어떤 옵션이 필요한지, 누가 개발했는지 이해하는 것이 중요합니다. info 명령어가 이 모든 정보를 제공합니다.

모듈의 전체 이름 또는 마지막 검색 결과의 인덱스 번호를 사용하여 info 명령어를 사용할 수 있습니다. 이전 단계에서 찾은 ssh_enumusers 모듈에 대한 자세한 정보를 얻어 보겠습니다.

전체 이름을 사용할 수 있습니다.

info auxiliary/scanner/ssh/ssh_enumusers

또는 마지막 검색에서 항목 0이었다면 단순히 info 0을 사용할 수 있습니다. 일반적으로 전체 이름을 사용하는 것이 더 안정적입니다.

이 명령은 모듈에 대한 상세 페이지를 표시합니다.

msf6 > info auxiliary/scanner/ssh/ssh_enumusers

       Name: OpenSSH User Enumeration
     Module: auxiliary/scanner/ssh/ssh_enumusers
    License: Metasploit Framework License (BSD)
       Rank: Normal
  Disclosed: 2018-08-20

Provided by:
  Justin Gardner

Check supported:
  No

Basic options:
  Name      Current Setting  Required  Description
  ----      ---------------  --------  -----------
  RHOSTS                     yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
  RPORT     22               yes       The target port (TCP)
  THREADS   1                yes       The number of concurrent threads (max one per host)
  USER_FILE                  yes       File containing usernames, one per line

Description:
  This module enumerates valid usernames on OpenSSH servers by exploiting
  a subtle timing discrepancy in the C library's handling of password
  authentication.

References:
  https://nvd.nist.gov/vuln/detail/CVE-2018-15473
  https://www.exploit-db.com/exploits/45233/

이 출력은 필요한 옵션 (RHOSTS, USER_FILE 등), 모듈 목적에 대한 전체 설명, 원본 취약점 공개 링크를 포함한 중요한 정보를 제공합니다. 모듈을 사용하기 전에 항상 이 정보를 검토하십시오.

use 명령어로 사용할 모듈 선택하기

이 마지막 단계에서는 모듈을 선택하여 활성화하는 방법을 배우게 됩니다. 모듈을 식별하고 조사한 후에는 구성하고 실행하기 위해 프레임워크의 컨텍스트로 로드해야 합니다. 이는 use 명령어로 수행됩니다.

info 명령어와 유사하게, use 뒤에는 모듈의 전체 이름이나 검색 결과의 인덱스 번호를 사용할 수 있습니다. ssh_enumusers 모듈을 선택해 보겠습니다.

use auxiliary/scanner/ssh/ssh_enumusers

이 명령을 실행한 후 Metasploit 프롬프트가 변경된 것을 알 수 있습니다. 이제 활성 모듈의 이름이 포함되어 있으며, 이는 모듈이 로드되어 구성 준비가 되었음을 나타냅니다.

msf6 > use auxiliary/scanner/ssh/ssh_enumusers
msf6 auxiliary(scanner/ssh/ssh_enumusers) >

새로운 프롬프트 msf6 auxiliary(scanner/ssh/ssh_enumusers) >는 모듈이 로드되었음을 확인합니다. 여기서부터 일반적으로 show options와 같은 명령어를 사용하여 설정해야 할 매개변수를 확인하고, set 명령어로 이를 구성한 다음, 마지막으로 run 또는 exploit 명령어로 모듈을 실행합니다. 이 실험실에서는 모듈을 실행하지 않겠지만, 모듈을 선택하는 것이 검색 프로세스의 필수적인 마지막 단계입니다.

기본 msf6 > 프롬프트로 돌아가려면 back 명령어를 사용할 수 있습니다.

요약

이 실험실에서는 Metasploit Framework 내에서 모듈을 찾는 데 필수적인 기술을 배웠습니다. 이제 수천 개의 사용 가능한 모듈을 정확하고 효율적으로 탐색할 수 있습니다.

이 프로세스의 핵심 명령어를 연습했습니다.

  • search: 서비스 이름과 같은 키워드를 기반으로 모듈을 찾습니다.
  • search type:<type>: exploit 또는 auxiliary와 같은 특정 모듈 유형에 대한 결과를 필터링합니다.
  • search cve:<cveid>: 특정 CVE 취약점과 관련된 모듈을 정확히 찾아냅니다.
  • info: 모듈의 세부 정보, 옵션 및 목적을 검사합니다.
  • use: 모듈을 선택하여 프레임워크의 컨텍스트로 로드합니다.

이러한 검색 기술을 숙달하는 것은 Metasploit 숙련을 향한 근본적인 단계입니다. 이제 향후 침투 테스트 작업에 적합한 도구를 찾는 데 필요한 역량을 갖추었습니다.