Qué es el Banner Grabbing Funcionamiento y Protección
Qué es el Banner Grabbing Funcionamiento y Protección

¿Qué es el Banner Grabbing?: Funcionamiento y Protección

Dentro de un SI, cada información es importante, siempre es crucial saber lo que ve el usuario promedio, el atacante o los equipos técnicos. Hoy vamos a estudiar qué es el banner grabbing y por qué es importante para una buena gestión de la seguridad del SI.

Recientemente hemos visto diferentes técnicas de escaneo TCP y UDP, es importante tener en cuenta que después de averiguar qué puerto está abierto en una máquina, un atacante querrá saber qué está funcionando en ese puerto (¿qué tipo de servicio? ¿Cuál es la versión de ese servicio?). Es aquí donde entra en juego el método del banner grabbing.

¿Qué es el Banner Grabbing?

El banner grabbing, o “acaparamiento de banners” (a veces traducido como “captura de pancartas“), es simplemente el acto de obtener, después de una primera conexión a un puerto y servicio específico, el nombre del servicio que se está ejecutando en ese puerto y, posiblemente, su versión.

De hecho, por claridad y a veces para simplificar las interacciones, la mayoría de los servicios anuncian en la red a los clientes, después de su solicitud de conexión, información sobre lo que son. Cuando un atacante realiza banner grabbing, está en la fase de “fingerprinting“, es decir, intentará mapear la red y los sistemas y así crear una lista de lo que está presente. El banner grabbing es simplemente el acto de abrir una sesión TCP en un puerto específico y comunicarse básicamente con el servicio que se encuentra allí para analizar sus respuestas y determinar más o menos fácilmente su tipo y versión.

"Hola, soy un servidor Apache que se ejecuta en Debian y mi versión es 3.3.33", 

es exactamente el tipo de información que podemos encontrar cuando hacemos banner grabbing, es simplemente la “firma” del servicio. Estos mensajes de error seguramente te sonarán familiar:

Ejemplo de un Banner Grabbing con Apache
Visualización de un Banner Grabbing con Apache

Aquí vemos un servidor web Apache que, al mostrar un código HTTP 404, simplemente proporcionará su banner cuando está configurado por defecto. Aquí vemos lo mismo para un servidor nginx:

Ejemplo de un Banner Grabbing con nginx
Ejemplo de un Banner Grabbing con nginx

Veremos que el banner grabbing puede ser utilizado tanto por los administradores de sistemas en la gestión diaria de la información del sistema como por atacantes o personas un poco demasiado curiosas. En primer lugar, es importante saber que existen dos “métodos” de banner grabbing.

A. Banner Grabbing Pasivo

Este método de banner grabbing rara vez se utiliza, pero tiene la ventaja de ser el más discreto. No vamos a buscar la información, sino más bien esperar a que pase por nuestros puertos. Por ejemplo, podemos realizar un “sniff” de la red y luego estudiar los paquetes que pasan para encontrar un banner en un puerto e IP específicos.

B. Banner Grabbing Activo

Este es el método más utilizado, vamos a hablar y comunicarnos voluntariamente con un puerto que sabemos que está activo para estudiar sus respuestas y así encontrar una firma (nombre del servicio, versión, etc.). Para una persona malintencionada, este método puede tener la desventaja de que obliga a establecer una conexión con la máquina y, por lo tanto, a exponer información sobre ella (por ejemplo, la IP del puesto que realiza el banner grabbing).

Si vamos un poco más allá en la exploración, aquí está el banner de un servicio FTP que vemos en un análisis de red con Wireshark:

Encontrar banner grabbing con Wireshark
Encontrar banner grabbing con Wireshark

La mayoría de las veces, el banner grabbing se hace por el cliente en la relación cliente – servidor. Esta es información que puede ser útil para, por ejemplo, saber cómo comunicarse. Comúnmente encontramos este intercambio de versión en la determinación del cifrado SSL o TLS a utilizar durante la inicialización de una sesión HTTPS, pero esto se aleja un poco del tema.

Aquí tienes un ejemplo de banner grabbing realizado con Telnet en un servicio Apache en el puerto 80:

🤞 ¡No te pierdas ningún truco de seguridad!

¡No enviamos spam! Lee nuestra Política de Privacidad para más información.

telnet 192.168.10.67 80 
Trying 192.168.10.67...
Connected to 192.168.10.67.
Escape character is '^]'.
HTTP 1.0 GET /
HTTP/1.1 408 Request Time-out
Date: Sat, 01 Nov 2014 15:15:16 GMT
Server: Apache/2.4.59 (Debian)
Vary: Accept-Encoding
Content-Length: 298
Connection: close
Content-Type: text/html; charset=iso-8859-1

Aquí claramente vemos el banner de Apache “Server: Apache/2.4.59 (Debian)“. Lo mismo ocurre con un servicio SSH que se ejecuta en el puerto 2121:

telnet 192.168.10.128 2121 
Trying 192.168.10.128...
Connected to 192.168.10.128.
Escape character is '^]'.
SSH-2.0-OpenSSH_6.0p1 Debian-4+deb7u2

Aquí, ni siquiera necesitamos enviar información de conexión inicial además de la inicialización de la conexión TCP, el servicio SSH en el puerto nos muestra directamente su versión de protocolo SSH compatible (2), servicio (6.0) y SO (Debian 7).

