Metasploit 에서 db_nmap 을 사용한 기본 포트 스캔 수행

Kali LinuxBeginner
지금 연습하기

소개

Metasploit Framework 는 원격 대상 시스템에 대한 익스플로잇 코드 개발, 테스트 및 실행을 위한 강력한 오픈 소스 도구입니다. 모든 보안 평가의 중요한 부분은 정보 수집이며, 여기에는 열린 포트 및 실행 중인 서비스를 식별하기 위한 포트 스캔이 포함됩니다.

Metasploit 는 인기 있는 Nmap 스캐너를 db_nmap 명령을 통해 통합합니다. db_nmap의 주요 장점은 스캔 결과를 Metasploit 데이터베이스에 자동으로 저장하여 수집된 데이터를 쉽게 관리하고 쿼리할 수 있다는 것입니다.

이 랩에서는 db_nmap을 사용하여 기본적인 포트 스캔을 수행하고 Metasploit 콘솔 내에서 결과를 보는 방법을 배웁니다.

스캔 결과를 위한 워크스페이스 선택

이 단계에서는 Metasploit 콘솔을 시작하고 전용 워크스페이스를 생성합니다. Metasploit 의 워크스페이스는 각 평가에 대한 호스트, 서비스 및 기타 수집된 데이터를 분리하여 프로젝트를 구성하는 데 도움이 됩니다.

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

msfconsole

msfconsole 프롬프트 (msf6 >) 가 나타나면 새 워크스페이스를 생성하고 전환할 수 있습니다. 워크스페이스 이름을 portscan_lab으로 지정하겠습니다. 새 워크스페이스를 추가하려면 -a 플래그를 사용합니다.

workspace -a portscan_lab

확인 메시지가 표시됩니다.

[*] Added workspace: portscan_lab
[*] Workspace: portscan_lab

올바른 워크스페이스에 있는지 확인하려면 인자 없이 workspace 명령을 실행할 수 있습니다. 별표 *는 현재 활성 워크스페이스를 나타냅니다.

workspace

출력에는 사용 가능한 모든 워크스페이스가 나열됩니다.

  default
* portscan_lab

이제 워크스페이스 설정이 완료되었으므로 스캔을 시작할 준비가 되었습니다.

db_nmap -sS 를 사용하여 TCP SYN 스캔 실행

이 단계에서는 TCP SYN 스캔을 수행합니다. "스텔스 스캔" 또는 "반개방 스캔"으로도 알려진 이 스캔 유형은 빠르고 대상 시스템에 의해 기록될 가능성이 낮기 때문에 인기 있는 선택입니다. -sS 플래그는 Nmap 에 SYN 스캔을 수행하도록 지시합니다.

msfconsole 프롬프트 내에서 db_nmap 명령을 사용하여 로컬 머신 (localhost) 을 스캔합니다. 결과는 portscan_lab 워크스페이스에 자동으로 저장됩니다.

db_nmap -sS localhost

명령은 Nmap 을 실행하고 진행 상황과 결과를 표시합니다. 출력은 표준 Nmap 출력과 유사하게 보입니다.

