아키텍처 및 데이터베이스 설정

사이버 보안Beginner
지금 연습하기

소개

Metasploit Framework 는 보안 전문가들이 모의 해킹 및 취약점 분석을 위해 사용하는 강력한 도구입니다. 이 아키텍처의 핵심 구성 요소는 일반적으로 PostgreSQL 인 백엔드 데이터베이스입니다.

Metasploit 은 단순한 익스플로잇 모음이 아니라 하나의 워크플로우 플랫폼이기 때문에 이 점을 강조할 필요가 있습니다. 데이터베이스, 모듈, 세션 및 워크스페이스는 모두 복잡해지는 프로젝트를 효율적으로 관리할 수 있도록 돕는 역할을 합니다.

Metasploit 과 데이터베이스를 통합하면 평가 과정에서 수집된 데이터를 효율적으로 저장, 검색 및 관리할 수 있습니다. 여기에는 발견된 호스트, 열린 포트, 실행 중인 서비스 및 추출된 자격 증명이 포함됩니다. 워크스페이스를 활용하면 프로젝트나 대상 네트워크별로 데이터를 논리적으로 분리하여 모의 해킹 워크플로우를 깔끔하고 체계적으로 유지할 수 있습니다.

이러한 구조가 없다면 대규모 평가 작업은 금방 파악하기 어려워집니다. 데이터베이스는 일회성 명령어를 다시 확인하고 연관 지을 수 있는 지속적인 지식 자산으로 변환해 줍니다.

이번 실습에서는 PostgreSQL 데이터베이스를 초기화하고, 주요 Metasploit 인터페이스인 msfconsole과 상호 작용하며, 프로젝트 워크스페이스를 관리하고, 내장된 스캔 도구를 사용하여 데이터베이스를 채우는 방법을 배웁니다.

PostgreSQL 데이터베이스 초기화

이 단계에서는 Metasploit 을 위한 PostgreSQL 데이터베이스를 초기화합니다. 데이터베이스는 Metasploit Framework 아키텍처의 핵심 구성 요소입니다. 설정, 워크스페이스, 발견된 호스트, 서비스 및 자격 증명을 저장하여 모의 해킹 중 효율적인 데이터 관리를 가능하게 합니다.

먼저 PostgreSQL 서비스가 실행 중인지 확인합니다. 다음 명령어를 사용하여 서비스를 시작하세요:

sudo systemctl start postgresql

다음으로 Metasploit 데이터베이스를 초기화합니다. 이 명령어는 새 데이터베이스를 생성하고, Metasploit 전용 데이터베이스 사용자를 설정하며, 홈 디렉토리에 필요한 설정 파일을 생성합니다:

msfdb init

데이터베이스가 성공적으로 생성되고 설정되었다는 메시지가 출력되어야 합니다. 설정 파일은 ~/.msf4/database.yml의 숨겨진 디렉토리에 저장됩니다.

msfconsole 실행 및 DB 상태 확인

이 단계에서는 Metasploit Framework 콘솔 (msfconsole) 을 실행하고 PostgreSQL 데이터베이스에 성공적으로 연결되었는지 확인합니다.

msfconsole은 프레임워크의 명령 센터로 생각하는 것이 가장 좋습니다. 데이터베이스가 연결되면 콘솔에서 수행된 작업은 공유된 내부 평가 모델을 풍부하게 만듭니다.

msfconsole은 Metasploit Framework 와 상호 작용하기 위한 기본 명령줄 인터페이스입니다. 모든 모듈, 페이로드 및 데이터베이스 기능에 액세스할 수 있는 중앙 집중식 콘솔을 제공합니다.

터미널에서 다음 명령어를 실행하여 (대형 ASCII 아트 시작 배너를 건너뛰기 위해) 조용한 모드로 콘솔을 시작하세요:

msfconsole -q

콘솔이 로드되면 프롬프트가 msf6 >로 변경되어 Metasploit 환경 내부에 있음을 나타냅니다.

