Metasploit 에서 SMB 열거를 위한 보조 스캐너 사용

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

소개

이 실습에서는 Metasploit Framework 를 사용하여 서버 메시지 블록 (SMB) 열거를 수행하는 방법을 배웁니다. SMB 는 네트워크상의 노드 간에 파일, 프린터 및 직렬 포트에 대한 공유 액세스를 제공하는 데 사용되는 네트워크 프로토콜입니다. SMB 버전을 열거하는 것은 침투 테스트의 중요한 첫 단계로, 대상에서 실행 중인 특정 소프트웨어 및 버전을 식별하는 데 도움이 되며, 이는 알려진 취약점과 상호 참조될 수 있습니다.

Metasploit 의 보조 스캐너 모듈 중 하나인 auxiliary/scanner/smb/smb_version을 사용하여 대상을 스캔하고 SMB 버전을 결정할 것입니다. Metasploit 은 취약점을 찾고, 악용하고, 검증하는 것을 쉽게 만들어주는 강력한 침투 테스트 프레임워크입니다.

이 실습이 끝나면 Metasploit 실행, 모듈 검색, 모듈 옵션 구성 및 대상 시스템에 대한 정보를 수집하기 위한 스캐너 실행에 익숙해질 것입니다.

smb_version 보조 모듈 검색

이 단계에서는 Metasploit Framework 콘솔을 실행하고 SMB 버전 스캔을 수행하는 데 적합한 모듈을 검색합니다. msfconsole은 Metasploit 과 상호 작용하는 기본 인터페이스입니다.

먼저 터미널을 열고 다음 명령을 실행하여 Metasploit 콘솔을 시작합니다. 초기화에 시간이 걸릴 수 있습니다.

msfconsole -q

-q 플래그는 시작 배너를 조용하게 만듭니다. 로드되면 msf6 >와 같은 Metasploit 프롬프트가 표시됩니다.

이제 SMB 버전 스캐닝 모듈을 찾아보겠습니다. search 명령을 사용하여 smb_version과 관련된 모듈을 찾을 수 있습니다.

search smb_version

일치하는 모듈 목록이 표시됩니다. 우리가 관심 있는 것은 보조 스캐너입니다. 출력은 다음과 유사해야 합니다.

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

   ##  Name                                 Disclosure Date  Rank    Check  Description
   -  ----                                 ---------------  ----    -----  -----------
   0  auxiliary/scanner/smb/smb_version                     normal  No     SMB Version Detection
   1  exploit/windows/smb/smb_doublepulsar_eternalblue      2017-04-14  extraordinary Yes    SMBv1/SMBv2 DoublePulsar/EternalBlue Unauthenticated RCE

출력에서 auxiliary/scanner/smb/smb_version이 필요한 모듈임을 알 수 있습니다.

smb_version 모듈 선택

이 단계에서는 이전 단계에서 찾은 모듈을 선택합니다. 올바른 모듈을 식별한 후 use 명령을 사용하여 프레임워크의 컨텍스트로 로드해야 합니다.

msfconsole 프롬프트에서 다음 명령을 입력하여 smb_version 스캐너를 선택합니다.

use auxiliary/scanner/smb/smb_version

현재 로드된 모듈을 반영하도록 프롬프트가 변경되는 것을 볼 수 있습니다.

msf6 auxiliary(scanner/smb/smb_version) >

이는 모듈이 이제 활성화되었음을 나타냅니다. 이 모듈에 대해 구성할 수 있는 옵션을 보려면 show options 명령을 사용합니다.

show options

그러면 모듈에 대해 설정할 수 있는 매개변수 테이블이 표시됩니다.

Module options (auxiliary/scanner/smb/smb_version):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   RHOSTS                    yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
   THREADS  1                yes       The number of concurrent threads (max one per host)

다음 단계에서 구성할 RHOSTS 및 THREADS 옵션에 주의하십시오. Required 열은 스캐너를 실행하기 전에 RHOSTS를 설정해야 함을 보여줍니다.

RHOSTS 옵션을 대상 IP 범위로 설정

