Appearance
📡 Banner Grabbing
Su objetivo principal es obtener datos detallados sobre:
- El sistema operativo del equipo objetivo (en algunos casos)
- Los servicios que están ejecutándose en los puertos abiertos
- La versión exacta de cada servicio
Conocer la versión del software es clave, porque muchas vulnerabilidades (CVEs) están asociadas a versiones concretas de un programa.
¿Por qué es importante?
Si descubrimos, por ejemplo, que en el puerto 22 corre OpenSSH 7.4p1, ya podemos buscar vulnerabilidades conocidas para esa versión específica y comprobar si el sistema es vulnerable.
Principales formas de realizar Banner Grabbing
1. NMAP
Algunos ejemplos usando nmap:
python
# Detección de versión de servicios (la más usada)
nmap -sV <IP>
# Versión + detección de sistema operativo
nmap -sV -O <IP>
# Solo versión en puertos específicos
nmap -sV -p 22,80,443,445 10.10.10.10
# Usando el script "banner"
nmap --script banner <IP>Ejemplo de salida usando -sV
python
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))2. Netcat (nc)
Conexión directa para capturar el banner crudo que envía el servicio:
bash
# Sintaxis
nc IP Puerto
# Ejemplos para SSH, TCP, SMTP y Telnet
nc 10.10.10.10 22
SSH-2.0-OpenSSH_9.2p1 Debian-2+deb12u2
nc 10.10.10.10 21
220 (vsFTPd 3.0.5)
nc 10.10.10.10 25
220 mail.example.com ESMTP Postfix (Ubuntu)
nc 10.10.10.10 23
Debian GNU/Linux 12 \n \l3. Manual / Interactivo
Interactuar con el servicio directamente enviando comandos o peticiones para ver de primera mano el banner:
bash
# Telnet - Simplemente conectar y observar
telnet 10.10.10.10 23
# o con nc
nc 10.10.10.10 23
# SSH - Usar cliente ssh para ver banner completo
ssh -v 10.10.10.10