La herramienta Metasploit, muy conocida en el mundo de la seguridad, también contiene varios módulos que permiten hacer banner grabbing. Tomemos como ejemplo la herramienta que permite recuperar la versión SSH de un servidor, así es como se utiliza:

msf › use scanner/ssh/ssh_version
msf auxiliary(ssh_version) > set RHOSTS 192.168.10.128
RHOSTS => 192.168.10.128
msf auxiliary(ssh _version) > run
192.168.10.128:22, SSH server version: SSH-2.0-OpenSSH_6.0p1 Debian-4+deb7u2
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed

El Interés del Banner Grabbing para los Administradores de Sistemas

El banner grabbing puede ser utilizado por los administradores de sistemas dentro de un SI. Por ejemplo, podemos querer saber si nuestros servicios SSH están actualizados, entonces realizaremos un banner grabbing en todos nuestros servicios SSH y así obtendremos rápidamente una lista de las versiones presentes en nuestros servidores. Por lo tanto, es una herramienta que ayudará al administrador de sistemas y de redes dentro de un SI, ya que permite obtener la información sin necesidad de conectarse a cada máquina.

Aquí, un administrador de sistemas utiliza el banner grabbing en sus servidores web para identificar rápidamente cuáles necesitan una actualización.

Banner grabbing utilizado por administrador de sistemas
Banner grabbing utilizado por administrador de sistemas

Banner Grabbing: Cuando los Servicios Revelan Demasiado

El banner grabbing es utilizado principalmente en el mundo de la seguridad por los atacantes. Después de intentar encontrar las IP activas en una red y los puertos abiertos en estas, intentaremos saber cuáles son los servicios y sus versiones. Por lo tanto, el banner grabbing es un elemento a tener en cuenta cuando se trata de la seguridad de un sistema de información. De hecho, debemos controlar toda la información que sale de nuestros servidores y, en el contexto de una prueba de intrusión o un ataque, el hecho de que un servidor anuncie su versión es una información que sobra.

Un atacante que realiza banner grabbing, que muchas veces está automatizado gracias a herramientas como nmap, podrá detectar rápidamente los servicios activos, pero sobre todo las versiones obsoletas y vulnerables de los mismos. Es en este momento cuando el banner grabbing aparece como una amenaza. Es una información que facilita enormemente el trabajo de los atacantes y, por lo tanto, merece ser controlada; la respuesta del servicio a la versión obsoleta para un atacante es tan clara como “¡Soy un servicio vulnerable, no he sido actualizado desde hace tres años!“.

Algunas herramientas como el escáner de servicios web Nikto, incluso en sus comprobaciones, permiten recuperar el banner del servicio web escaneado y advertir al usuario si la versión detectada no es la más reciente. Facilitando aún más el trabajo del atacante mediante la automatización del banner grabbing:

root@esgeeks:~# nikto h 192.168.10.128
Nikto v2.1.7
- -------------------------------------------------------------------- - --

+ Target IP: 192.168.10.128
+ Target Hostname: 192.168.10.128
+ Target Port: 80
+ Start Time: 2014-11-03 09:20:34 (GMT1)
-------------- - - - - - - - - - - = - - - -------------- - - - - - - = = = = = - - --
Server: Apache/2.4.59 (Debian)
The anti-clickjacking X-Frame-Options header is not present.
OSVDB-3268: /: Directory indexing found.
Apache/2.4.59 appears to be outdated (current is at least Apache/2.4.7) • Apache 2.4.5
5 (final release) and 2.4.59 are also current.

Protegiéndose del Banner Grabbing, ¿Por Qué y Cómo?

Hemos visto que el banner grabbing puede facilitar el trabajo de los atacantes al revelar la presencia de servicios con versiones obsoletas en nuestras máquinas, por lo que es interesante considerar formas de protegerse:

  • Actualizar los servicios: El primer consejo es bastante común, actualizar los servicios en una máquina es básico en términos de seguridad de los SI. Esto hará que el banner grabbing sea mucho menos útil. El atacante tendrá ciertamente la versión de nuestro servicio FTP o HTTP en la mano, pero sabrá que es la versión más reciente y, por lo tanto, puede seguir adelante, ya que no encontrará vulnerabilidades… ¡en teoría! Esto es menos cierto para los servicios HTTP, por ejemplo, cuyas vulnerabilidades se deben más a las aplicaciones/sitios web que al propio servicio web.
  • Ocultar los banners: la seguridad por la oscuridad será útil aquí. De hecho, un atacante que detecte un puerto 80, pero no sepa si se trata de un IIS 8, un Apache 2 o un Nginx, se verá ralentizado en su proceso.
  • Colocar un banner falso: Más que ocultar los banners, podemos ralentizar aún más al atacante llevándolo a una pista falsa. Por ejemplo, en VsFTPD, un servicio FTP en Linux, podemos poner en el campo ftpd_banner (que permite personalizar el banner de conexión) que somos un FTP en una máquina Windows. Entonces el atacante buscará vulnerabilidades en el servicio FTP de Windows inútilmente. Este es solo un ejemplo.

Hemos visto en este artículo qué es el banner grabbing y cómo se puede utilizar, tanto para los administradores de sistemas y redes como para los hackers maliciosos o los equipos que realizan pruebas de intrusión (pentesting). Es un detalle que forma parte de la seguridad de los sistemas de información, y cada detalle es importante, ya que a menudo permite obtener información adicional sobre una arquitectura o una red. ¡Cuida tus banners!

Mi Carro Close (×)

Tu carrito está vacío
Ver tienda