Metasploit 데이터베이스 구성 및 사용법

Kali LinuxBeginner
지금 연습하기

소개

Metasploit Framework 는 침투 테스트 및 보안 연구에 사용되는 강력한 도구입니다. 데이터베이스 없이도 사용할 수 있지만, PostgreSQL 과 같은 데이터베이스에 연결하면 기능이 크게 향상됩니다. 데이터베이스를 사용하면 호스트, 발견된 서비스, 취약점 및 수집된 증거 (loot) 에 대한 정보를 저장할 수 있습니다. 이를 통해 대규모 평가 전반에 걸쳐 데이터를 훨씬 효율적으로 관리할 수 있습니다.

이 랩에서는 Metasploit 데이터베이스를 구성하고 사용하는 기본적인 단계를 배우게 됩니다. 데이터베이스 서비스를 초기화하고, 연결을 확인하며, 워크스페이스를 사용하여 프로젝트를 정리하는 방법을 배우게 됩니다.

msfdb init 으로 Metasploit 데이터베이스 초기화하기

이 단계에서는 Metasploit 데이터베이스를 초기화합니다. Metasploit Framework 에는 PostgreSQL 데이터베이스를 관리하는 편리한 스크립트인 msfdb가 포함되어 있습니다. init 명령은 PostgreSQL 서비스를 시작하고, Metasploit 전용 데이터베이스와 사용자를 생성하며, 프레임워크가 자동으로 사용할 수 있도록 연결 세부 정보를 저장합니다.

이 명령은 시스템 서비스를 관리하고 데이터베이스 사용자를 생성하기 때문에 sudo로 실행해야 합니다.

터미널을 열고 다음 명령을 실행합니다.

sudo msfdb init

데이터베이스가 초기화되고 있음을 나타내는 출력이 표시됩니다. 이 과정은 시간이 다소 걸릴 수 있습니다. 출력은 데이터베이스 사용자, 데이터베이스 및 구성 파일이 생성되었음을 확인하는 다음과 유사해야 합니다.

[+] Starting database
[+] Creating database user 'msf'
[+] Creating database 'msf'
[+] Creating database 'msf_test'
[+] Creating configuration file '/home/labex/.msf4/database.yml'
[+] Creating initial database schema

이 명령은 한 번만 실행하면 됩니다. 이후에는 Metasploit 에서 사용할 수 있도록 데이터베이스가 준비됩니다.

db_status 로 데이터베이스 연결 상태 확인하기

이 단계에서는 방금 초기화한 데이터베이스에 Metasploit 가 성공적으로 연결되었는지 확인할 것입니다. 이를 위해 먼저 Metasploit 와 상호 작용하는 기본 인터페이스인 Metasploit Framework 콘솔을 시작해야 합니다.

터미널에 msfconsole을 입력하여 콘솔을 시작합니다.

msfconsole

잠시 후 msf6 > 프롬프트가 표시되어 콘솔이 준비되었음을 나타냅니다.

이제 데이터베이스 연결 상태를 확인하려면 Metasploit 콘솔 내에서 db_status 명령을 사용합니다.

db_status

연결이 성공하면 확인 메시지가 표시됩니다.

[*] postgresql connected to msf

이는 Metasploit 가 데이터베이스에 올바르게 연결되었으며 데이터를 저장할 준비가 되었음을 확인합니다. 다음 단계를 위해 msfconsole 내에 머물겠습니다.

프로젝트를 위한 새 워크스페이스 생성하기

이 단계에서는 새 워크스페이스를 만드는 방법을 배웁니다. 워크스페이스는 Metasploit 데이터베이스의 가장 유용한 기능 중 하나입니다. 별도의 데이터 컨테이너 역할을 하여 서로 다른 침투 테스트 참여 또는 프로젝트를 완전히 분리할 수 있습니다. 기본적으로 default라는 이름의 워크스페이스에서 시작합니다.

새 워크스페이스를 만들려면 workspace 명령에 -a 플래그 ( "add"를 의미) 를 사용하고 새 워크스페이스 이름을 뒤에 붙입니다. project_alpha라는 이름의 워크스페이스를 만들어 보겠습니다.

msfconsole 프롬프트 내에서 다음 명령을 실행합니다.

workspace -a project_alpha

Metasploit 는 워크스페이스가 추가되었음을 확인하고 자동으로 새 워크스페이스로 전환합니다.

[*] Added workspace: project_alpha
[*] Workspace: project_alpha

이제 수집하는 모든 데이터 (호스트 정보, 스캔 결과 또는 자격 증명 등) 는 project_alpha 워크스페이스 내에 저장되어 default 워크스페이스와 분리됩니다.

사용 가능한 모든 워크스페이스 나열하기

이 단계에서는 데이터베이스에서 사용 가능한 모든 워크스페이스를 나열합니다. 이는 현재 모든 프로젝트를 확인하고 현재 작업 중인 프로젝트를 식별하는 데 유용합니다.

모든 워크스페이스를 나열하려면 인자 없이 workspace 명령을 실행하면 됩니다.

msfconsole 프롬프트 내에서 다음 명령을 실행합니다.

workspace

출력에는 모든 워크스페이스 목록이 표시됩니다. 현재 워크스페이스는 별표 (*) 로 표시됩니다. 이전 단계에서 생성한 default 워크스페이스와 project_alpha 워크스페이스가 모두 표시되어야 합니다.

  default
* project_alpha

이 명령은 프로젝트에 대한 빠른 개요를 제공하고 현재 컨텍스트를 추적하는 데 도움이 됩니다.

다른 워크스페이스 간 전환하기

이 단계에서는 다른 워크스페이스 간에 전환하는 방법을 배웁니다. 여러 프로젝트를 진행하면서 특정 참여와 관련된 데이터에 액세스하기 위해 활성 워크스페이스를 자주 변경해야 합니다.

다른 워크스페이스로 전환하려면 workspace 명령 다음에 활성화하려는 워크스페이스 이름을 입력합니다. default 워크스페이스로 다시 전환해 보겠습니다.

msfconsole 프롬프트 내에서 다음 명령을 실행합니다.

workspace default

Metasploit 는 메시지로 전환을 확인합니다.

[*] Workspace: default

workspace 명령을 다시 실행하여 전환을 확인할 수 있습니다. 이제 별표 (*) 가 default 옆에 있는 것을 볼 수 있습니다.

workspace
* default
  project_alpha

이제 작업 컨텍스트를 성공적으로 전환했습니다. Metasploit 콘솔을 종료하고 일반 터미널로 돌아가려면 exit를 입력합니다.

exit

요약

이 랩을 완료하신 것을 축하드립니다! 전문적인 참여를 위해 프레임워크를 효과적으로 사용하는 데 중요한 부분인 Metasploit 데이터베이스를 관리하는 필수 기술을 배웠습니다.

이 랩에서는 다음을 다루었습니다.

  • sudo msfdb init을 사용하여 Metasploit 용 PostgreSQL 데이터베이스 초기화.
  • msfconsole로 Metasploit 콘솔 시작.
  • db_status 명령으로 데이터베이스 연결 확인.
  • workspace -a <name>을 사용하여 새롭고 격리된 프로젝트 환경 생성.
  • workspace 명령으로 사용 가능한 모든 워크스페이스 나열.
  • workspace <name>을 사용하여 다른 워크스페이스 간 전환.

데이터베이스와 워크스페이스를 올바르게 사용하면 침투 테스트 활동 중에 체계적이고 효율적으로 작업하는 데 도움이 됩니다.