소개
이 실습에서는 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명령으로 모듈 실행.- 출력을 분석하여 대상에 대한 중요한 정보 수집.
이러한 정보 수집 과정은 모든 보안 평가 또는 침투 테스트의 기본 요소입니다. 실습을 완료하신 것을 축하드립니다!


