Metasploit 에서 실패하는 익스플로잇 문제 해결

Kali LinuxBeginner
지금 연습하기

소개

Metasploit 은 해킹을 단순하게 만들어주는 강력한 침투 테스트 프레임워크입니다. 하지만 최고의 도구를 사용하더라도 잘못된 대상 정보, 패치된 시스템 또는 네트워크 문제 등 다양한 이유로 익스플로잇이 실패할 수 있습니다. 이러한 실패를 진단하고 수정하는 방법을 아는 것은 모든 보안 전문가에게 중요한 기술입니다.

이 랩에서는 Metasploit 에서 실패하는 익스플로잇을 문제 해결하는 기본적인 워크플로우를 배우게 됩니다. 의도적으로 익스플로잇을 잘못 구성하고, 실패를 관찰한 다음, Metasploit 의 내장 도구를 사용하여 문제를 식별하고 수정할 것입니다. 성공에 필요한 정보를 얻기 위해 show options, check와 같은 명령 및 Verbose 설정을 사용하는 방법을 배우게 됩니다.

이 랩에서는 로컬 머신에서 백그라운드로 취약한 FTP 서버가 시작되었으며, 이 서버가 우리의 대상이 될 것입니다.

익스플로잇 선택 및 잘못된 옵션 설정

이 단계에서는 Metasploit Framework 콘솔을 실행하고, 익스플로잇 모듈을 선택한 다음, 일반적인 사용자 오류를 시뮬레이션하기 위해 의도적으로 잘못된 옵션을 구성할 것입니다. 이를 통해 문제 해결 과정을 준비할 것입니다.

먼저 터미널을 열고 Metasploit 콘솔을 시작합니다. 배너를 건너뛰고 로딩 프로세스를 빠르게 진행하기 위해 -q (quiet) 플래그를 사용합니다.

msfconsole -q

msf6 > 프롬프트가 나타나면 vsftpd 서비스를 대상으로 하는 익스플로잇을 검색할 것입니다.

search vsftpd

모듈 목록이 표시됩니다. 우리는 exploit/unix/ftp/vsftpd_234_backdoor에 관심이 있습니다. use 명령을 사용하여 이를 선택합니다.

use exploit/unix/ftp/vsftpd_234_backdoor

익스플로잇 모듈이 활성화되었음을 나타내도록 프롬프트가 변경됩니다. 이제 대상을 구성해야 합니다. 가장 중요한 옵션은 Remote Hosts 를 나타내는 RHOSTS입니다. 이를 의도적으로 잘못된 IP 주소로 설정할 것입니다.

set RHOSTS 192.168.1.100

RHOSTS가 설정되었음을 확인하는 메시지가 표시됩니다. 이제 실패가 보장되는 익스플로잇을 준비했습니다.

익스플로잇 실행 및 실패 메시지 관찰

이 단계에서는 잘못 구성된 익스플로잇을 실행하고 결과로 나타나는 실패 메시지를 해석하는 방법을 배웁니다. 이것이 문제 해결의 첫 번째이자 가장 중요한 부분입니다.

vsftpd_234_backdoor 익스플로잇이 선택되고 잘못된 RHOSTS가 설정된 상태에서 실행해 보겠습니다. run 또는 exploit 명령을 사용할 수 있습니다.

run

익스플로잇은 우리가 제공한 IP 주소 (192.168.1.100) 에 연결을 시도할 것입니다. 이 호스트는 랩 환경에서 도달할 수 없으므로 익스플로잇이 실패합니다. 다음과 유사한 출력이 표시됩니다.

[*] 192.168.1.100:21 - The target is not exploitable.
[*] Exploit completed, but no session was created.

The target is not exploitable 메시지 또는 유사한 연결 오류 메시지는 Metasploit 이 대상 서비스에 도달하거나 상호 작용할 수 없었음을 명확하게 나타냅니다. 이는 문제가 네트워킹 또는 대상 호스트 구성과 관련이 있을 가능성이 높다는 것을 알려줍니다.

show options 명령어를 사용하여 설정 검토

이 단계에서는 실패를 확인한 후 가장 먼저 해야 할 논리적인 작업은 설정을 검토하는 것입니다. show options 명령어는 이 작업을 위한 주요 도구입니다. 현재 모듈에 대해 구성 가능한 모든 매개변수를 표시합니다.

익스플로잇에 대해 설정한 옵션을 확인해 보겠습니다.

show options

이 명령어는 vsftpd_234_backdoor 익스플로잇에 대한 옵션 테이블을 표시합니다.

Module options (exploit/unix/ftp/vsftpd_234_backdoor):

   Name    Current Setting    Required  Description
   ----    ---------------    --------  -----------
   RHOSTS  192.168.1.100      yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
   RPORT   21                 yes       The target port (TCP)


Payload options (cmd/unix/interact):

   Name  Current Setting  Required  Description
   ----  ---------------  --------  -----------


Exploit target:

   Id  Name
   --  ----
   0   Automatic

