13 oct 2015

Análisis básico de vulnerabilidades con Nmap


Introducción (algunos conceptos antes de comenzar)

Todo lo creado por el hombre no es exento de errores. Igualmente tiene que ver esto con los equipos y aplicaciones informáticas que estos emplean.

Una vulnerabilidad, en términos de cyber-seguridad, hace referencia a un agujero o, simplemente, fallo de seguridad presente en el software que deja la puerta abierta para los ataques que pueden ser realizados por algunos usuarios malintencionados con ciertos conocimientos informáticos.

El término puede referirse también a cualquier tipo de debilidad en un sistema informático, a cualquier conjunto de procedimientos que pueda poner en riesgo la seguridad de la información.

En este artículo vamos a analizar una máquina Linux (Metasploitable Linux 2.0.0.0) que brinda algunos servicios vulnerables. A continuación indicaré cómo se podrían aprovechar algunas de ellas en dichos servicios.

Para el escaneo de los servicios activos en el servidor, emplearemos Nmap (con su interfaz gráfica Zenmap) desde un Windows 7. Lo voy a utilizar en mi máquina real.

¿Qué es Nmap?
Es una herramienta de código abierto utilizada para la exploración de red y auditoría de seguridad. Algunas de las cosas que permite hacer:
  • Descubrir servidores: identifica las máquinas de una red, por ejemplo, listando las que respondan a ping.
  • Escanear los puertos e identifican los que estén abiertos en una máquina elegida.
  • Determinar los servicios en ejecución.
  • Además averiguar qué SO y versión utiliza dicha máquina (técnica de fingerprinting).
  • Obtener algunas características del hardware de la máquina objeto.
Preparaciones

Antes que nada, nos aseguramos de que hay conectividad entre las 2 máquinas. Para ello tienen que estar en la misma red. Voy a asignar la dirección 192.168.1.50/24 a la máquina vulnerable para que se situe dentro de mi red de casa que es 192.168.1.0/24, además pondré la interfaz de red de la máquina virtual en modo Bridge (puente).

Para asignar una dirección IP estática a la máquina Linux, como de costumbre, editaremos el fichero /etc/network/interfaces:


Probamos conectividad de Windows a la máquina virtual y viceversa:



1. Escaneamos los puertos, servicios brindados por el servidor y sus versiones

Abrimos el programa e introducimos la @IP objetivo en el campo Target. Voy a elegir Intense scan, para que el programa además nos indique la versión de cada servicio encontrado. Pulsamos Scan.


Tras unos minutos de espera, abajo del todo aparecerá Nmap done, además de muchas otras informaciones:


Vamos a la pestaña Ports/Hosts, donde podemos ver todos los puertos encontrados con sus correspondientes servicios y sus versiones:


2. Buscamos las vulnerabilidades presentes

A continuación describo brevemente algunas de ellas:

(Puerto - servicio - versión)
21 - FTP - vsftpd 2.3.4

FTP: file transfer protocol, protocolo para transferencia de archivos.

Vulnereabilidad: el smile de la muerte.
Descripción: la versión 2.3.4 de vsftpd presenta una puerta trasera, en la que escribiendo como nombre de usuario del servidor FTP el smile ( :) ) se consigue control total y ejecución de comandos en el servidor.
Cuándo se hizo pública: julio 2011.

22 - SSH - OpenSSH 4.7p1

SSH: Secure SHell, intérprete de órdenes seguro (emplea cifrado). Sirve para acceder y controlar las máquinas remotas de la red.

Descripción: permite al atacante recuperar hasta 32 bits de texto plano desde un bloque arbitrario del texto cifrado.
Cuándo se hizo pública: noviembre 2008.

80 - HTTP - Apache httpd 2.2.8

HTTP: Hyper Text Transfer Protocol, protocolo de transferencia de hipertexto, empleado para las comunicaciones entre el cliente y los servidores web.

Descripción: permite realizar un ataque de denegación de servicio (DoS), ocupando toda la memoria disponible del servidor. Su peligro consiste en el empleo de un exploit preparado para realizar el ataque desde una máquina, generando el menor tráfico posible. Si no existe ningún límite de memoria establecido, el servidor se cuelga, sin capacidad de usar la consola.
Cuándo se hizo pública: agosto 2011.

139/445 - NETBIOS SSN - Samba smbd 3.X

Samba: implementación libre del protocolo de archivos compratidos de Microsoft Windows, (antiguamente llamado SMB y recientemente renombrado a CIFS) para sistemas de tipo Unix.

Descripción: se puede explotar mediante un cliente malicioso Samba, enviando paquetes modificados al servidor. No se requiere autenticación. Como resultado, permite ejecutar código arbitrario en el servidor como root.

Cuándo se hizo pública: febrero 2015.

3306 - MySQL - MySQL 5.0.51a-3ubuntu5

Descripción: permite autenticarse como usuario root sin conocer la contraseña, mediante solo una línea de código.
Cuándo se hizo pública: junio 2012.

3. Medidas de prevención


La medida más eficaz consiste en llevar todas las actualizaciones del sistema al día. Y aunque no proteja tu servidor al 100%, reduce de una forma importante sus vulnerabilidades.

Si vamos a instalar un servidor en entorno real, antes de hacerlo siempre nos informaremos de las vulnerabilidades conocidas presentes.

Más adelante veremos cómo explotar estas u otras vulnerabilidades mediante el uso de exploits.

Un saludo! ;)

No hay comentarios:

Publicar un comentario