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
exchange-scanner — Identifier les serveurs Microsoft Exchange exposés publiquement et déterminer leurs versions logicielles | Kitploit
Outils/GitHubGitHub/bishopfox/exchange-scanner
ReconnaissanceScanners de VulnérabilitésAnalyse des VulnérabilitésCollecte d'InformationsSécurité WebSécurité des Emails
GitHubbishopfox/exchange-scanner

exchange-scanner

Identifier les serveurs Microsoft Exchange exposés publiquement et déterminer leurs versions logicielles

Voir le dépôt
1il y a 2 moisPas encore vérifié

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

Microsoft Exchange Server Scanner

example scan

Description

Cet outil analyse plusieurs services courants exposés au public sur un hôte cible afin de détecter Microsoft Exchange Server et d'identifier sa version logicielle si possible.

Pour ce faire, il utilise les techniques suivantes :

  • Prise d'empreinte d'Outlook Web Access (OWA) par les en-têtes de réponse, le contenu de la page de connexion et les hachages de favicon
  • Prise d'empreinte de l'outil d'exportation du panneau de configuration Exchange (ECP) par les réponses XML
  • Prise d'empreinte du point de terminaison Autodiscover par les en-têtes de réponse
  • Prise d'empreinte des services SMTP, IMAP et POP3 sur les ports courants par bannières de service

Les numéros de build détectés sont mis en correspondance avec une table des versions récupérée par scraping auprès de Microsoft qui couvre toutes les versions, d'Exchange Server 5.5 à Exchange Server Subscription Edition (SE), y compris les niveaux Service Pack (SP), Cumulative Update (CU), Security Update (SU), Hotfix Update (HU) et Update Rollup (RU). Les correspondances sont signalées avec un nom de produit, une date de sortie et des chaînes CPE au format du dictionnaire de la NVD.

Pour commencer

Prérequis

La méthode recommandée pour exécuter le scanner est d'utiliser Docker, qui ne nécessite aucune dépendance locale en dehors de Docker lui-même. Si vous préférez exécuter le script directement, il a été conçu pour une utilisation sur Debian Linux 64 bits, mais devrait fonctionner avec toute variante Linux prise en charge par Python 3, dnsx et fingerprintx (avec des modifications mineures du script d'installation).

Installation

Docker (recommandé)

Construisez l'image. Elle regroupe Python, les paquets Python épinglés et les binaires dnsx et fingerprintx à versions verrouillées, et récupère par scraping la table des versions d'Exchange Server auprès de Microsoft au moment de la construction :

root@kitploit:~
docker build -t exchange-scanner .

Exécutez ensuite le scanner, en passant les mêmes arguments que ceux que vous passeriez au script (décrits dans la section Utilisation ci-dessous) :

root@kitploit:~
# Scan a single target
docker run --rm exchange-scanner -q -t 192.168.5.3

# Scan a list of targets (mount the file into the container)
docker run --rm -v "$PWD/targets.txt:/app/targets.txt" exchange-scanner -l targets.txt

Reconstruisez l'image pour actualiser la table des versions.

Installation manuelle

Exécutez scripts/install-requirements.sh pour installer les outils, paquets et autres dépendances requis. Les paquets Python sont épinglés à des versions spécifiques dans scripts/requirements.txt.

N'hésitez pas à réexécuter scripts/get-exchange-versions.py séparément à tout moment pour mettre à jour la table des versions logicielles trouvée dans exchange-versions.json.

Utilisation

Exécutez le script exchange-scanner.py avec -h pour afficher les détails d'utilisation :

root@kitploit:~
❯ ./exchange-scanner.py -h
usage: exchange-scanner.py [-h] [-q] [-d] [-x TIMEOUT] [-o OUTFILE] (-t TARGET | -l LIST)

optional arguments:
  -h, --help            show this help message and exit
  -q, --quiet           Suppress log output (except errors)
  -d, --debug           Print debugging messages
  -x TIMEOUT, --timeout TIMEOUT
                        Set timeout for HTTP requests (defaults to 3 seconds)
  -o OUTFILE, --outfile OUTFILE
                        Save output to a file instead of writing to stdout
  -t TARGET, --target TARGET
                        A single hostname or IP address to scan
  -l LIST, --list LIST  File containing a list of hostnames and/or IP addresses to scan (one per line)

Requis : -t ou -l

  • Pour analyser une cible unique, utilisez -t avec un seul nom d'hôte ou une seule adresse IP. Si le nom d'hôte se résout en plusieurs adresses IP, le script analysera chacune d'elles séparément.
  • Pour analyser plusieurs cibles à la fois, créez un fichier contenant un nom d'hôte ou une adresse IP par ligne, puis utilisez -l avec le nom du fichier.

Journalisation : pour supprimer la plupart des messages de journal, utilisez -q. Pour afficher plus de détails de journalisation, utilisez -d.

Délai d'attente (timeout) : pour modifier le temps de réponse maximal par requête HTTP, spécifiez une valeur de délai en secondes (3 par défaut). Gardez à l'esprit qu'une seule adresse IP peut générer plus de 200 requêtes dans certaines circonstances (bien que la plupart des analyses n'atteignent pas ce volume), un délai plus court est donc généralement préférable.

Sortie : les résultats d'analyse sont imprimés au format JSON par défaut. Pour enregistrer la sortie dans un fichier au lieu de l'afficher sur stdout, utilisez -o avec un nom de fichier.

Exemple

root@kitploit:~
$ ./exchange-scanner.py -q -t 192.168.5.3
[
    {
        "hostname": "192.168.5.3",
        "ip_address": "192.168.5.3",
        "build_number": "15.2.1118",
        "exchange_services": [
            "https://192.168.5.3:443",
            "imaps://192.168.5.3:993"
        ],
        "product_name": "Exchange Server 2019 CU12 (2022H1)",
        "major_version": "2019",
        "update": "Cumulative Update 12",
        "security_update": null,
        "release_date": "2022-04-20",
        "recalled": false,
        "cpes": [
            "cpe:2.3:a:microsoft:exchange_server:2019:cumulative_update_12:*:*:*:*:*:*",
            "cpe:2.3:a:microsoft:outlook_web_access:2019:cumulative_update_12:*:*:*:*:*:*"
        ]
    }
]

Divers

Avertissement juridique

L'utilisation de cet outil pour attaquer des cibles sans consentement mutuel préalable est illégale. Il incombe à l'utilisateur final de respecter toutes les lois locales, nationales et fédérales applicables. Les développeurs déclinent toute responsabilité et ne sont pas responsables de tout usage abusif ou dommage causé par ce programme.

Licence

Ce projet est sous licence GNU General Public License.

Capacités et limites

  • Le scanner ne vérifie actuellement que les ports par défaut des services par défaut.
  • Il suppose que la cible est analysée depuis une perspective externe.
  • Il utilise une correspondance floue (fuzzy matching) pour déterminer les versions lorsque des numéros de build partiels sont trouvés.
  • Il signale également les mises à jour que Microsoft a rappelées via un champ recalled dans sa sortie.
  • Les chaînes CPE suivent le format du dictionnaire CPE de la NVD. Étant donné que le dictionnaire de la NVD ne suit les mises à jour qu'au niveau CU/SP/RU (pas SU/HU), ces CPE sont fournis au mieux et peuvent ne pas correspondre exactement à une entrée du dictionnaire. Le détail complet détecté (numéro de build exact, niveau SU/HU) est conservé dans les autres champs de résultat.
Télécharger l’outil