Kali Linux 에서 msfconsole 인터페이스 실행 및 탐색하기

Kali LinuxBeginner
지금 연습하기

소개

Metasploit Framework 는 보안 전문가들이 침투 테스트, 익스플로잇 개발 및 취약점 연구에 사용하는 강력한 오픈 소스 도구입니다. 이 프레임워크의 주요 인터페이스는 Metasploit Console, 즉 msfconsole이며, 이는 프레임워크의 모든 기능에 효율적으로 접근할 수 있는 명령줄 인터페이스입니다.

이 랩에서는 msfconsole을 실행하고 탐색하는 기본적인 필수 기술을 배우게 됩니다. 필요한 백그라운드 서비스 시작, 콘솔 실행, 인터페이스 탐색, 도움말 시스템 사용 및 정상적인 종료에 대해 다룰 것입니다. 이러한 기본 사항을 숙달하는 것은 보안 평가를 위해 Metasploit 를 효과적으로 사용하는 첫 번째 단계입니다.

필수 PostgreSQL 서비스 시작

Metasploit 를 실행하기 전에 PostgreSQL 데이터베이스 서비스를 시작하는 것이 가장 좋습니다. Metasploit 는 이 데이터베이스를 사용하여 프로젝트, 호스트, 발견된 취약점 및 수집된 증거 (loot) 에 대한 정보를 저장합니다. msfconsole은 데이터베이스 없이도 실행될 수 있지만, 데이터베이스에 연결하면 강력한 데이터 관리 기능 중 상당수를 사용할 수 있습니다.

이 단계에서는 PostgreSQL 서비스를 시작하고 올바르게 실행 중인지 확인할 것입니다. 이 환경은 systemctl을 지원하지 않으므로 service 명령을 사용할 것입니다.

먼저 터미널을 열고 다음 명령을 사용하여 PostgreSQL 서비스를 시작합니다. 시스템 서비스 관리는 관리자 권한이 필요하므로 sudo가 필요합니다.

sudo service postgresql start

서비스가 시작되고 있음을 나타내는 출력이 표시되어야 합니다.

 * Starting PostgreSQL 14 database server                                                                                                                                                             [ OK ]

다음으로 서비스가 성공적으로 시작되었는지 확인하려면 상태를 확인할 수 있습니다.

sudo service postgresql status

성공적으로 시작되면 서비스가 온라인 상태임을 보여줍니다.

14/main (port 5432): online

이제 데이터베이스가 실행 중이므로 Metasploit 콘솔을 시작할 준비가 되었습니다.

msfconsole 명령을 사용하여 Metasploit 콘솔 실행

데이터베이스 서비스가 실행 중이므로 이제 Metasploit 의 메인 인터페이스인 msfconsole을 실행할 수 있습니다. 이 명령은 프레임워크를 초기화하고 모든 모듈 (익스플로잇, 페이로드, 보조 등) 을 로드하며 데이터베이스에 연결합니다.

이 단계에서는 터미널에서 msfconsole 명령을 실행합니다. 환경을 설정하므로 첫 번째 실행에는 몇 분이 걸릴 수 있습니다.

터미널에 다음 명령을 입력하고 Enter 키를 누릅니다.

msfconsole

잠시 로딩 시간이 지나면 무작위로 선택된 환영 배너 (ASCII 아트) 와 msfconsole 명령 프롬프트가 표시됩니다. 프롬프트는 일반적으로 msf6 >와 같이 표시되며, 여기서 6은 Metasploit Framework 의 버전을 나타냅니다.

                                                  `s`
                                                 `h`
                                                `o`
                                               `y`
                                              `s`
`s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`
`o`  `o`  `o`  `o`  `o`  `o`  `o`  `o`  `o`  `o`  `o`  `o`  `o`  `o`  `o`  `o`  `o`  `o`  `o`
`y`  `y`  `y`  `y`  `y`  `y`  `y`  `y`  `y`  `y`  `y`  `y`  `y`  `y`  `y`  `y`  `y`  `y`  `y`
 `s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`
  `o`  `o`  `o`  `o`  `o`  `o`  `o`  `o`  `o`  `o`  `o`  `o`  `o`  `o`  `o`  `o`  `o`
   `y`  `y`  `y`  `y`  `y`  `y`  `y`  `y`  `y`  `y`  `y`  `y`  `y`  `y`  `y`  `y`
    `s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`
     `o`  `o`  `o`  `o`  `o`  `o`  `o`  `o`  `o`  `o`  `o`  `o`  `o`  `o`
      `y`  `y`  `y`  `y`  `y`  `y`  `y`  `y`  `y`  `y`  `y`  `y`  `y`
       `s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`
        `o`  `o`  `o`  `o`  `o`  `o`  `o`  `o`  `o`  `o`  `o`
         `y`  `y`  `y`  `y`  `y`  `y`  `y`  `y`  `y`  `y`
          `s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`  `s`
           `o`  `o`  `o`  `o`  `o`  `o`  `o`  `o`
            `y`  `y`  `y`  `y`  `y`  `y`  `y`
             `s`  `s`  `s`  `s`  `s`  `s`
              `o`  `o`  `o`  `o`  `o`
               `y`  `y`  `y`  `y`
                `s`  `s`  `s`
                 `o`  `o`
                  `y`

       =[ metasploit v6.x.x-dev-xxxxxxxx ]