RHOSTSCurrent Setting을 자세히 살펴보십시오. 192.168.1.100으로 설정되어 있으며, 이는 잘못된 값임을 알고 있습니다. 이 실험실의 취약한 서비스는 로컬 머신에서 실행됩니다. 로컬 머신의 IP 주소는 127.0.0.1입니다.

RHOSTS 값을 수정해 보겠습니다.

set RHOSTS 127.0.0.1

이제 show options를 다시 실행하면 RHOSTS 값이 올바르게 업데이트된 것을 볼 수 있습니다.

check 명령어를 사용하여 익스플로잇 가능성 테스트

이 단계에서는 check 명령어를 사용하는 방법을 배웁니다. 익스플로잇을 실행하기 전에 대상이 실제로 취약한지 확인하는 것이 좋습니다. check 명령어는 익스플로잇 페이로드 (payload) 를 실제로 실행하지 않고 안전하게 이를 수행할 수 있도록 합니다. 모든 모듈이 이 기능을 지원하는 것은 아닙니다.

RHOSTS 옵션을 수정했으므로, 이제 check를 사용하여 Metasploit 이 대상이 취약하다고 판단하는지 확인해 보겠습니다.

check

대상이 올바르게 구성되었고 서비스가 취약하다면 긍정적인 확인 메시지가 표시됩니다.

[*] 127.0.0.1:21 - The target is vulnerable.

The target is vulnerable라는 이 메시지는 익스플로잇이 실행될 때 성공할 것이라는 높은 확신을 줍니다. 이는 Metasploit 이 대상에 연결하여 백도어의 존재를 확인할 수 있었음을 확인시켜 줍니다. 만약 실패했다면 추가적인 조사가 필요했겠지만, 현재로서는 매우 좋은 신호입니다.

Verbose 옵션을 true 로 설정하고 더 자세한 정보를 위해 다시 실행

이 단계에서는 Verbose 옵션에 대해 배웁니다. 때로는 check가 성공하더라도 익스플로잇이 실패할 수 있습니다. 익스플로잇이 백그라운드에서 수행하는 작업에 대한 더 많은 통찰력을 얻으려면 상세 로깅 (verbose logging) 을 활성화할 수 있습니다. 이것은 모든 모듈에 영향을 미치는 전역 설정입니다.

setg 명령어를 사용하여 전역적으로 값을 설정하는 상세 모드를 활성화해 보겠습니다.

setg Verbose true

이제 상세 모드가 활성화되고 올바른 RHOSTS가 설정된 상태에서 익스플로잇을 다시 실행해 보겠습니다.

run

이번에는 훨씬 더 자세한 출력을 볼 수 있습니다. 상세 로깅은 연결 시도 및 전송되는 데이터를 포함하여 익스플로잇의 단계별 프로세스를 보여줍니다. 가장 중요한 것은 익스플로잇이 이제 성공해야 한다는 것입니다.

[*] 127.0.0.1:21 - Banner: 220 (vsFTPd 2.3.4)
[*] 127.0.0.1:21 - USER: Sending "USER back:)"
[*] 127.0.0.1:21 - PASS: Sending "PASS moor"
[+] 127.0.0.1:21 - Found shell.
[*] Command shell session 1 opened (127.0.0.1:43999 -> 127.0.0.1:6200) at 2023-10-27 10:00:00 -0400

성공! Command shell session 1 opened 메시지는 원격 시스템에 대한 명령 쉘을 성공적으로 확보했음을 확인시켜 줍니다. 이제 원격 시스템에서 명령 쉘을 사용할 수 있습니다. whoami와 같은 간단한 명령을 실행하여 테스트할 수 있습니다.

whoami

root라는 출력을 봐야 합니다. 쉘을 종료하고 Metasploit 프롬프트로 돌아가려면 Ctrl + C를 누르거나 exit를 입력하십시오.

요약

실습을 완료하신 것을 축하드립니다! Metasploit Framework 에서 실패하는 익스플로잇을 문제 해결하는 기본적인 과정을 성공적으로 학습하셨습니다.

이 실습에서는 체계적인 문제 해결 접근 방식을 연습했습니다.

  1. 실패 관찰: 먼저 잘못 구성된 익스플로잇을 실행하여 실패하는 것을 확인했습니다.
  2. 옵션 검토: show options를 사용하여 구성을 검사하고 잘못된 RHOSTS 값을 식별했습니다.
  3. 취약점 확인: 구성을 수정한 후 check 명령어를 사용하여 대상이 취약한지 안전하게 확인했습니다.
  4. 자세한 정보 얻기: setg Verbose true를 사용하여 상세한 단계별 출력을 얻는 방법을 배웠으며, 이는 더 복잡한 문제를 진단하는 데 매우 유용합니다.

이러한 핵심 기술은 일반적인 장애물을 극복하고 모의 침투 테스트 활동에서 Metasploit 을 더 효과적으로 사용하는 데 도움이 될 것입니다.