[*] Nmap: Starting Nmap 7.94 ( https://nmap.org ) at ...
[*] Nmap: Nmap scan report for localhost (127.0.0.1)
[*] Nmap: Host is up (0.000084s latency).
[*] Nmap: Other addresses for localhost (not scanned): ::1
[*] Nmap: Not shown: 997 closed tcp ports (reset)
[*] Nmap: PORT     STATE SERVICE
[*] Nmap: 22/tcp   open  ssh
[*] Nmap: 5432/tcp open  postgresql
[*] Nmap: 6200/tcp open  oracle-tns
[*] Nmap: Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds

스캔에서 여러 개의 열린 포트가 식별되었으며, 이 정보는 이제 Metasploit 데이터베이스에 저장되었습니다.

db_nmap -sV 를 사용하여 서비스 버전 탐지 스캔 실행

이 단계에서는 열린 포트에서 실행 중인 서비스의 특정 버전을 식별하기 위해 더 자세한 스캔을 수행합니다. 서비스 버전을 아는 것은 잠재적인 취약점을 찾는 데 중요합니다. -sV 플래그는 Nmap 에서 버전 탐지를 활성화합니다.

msfconsole 프롬프트에서 다음 명령을 실행합니다. Nmap 이 버전 정보를 탐색하기 위해 각 열린 포트와 상호 작용해야 하므로 이 스캔은 이전 스캔보다 약간 더 오래 걸립니다.

db_nmap -sV localhost

출력은 SYN 스캔보다 더 자세합니다. 버전 탐지 프로브에서 수집된 정보가 포함된 새 VERSION 열에 주목하십시오.

[*] Nmap: Starting Nmap 7.94 ( https://nmap.org ) at ...
[*] Nmap: Nmap scan report for localhost (127.0.0.1)
[*] Nmap: Host is up (0.00011s latency).
[*] Nmap: Other addresses for localhost (not scanned): ::1
[*] Nmap: Not shown: 997 closed tcp ports (reset)
[*] Nmap: PORT     STATE SERVICE VERSION
[*] Nmap: 22/tcp   open  ssh     OpenSSH 8.9p1 Ubuntu 3ubuntu0.6 (Ubuntu Linux; protocol 2.0)
[*] Nmap: 5432/tcp open  postgresql PostgreSQL DB 14.10 (Ubuntu 14.10-0ubuntu0.22.04.1)
[*] Nmap: 6200/tcp open  unknown
[*] Nmap: Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
[*] Nmap: Nmap done: 1 IP address (1 host up) scanned in 6.78 seconds

이 새로운 정보는 데이터베이스에 자동으로 추가되어 발견된 호스트 및 해당 서비스의 레코드를 업데이트합니다.

hosts 명령으로 데이터베이스에서 발견된 호스트 목록 보기

이 단계에서는 Metasploit 데이터베이스를 쿼리하여 스캔 중에 발견된 호스트를 보는 방법을 배웁니다. hosts 명령은 현재 워크스페이스에 저장된 모든 호스트의 요약을 제공합니다.

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

hosts

출력은 발견된 모든 호스트를 나열하는 테이블입니다. localhost만 스캔했으므로 항목이 하나 표시됩니다.

Hosts
=====

address      mac  name       os_name  os_flavor  os_sp  purpose  info  comments
-------      ---  ----       -------  ---------  -----  -------  ----  --------
127.0.0.1         localhost  Linux               Linux  device

이 명령은 프로젝트 워크스페이스에서 식별되고 저장된 모든 대상을 빠르게 확인하는 방법입니다.

services 명령으로 발견된 서비스 목록 보기

이 단계에서는 services 명령을 사용하여 데이터베이스의 호스트에서 발견된 열린 포트 및 서비스에 대한 자세한 정보를 보는 방법을 배웁니다. 이 명령은 특히 버전 탐지 스캔을 실행한 후에 유용합니다.

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

services

출력에는 발견된 모든 서비스에 대한 자세한 테이블이 표시됩니다. 3 단계에서 수집한 포트, 프로토콜, 서비스 이름 및 버전 정보가 어떻게 포함되는지 확인하십시오.

Services
========

Host       Port  Proto  Name        State  Info
----       ----  -----  ----        -----  ----
127.0.0.1  22    tcp    ssh         open   OpenSSH 8.9p1 Ubuntu 3ubuntu0.6 (Ubuntu Linux; protocol 2.0)
127.0.0.1  5432  tcp    postgresql  open   PostgreSQL DB 14.10 (Ubuntu 14.10-0ubuntu0.22.04.1)
127.0.0.1  6200  tcp    unknown     open

services 명령을 사용하면 대상 시스템의 모든 잠재적인 진입점을 빠르게 검토할 수 있으며, 이는 보안 평가의 다음 단계를 계획하는 데 기본적인 부분입니다.

요약

이 실습에서는 Metasploit Framework 내에서 포트 스캔을 수행하는 기본 사항을 성공적으로 학습했습니다.

프로젝트를 체계적으로 관리하기 위해 전용 워크스페이스를 설정하는 것으로 시작했습니다. 그런 다음 db_nmap 명령을 사용하여 빠른 TCP SYN 스캔 (-sS) 과 더 자세한 서비스 버전 탐지 스캔 (-sV) 을 모두 실행했습니다. 마지막으로 hostsservices 명령을 사용하여 Metasploit 데이터베이스를 쿼리하여 자동으로 저장된 스캔 결과를 검토하는 방법을 배웠습니다.

이 워크플로우는 침투 테스트 및 보안 분석에서 정보 수집 단계의 초석입니다.