이 단계에서는 스캔 대상을 구성합니다. RHOSTS 옵션 (원격 호스트) 은 Metasploit 에 어떤 머신을 스캔할지 알려줍니다. 이 실습에서는 로컬 머신에 Samba 서버를 설치하여 대상으로 사용합니다. 따라서 RHOSTS를 루프백 IP 주소인 127.0.0.1로 설정합니다.

set 명령을 사용하여 RHOSTS에 값을 할당합니다.

set RHOSTS 127.0.0.1

Metasploit 이 변경 사항을 확인합니다.

RHOSTS => 127.0.0.1

show options를 다시 실행하여 옵션이 올바르게 설정되었는지 확인할 수 있습니다. RHOSTS의 Current Setting으로 127.0.0.1이 나열된 것을 볼 수 있습니다. 스캐너가 대상을 알아야 하므로 필수 단계입니다.

더 빠른 스캔을 위해 THREADS 옵션 설정

이 단계에서는 THREADS 옵션을 조정합니다. 이 옵션은 Metasploit 이 사용할 동시 스캔 스레드 수를 제어합니다. 스레드 수를 늘리면 많은 수의 호스트를 대상으로 스캔할 때 스캔 속도를 크게 높일 수 있습니다.

단일 호스트 (127.0.0.1) 를 스캔할 때는 여러 스레드에서 성능 이점을 볼 수 없지만, 이 옵션을 구성하는 방법을 배우는 것은 좋은 습관입니다. 스레드 수를 50 으로 설정해 보겠습니다.

set 명령을 다시 사용하여 THREADS 값을 변경합니다.

set THREADS 50

Metasploit 이 설정을 확인합니다.

THREADS => 50

이제 스캐너는 최대 50 개의 스레드를 사용하도록 구성되었으며, 이는 192.168.1.0/24와 같은 네트워크 범위를 스캔하는 데 매우 효과적일 것입니다.

스캐너 실행 및 출력 분석

이 단계에서는 모든 옵션이 구성되었으므로 스캐너를 실행할 준비가 되었습니다. run 명령 (또는 별칭인 exploit) 은 지정된 대상에 대해 모듈을 시작합니다.

msfconsole 프롬프트에서 스캐너를 실행합니다.

run

모듈은 이제 127.0.0.1의 포트 445 에 연결을 시도하고 SMB 버전을 결정합니다. 출력은 다음과 유사하게 표시됩니다.

[*] 127.0.0.1:445     - Sending SMBv1 request
[+] 127.0.0.1:445     - Host is running Samba 4.15.13-Ubuntu (Samba 4.15.13-Ubuntu)
[*] 127.0.0.1:445     - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed

출력을 분석해 보겠습니다.

  • [+] 기호는 성공적인 결과를 나타냅니다.
  • Host is running Samba 4.15.13-Ubuntu 줄은 SMB 서버 소프트웨어의 정확한 버전을 알려줍니다. 이 정보는 침투 테스터에게 매우 유용하며, 이제 이 버전에 특정한 취약점을 검색할 수 있습니다.
  • 마지막 줄은 스캔이 완료되었음을 확인합니다.

대상에서 SMB 버전을 성공적으로 열거했습니다. Metasploit 콘솔을 종료하려면 exit를 입력하면 됩니다.

exit

요약

이 실습에서는 Metasploit 보조 스캐너를 사용하여 SMB 열거를 성공적으로 수행했습니다. Metasploit Framework 내에서 모듈을 사용하는 기본적인 워크플로를 배웠습니다.

다음과 같은 핵심 기술을 연습했습니다.

  • Metasploit 콘솔 (msfconsole) 시작.
  • search 명령으로 모듈 검색.
  • use 명령으로 모듈 선택 및 로드.
  • show options 및 set을 사용하여 RHOSTS 및 THREADS와 같은 모듈 옵션 보기 및 구성.
  • run 명령으로 모듈 실행.
  • 출력을 분석하여 대상에 대한 중요한 정보 수집.

이러한 정보 수집 과정은 모든 보안 평가 또는 침투 테스트의 기본 요소입니다. 실습을 완료하신 것을 축하드립니다!