Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
exchange-scanner — Identifica i server Microsoft Exchange esposti pubblicamente e determina le loro versioni software. | Kitploit
Strumenti/GitHubGitHub/bishopfox/exchange-scanner
RicognizioneScanner di VulnerabilitàAnalisi delle VulnerabilitàRaccolta InformazioniSicurezza WebSicurezza Email
GitHubbishopfox/exchange-scanner

exchange-scanner

Identifica i server Microsoft Exchange esposti pubblicamente e determina le loro versioni software.

Vedi Repository
12 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Microsoft Exchange Server Scanner

esempio di scansione

Description

Questo strumento esegue la scansione di diversi servizi comuni esposti al pubblico su un host target per rilevare Microsoft Exchange Server e, se possibile, identificarne la versione del software tramite fingerprinting.

A tale scopo, utilizza le seguenti tecniche:

  • Fingerprinting di Outlook Web Access (OWA) tramite header di risposta, contenuti della pagina di login e hash delle favicon
  • Fingerprinting dello strumento di esportazione di Exchange Control Panel (ECP) tramite risposte XML
  • Fingerprinting dell'endpoint Autodiscover tramite header di risposta
  • Fingerprinting dei servizi SMTP, IMAP e POP3 sulle porte comuni tramite banner di servizio

I numeri di build rilevati vengono confrontati con una tabella delle versioni estratta via scraping da Microsoft che copre tutte le release da Exchange Server 5.5 fino a Exchange Server Subscription Edition (SE), inclusi i livelli Service Pack (SP), Cumulative Update (CU), Security Update (SU), Hotfix Update (HU) e Update Rollup (RU). Le corrispondenze vengono riportate con nome del prodotto, data di rilascio e stringhe CPE nel formato del dizionario NVD.

Per iniziare

Prerequisiti

La modalità consigliata per eseguire lo scanner è tramite Docker, che non richiede dipendenze locali oltre a Docker stesso. Per eseguire invece lo script direttamente, è stato progettato per l'uso su Debian Linux a 64 bit, ma dovrebbe funzionare con qualsiasi variante Linux supportata da Python 3, dnsx e fingerprintx (con modifiche minori allo script di installazione).

Installazione

Docker (consigliato)

Creare l'immagine. Essa include Python, i pacchetti Python bloccati alle versioni specifiche e i binari dnsx e fingerprintx con versioni fisse, e recupera la tabella delle versioni di Exchange Server da Microsoft al momento della build:

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

Quindi eseguire lo scanner, passando gli stessi argomenti che si passerebbero allo script (descritti nella sezione Utilizzo di seguito):

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

Ricostruire l'immagine per aggiornare la tabella delle versioni.

Installazione manuale

Eseguire scripts/install-requirements.sh per installare gli strumenti, i pacchetti e le altre dipendenze richieste. I pacchetti Python sono bloccati a versioni specifiche in scripts/requirements.txt.

Sentiti libero di eseguire nuovamente scripts/get-exchange-versions.py separatamente in qualsiasi momento per aggiornare la tabella delle versioni del software presente in exchange-versions.json.

Utilizzo

Eseguire lo script exchange-scanner.py con -h per visualizzare i dettagli di utilizzo:

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)

Richiesti: -t o -l

  • Per eseguire la scansione di un singolo target, usa -t con un singolo hostname o indirizzo IP. Se l'hostname risolve a più IP, lo script eseguirà la scansione di ciascuno di essi separatamente.
  • Per eseguire la scansione di più target contemporaneamente, crea un file con un hostname o indirizzo IP per riga, quindi usa -l con il nome del file.

Registrazione (log): per sopprimere la maggior parte dell'output dei log, usa -q. Per visualizzare maggiori dettagli nei log, usa -d.

Timeout: per modificare il tempo massimo di risposta per ogni richiesta HTTP, specifica un valore di timeout in secondi (il default è 3). Tieni presente che un singolo indirizzo IP può generare oltre 200 richieste in determinate circostanze (anche se la maggior parte delle scansioni non raggiunge questo volume), quindi un timeout più breve è generalmente preferibile.

Output: i risultati della scansione vengono stampati in formato JSON per impostazione predefinita. Per salvare l'output in un file invece di stamparlo su stdout, usa -o con un nome file.

Esempio

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:*:*:*:*:*:*"
        ]
    }
]

Varie

Disclaimer legale

L'utilizzo di questo strumento per attaccare target senza il preventivo consenso reciproco è illegale. È responsabilità dell'utente finale rispettare tutte le leggi locali, statali e federali applicabili. Gli sviluppatori non si assumono alcuna responsabilità e non sono responsabili per qualsiasi uso improprio o danno causato da questo programma.

Licenza

Questo progetto è concesso in licenza secondo la GNU General Public License.

Funzionalità e limitazioni

  • Lo scanner attualmente controlla solo le porte predefinite per i servizi predefiniti.
  • Presume che il target venga scansionato da una prospettiva esterna.
  • Utilizza il fuzzy matching per determinare le versioni quando vengono trovati numeri di build parziali.
  • Segnala inoltre gli aggiornamenti che Microsoft ha ritirato tramite un campo recalled nel suo output.
  • Le stringhe CPE seguono il formato del dizionario CPE NVD. Poiché il dizionario NVD traccia gli aggiornamenti solo fino al livello CU/SP/RU (non SU/HU), questi CPE sono da considerarsi "best effort" e potrebbero non corrispondere esattamente a una voce del dizionario. Il dettaglio completo rilevato (numero di build esatto, livello SU/HU) è conservato negli altri campi dei risultati.
Scarica lo strumento