+ -- --=[ 23xx exploits - 12xx auxiliary - 4xx post ]
+ -- --=[ 14xx payloads - 4x encoders - 1x nops ]
+ -- --=[ 9 evasion ]

Metasploit tip: View advanced options for a module by using
advanced

msf6 >

이제 Metasploit 콘솔 안에 있으며 명령을 사용하기 시작할 수 있습니다.

msfconsole 환영 배너 및 버전 탐색

이제 msfconsole 안에 들어왔으니, 표시된 정보를 잠시 살펴보겠습니다. 환영 배너는 창의적인 ASCII 아트 외에도 프레임워크의 기능을 간략하게 요약하여 제공합니다. 사용 가능한 익스플로잇, 보조 모듈, 페이로드 등의 수를 알려줍니다.

배너에는 Metasploit 버전도 표시됩니다. 하지만 콘솔에서 작업하는 동안 언제든지 버전을 확인해야 하는 경우 version 명령을 사용할 수 있습니다.

msf6 > 프롬프트에서 version 명령을 입력하고 Enter 키를 누릅니다.

version

출력에는 현재 실행 중인 Metasploit Framework 및 Console 라이브러리의 특정 버전이 표시됩니다.

msf6 > version
Framework: 6.x.x-dev-xxxxxxxx
Console  : 6.x.x-dev-xxxxxxxx

이 명령은 설치를 확인하고 특정 작업 또는 튜토리얼에 필요한 특정 버전을 실행하고 있는지 확인하는 데 유용합니다.

help 명령을 사용하여 사용 가능한 명령 목록 보기

msfconsole에는 많은 명령이 있으며, 이 모든 것을 기억하는 것은 불가능합니다. 내장된 help 명령은 콘솔 탐색에 가장 유용한 도구입니다. 이 명령은 기능별로 그룹화된 사용 가능한 모든 명령의 포괄적인 목록을 제공합니다.

이 단계에서는 help 명령을 사용하여 사용 가능한 옵션을 탐색합니다.

msf6 > 프롬프트에서 help를 입력하고 Enter 키를 누릅니다.

help

콘솔에 긴 명령 목록이 표시됩니다. 아래는 볼 수 있는 출력의 축약된 예시입니다.

msf6 > help

Core Commands
=============

    Command       Description
    -------       -----------
    ?             Help menu
    banner        Display an awesome metasploit banner
    cd            Change the current working directory
    color         Toggle color
    connect       Communicate with a host
    exit          Exit the console
    ...

Module Commands
===============

    Command       Description
    -------       -----------
    advanced      Displays advanced options for a module
    back          Move back from the current context
    info          Displays information about a module
    load          Load a framework plugin
    ...

잠시 목록을 스크롤하여 사용 가능한 다양한 유형의 명령을 파악해 보세요. 명령 이름 앞에 help를 입력하여 특정 명령에 대한 도움말을 얻을 수도 있습니다. 예를 들어, help searchsearch 명령 사용 방법에 대한 자세한 정보를 제공합니다.

exit 명령을 사용하여 msfconsole 종료하기

Metasploit Framework 내에서의 작업을 마쳤다면, 콘솔을 올바르게 종료하는 것이 중요합니다. 이렇게 하면 실행 중인 모든 작업이 깔끔하게 종료되고 표준 명령줄 셸로 돌아갈 수 있습니다.

msfconsole을 종료하는 명령은 간단하고 직관적입니다.

msf6 > 프롬프트에서 exit를 입력하고 Enter 키를 누릅니다.

exit

콘솔은 간단한 종료 시퀀스를 수행한 후 ~/project 디렉토리의 일반 터미널 프롬프트로 돌아갑니다.

msf6 > exit
labex@instance:~/project$

이제 Metasploit 콘솔을 성공적으로 실행, 탐색 및 종료했습니다.

요약

축하합니다! 이 실습에서는 Metasploit Framework 작업을 위한 필수적인 첫 단계를 배웠습니다.

다음 내용을 성공적으로 수행했습니다.

  • Metasploit 의 데이터 관리에 중요한 PostgreSQL 데이터베이스 서비스를 시작했습니다.
  • msfconsole 인터페이스를 실행했습니다.
  • 환영 배너를 검토하고 version 명령을 사용했습니다.
  • help 명령을 사용하여 사용 가능한 기능을 탐색했습니다.
  • exit 명령을 사용하여 콘솔을 깔끔하게 종료했습니다.

이러한 기본적인 기술은 향후 Metasploit 에서 수행할 모든 작업의 기초를 형성합니다. 이제 모듈 검색, 익스플로잇 구성 및 공격 시작과 같은 고급 주제로 넘어갈 준비가 되었습니다.