Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
exchange-scanner — Identifica servidores Microsoft Exchange expuestos públicamente y determina sus versiones de software | Kitploit
Herramientas/GitHubGitHub/bishopfox/exchange-scanner
ReconocimientoEscáneres de VulnerabilidadesAnálisis de VulnerabilidadesRecopilación de InformaciónSeguridad WebSeguridad de Correo Electrónico
GitHubbishopfox/exchange-scanner

exchange-scanner

Identifica servidores Microsoft Exchange expuestos públicamente y determina sus versiones de software

Ver Repositorio
1hace 2 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Escáner de Microsoft Exchange Server

ejemplo de escaneo

Descripción

Esta herramienta escanea varios servicios públicos comunes en un host objetivo para detectar Microsoft Exchange Server e identificar su versión de software si es posible.

Para ello, utiliza las siguientes técnicas:

  • Fingerprinting de Outlook Web Access (OWA) mediante cabeceras de respuesta, contenido de la página de inicio de sesión y hashes de favicon
  • Fingerprinting de la herramienta de exportación de Exchange Control Panel (ECP) mediante respuestas XML
  • Fingerprinting del endpoint de Autodiscover mediante cabeceras de respuesta
  • Fingerprinting de servicios SMTP, IMAP y POP3 en puertos comunes mediante banners de servicio

Los números de compilación (build) detectados se comparan con una tabla de versiones extraída de Microsoft que cubre todas las versiones desde Exchange Server 5.5 hasta Exchange Server Subscription Edition (SE), incluyendo niveles de Service Pack (SP), Cumulative Update (CU), Security Update (SU), Hotfix Update (HU) y Update Rollup (RU). Las coincidencias se notifican con nombre de producto, fecha de lanzamiento y cadenas CPE en el formato del diccionario NVD.

Primeros pasos

Requisitos previos

La forma recomendada de ejecutar el escáner es con Docker, que no requiere dependencias locales más allá del propio Docker. Para ejecutar el script directamente, se diseñó para usarse en Debian Linux de 64 bits, pero debería funcionar con cualquier variante de Linux compatible con Python 3, dnsx y fingerprintx (con modificaciones menores al script de instalación).

Instalación

Docker (recomendado)

Construya la imagen. Esta incluye Python, los paquetes de Python fijados (pinned) y binarios dnsx y fingerprintx con versiones bloqueadas, y extrae la tabla de versiones de Exchange Server de Microsoft en tiempo de compilación:

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

Luego ejecute el escáner, pasando los mismos argumentos que pasaría al script (descritos en la sección Uso más abajo):

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

Reconstruya la imagen para actualizar la tabla de versiones.

Instalación manual

Ejecute scripts/install-requirements.sh para instalar las herramientas, paquetes y otras dependencias necesarias. Los paquetes de Python están fijados a versiones específicas en scripts/requirements.txt.

No dude en volver a ejecutar scripts/get-exchange-versions.py por separado en cualquier momento para actualizar la tabla de versiones de software que se encuentra en exchange-versions.json.

Uso

Ejecute el script exchange-scanner.py con -h para ver los detalles de uso:

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)

Requerido: -t o -l

  • Para escanear un solo objetivo, use -t con un solo nombre de host o dirección IP. Si el nombre de host resuelve a varias IPs, el script escaneará cada una de ellas por separado.
  • Para escanear varios objetivos a la vez, cree un archivo con un nombre de host o dirección IP por línea y luego use -l con el nombre del archivo.

Registro (logging): Para suprimir la mayor parte de la salida de registro, use -q. Para ver más detalle de registro, use -d.

Tiempo de espera (timeout): Para cambiar el tiempo máximo de respuesta por solicitud HTTP, especifique un valor de tiempo de espera en segundos (el valor predeterminado es 3). Tenga en cuenta que una sola dirección IP puede generar más de 200 solicitudes en ciertas circunstancias (aunque la mayoría de los escaneos no alcanzan este volumen), por lo que un tiempo de espera más corto generalmente es preferible.

Salida: Los resultados del escaneo se imprimen en formato JSON de forma predeterminada. Para guardar la salida en un archivo en lugar de imprimirla en stdout, use -o con un nombre de archivo.

Ejemplo

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

Miscelánea

Aviso legal

El uso de esta herramienta para atacar objetivos sin consentimiento mutuo previo es ilegal. Es responsabilidad del usuario final cumplir con todas las leyes locales, estatales y federales aplicables. Los desarrolladores no asumen ninguna responsabilidad y no son responsables de ningún uso indebido o daño causado por este programa.

Licencia

Este proyecto está licenciado bajo la GNU General Public License.

Capacidades y limitaciones

  • El escáner actualmente solo comprueba puertos predeterminados para servicios predeterminados.
  • Asume que el objetivo se escanea desde una perspectiva externa.
  • Utiliza coincidencias aproximadas (fuzzy matching) para determinar versiones cuando se encuentran números de compilación parciales.
  • También marca las actualizaciones que Microsoft ha retirado mediante un campo recalled en su salida.
  • Las cadenas CPE siguen el formato del diccionario CPE de NVD. Debido a que el diccionario NVD rastrea las actualizaciones solo hasta el nivel CU/SP/RU (no SU/HU), esos CPE son de carácter orientativo (best-effort) y puede que no coincidan exactamente con una entrada del diccionario. El detalle completo detectado (número de compilación exacto, nivel SU/HU) se conserva en los demás campos de resultado.
Descargar herramienta