콘솔 내에서 다음 명령어를 입력하여 데이터베이스 연결 상태를 확인하세요:

db_status

연결이 확인되면 다음과 유사한 출력이 표시됩니다:

[*] Connected to msf. Connection type: postgresql.

다음 단계를 위해 msfconsole을 계속 열어 두어도 좋습니다.

워크스페이스 생성 및 관리

이 단계에서는 워크스페이스를 생성하고 관리하는 방법을 배웁니다. 워크스페이스를 사용하면 모의 해킹 데이터를 논리적으로 분리할 수 있습니다. 예를 들어, 클라이언트별 또는 대상 네트워크별로 서로 다른 워크스페이스를 사용하여 호스트와 자격 증명이 섞이지 않도록 할 수 있습니다.

msfconsole 프롬프트 (msf6 >) 안에 있는지 확인하세요. 만약 종료했다면 msfconsole -q를 입력하여 다시 진입하면 됩니다.

현재 워크스페이스를 보려면 다음을 입력하세요:

workspace

별표 (*) 가 표시된 default 워크스페이스가 현재 활성화된 상태임을 확인할 수 있습니다.

이제 -a (add) 플래그를 사용하여 project_alpha라는 이름의 새 워크스페이스를 생성합니다:

workspace -a project_alpha

콘솔은 자동으로 새로 생성된 워크스페이스로 전환됩니다. workspace 명령어를 다시 실행하여 이를 확인할 수 있습니다:

workspace

출력에 * project_alpha가 표시되어 새 워크스페이스가 활성화되었고 데이터를 저장할 준비가 되었음을 확인할 수 있습니다.

워크스페이스로 Nmap 스캔 결과 가져오기

이 단계에서는 Metasploit 내에서 직접 Nmap 스캔을 실행하여 워크스페이스 데이터베이스를 채웁니다.

Metasploit 은 표준 Nmap 도구를 실행하고 스캔 결과 (호스트, 포트 및 서비스) 를 활성 워크스페이스 데이터베이스로 자동으로 가져오는 db_nmap 명령어를 제공합니다.

msfconsole 내부에서 (project_alpha 워크스페이스에 있는지 확인), 로컬 머신 (127.0.0.1) 을 대상으로 빠른 스캔을 실행합니다. 이 실습 환경에서는 PostgreSQL 서비스가 실행 중이므로 기본 포트인 5432를 스캔합니다.

db_nmap -sV -p 5432 127.0.0.1

스캔이 완료될 때까지 잠시 기다립니다. 완료되면 데이터베이스에 자동으로 저장된 발견된 호스트를 볼 수 있습니다:

hosts

스캔 중에 발견된 특정 서비스와 열린 포트를 보려면 services 명령어를 사용하세요:

services

호스트 IP, 포트, 프로토콜, 상태 및 서비스 이름이 표시된 구조화된 테이블이 나타납니다. 포트 5432를 스캔했으므로 HTTP 나 SSH 가 아닌 PostgreSQL 관련 서비스 항목이 표시되어야 합니다.

이제 데이터베이스를 성공적으로 초기화하고, 워크스페이스를 관리하며, 스캔 데이터를 가져왔습니다. Metasploit 콘솔을 종료하고 표준 Linux 터미널로 돌아가려면 다음을 입력하세요:

exit

요약

축하합니다! 아키텍처 및 데이터베이스 설정 실습을 성공적으로 완료했습니다.

Metasploit Framework 를 위한 PostgreSQL 데이터베이스를 초기화하고, msfconsole을 실행하며, 데이터베이스 연결을 확인하는 방법을 배웠습니다. 또한 프로젝트 데이터를 격리하기 위한 워크스페이스 생성 및 관리 방법을 익혔으며, db_nmap을 사용하여 대상을 원활하게 스캔하고 결과를 데이터베이스로 직접 가져오는 방법을 활용했습니다. 이러한 기초 기술은 체계적이고 효율적인 모의 해킹 워크플로우를 유지하는 데 필수적입니다.