Está en la página 1de 5

Práctica 2: Escaneando redes con nmap.

Para poder tomar medidas y proteger nuestra red, es bueno conocer los pasos que un atacante seguiría para
intentar penetrar en nuestro equipo, básicamente serían los siguientes:

1. Analizar la red en busca de equipos y servicios.


2. Investigar los servicios que tiene activos el equipo que se quiere atacar.
3. Investigar las vulnerabilidades que puedan tener los servicios activos.

Antes de empezar ojea el siguiente vídeo: Zenmap y nmap - Escanear equipos

IMPORTANTE: En esta práctica utilizaremos dos máquinas con vulnerabilidades que te podrás descargar
desde la plataforma. Antes de arrancarlas asegúrate que estén configuradas en modo puente, es
recomendable que renueves las MAC en ambas máquinas. Deberán están arrancadas a la vez, y antes de
empezar las práctica deberás comprobar que se hacen ping entre ellas.

Paso 1: Analizar la red en busca de equipos y servicios.

Existen muchos analizadores de red, nosotros vamos a utilizar nmap y su interfaz gráfica Zenmap que podrás
bajar de la web http://nmap.org. (Ya está instalado en la máquina virtual que te he proporcionado).

Una vez instalado. Realiza un análisis de nuestra red especificando una dirección en formato CIDR en el
cuadro de texto Target, por ejemplo 192.168.128.0/22 (IMPORTATE: Este rango de direcciones corresponde
a las utilizadas en el aula. Evidentemente, si la práctica la realizas en tu casa o en otra red, tendrás que
especificar un rango diferente), selecciona el tipo de escaneo en cuadro combinado Profile, en este caso
Quick scan, y haz clic en Scan. Observa todos los equipos que ha detectado. Haz clic en Topología y pega aquí
la pantalla.

Paso 2: Investigar los servicios que tiene activos el equipo que se quiere atacar.

Un atacante estudiaría todos los servicios activos y las versiones de los programas que dan estos servicios
para buscar vulnerabilidades en ellos. Para ello aplicamos un escaneo más profundo Intense scan, en los
servidores que nos interesen. Aquí te dejo una relación de los puertos más comunes con los programas o
servicios que los utilizan. Consulta este enlace si no tienes muy claro para qué se utilizan los puertos.

Realiza las siguientes actividades:

 Realiza un escaneo intenso a la dirección del Gateway del aula: 192.168.128.254. Haz una lista de los
puertos abiertos con servicios activos, aparecen en color verde. Haz clic aquí para saber más sobre el
estado de los puertos en Nmap.
 Busca entre las máquinas virtuales Linux que te he proporcionado una llamada Fedora Gateway
(usuario/password: Luis/l, root/123456). Se trata de una versión antigua de Fedora con vulnerabilidades.
(MUY IMPORTANTE: Renueva las MAC de las máquinas una vez importadas para que a cada uno os
asigne una IP distinta). Prueba lo siguiente:
 Antes de empezar, ¿Sabes qué es Apache y OpenSSH?. Busca información en Internet al respecto.
(Cuando verdaderamente sepas de qué se trata, contesta aquí brevemente con tus palabras, no
copies y pegues de Internet).
 Por qué puertos ofrece los servicios Apache y OpenSSH. (Contesta aquí brevemente).
 En la máquina Fedora Gateway arranca el firewall (service iptables start) y el servidor web Apache
(service httpd start), y haz un escaneo intenso desde Nmap (OJO, utilizando la ip de la máquina
Fedora Gateway sin /22). Comprueba los resultados (Copia aquí la pantalla). Observa que no ves los
puertos 80 ni 443 porque los filtra el firewall. Prueba a acceder desde el navegador de tu equipo
anfitrión a la ip de Fedora Gateway, NO debes ver una página de presentación de Apache.
 Posteriormente detén el firewall (service iptables stop), haz un escaneo intenso y compara los
resultados. (Copia aquí la pantalla). Prueba a acceder desde el navegador de tu equipo anfitrión a la
ip de Fedora Gateway, ahora SÍ debes ver la página de Apache (Copia aquí la pantalla).
 Posteriormente detén Apache (service httpd stop), haz un escaneo intenso y compara los resultados.
(Copia aquí la pantalla). Prueba a acceder desde el navegador de tu equipo anfitrión a la ip de
Fedora Gateway, NO debes ver una página de presentación de Apache.

 Comprueba y anota la versión de Apache y OpenSSH que están instaladas. Observa también la
pestaña Ports/Hosts.

 Infórmate en Internet de si un escaneo de puertos a una IP pública es legal o ilegal.


 Mediante un ping o nslookup, averigua la IP de cualquier nombre de dominio de Internet que se te
ocurra. Realiza un escaneo intenso de la IP.
 Accede a la DNStools:
 Lee la advertencia que te muestra en la parte inferior

Algunos administradores de sistemas consideran los análisis de puertos como ataques a su


sistema. Por lo tanto, al realizar la prueba, certifica que está autorizado para escanear el sistema
de destino y toma nota de que podemos guardar los datos de conexión correspondientes.

 Realiza un escaneo a la ip que te propone y de alguna otra.


 Por último, ojea las posibilidades que te ofrece esta web.

Paso 3: Investigar las vulnerabilidades que puedan tener los protocolos activos.

Si nos centramos en el servidor web y en la versión del mismo, podemos buscar en Internet sus
vulnerabilidades conocidas.

Por ejemplo, en la web de Symantec http://www.securityfocus.com/vulnerabilities. También podemos


encontrar vulnerabilidades en las páginas oficiales, en nuestro caso de Apache http://apache.org, o tan fácil
como buscar en Google.

 Busca en Google vulnerabilidades de la versión de Apache 2.2.15 (Copia aquí la pantalla).


 Busca en Google vulnerabilidades de OpenSSH 5.4 (Copia aquí la pantalla).

Como sabemos, el objetivo de un servidor web es servir aplicaciones web, es decir, programas construidos
con los lenguajes HTML, javaScript, PHP, entre otros. Estos programas también podrían tener fallos que
podría utilizar un posible atacante.

Si utilizamos aplicaciones propias desarrolladas para la empresa, tendremos que descubrir y corregir
nuestras propias vulnerabilidades. Si administramos aplicaciones más genéricas como PrestaShop,
osCommerce, WordPress, Moodle, Joomla, etc., tendremos que seguir las noticias oficiales de seguridad de
estas aplicaciones para que en caso de que se detecte una vulnerabilidad, solucionarla lo antes posible.
Qué deberías haber aprendido.

Una vez hayamos instalado un servidor, resulta imprescindible pasarle una aplicación de escaneo de puertos
para saber cuáles son los puertos abiertos y los servicios que ofrece. Según lo que observemos debemos
actuar del siguiente modo:

 Si observamos servicios que no queremos ofrecer los detenemos y para más seguridad los
filtramos con un cortafuegos, esto último veremos cómo hacerlo en el tema 7.
 Si observamos puertos cerrados que no queremos exponer, lo más seguro es filtrarlos mediante un
cortafuegos. Ya que a veces la instalación o actualización de una aplicación puede abrir un puerto y
podría pasarnos inadvertido.
 Si observamos servicios que sí queremos ofrecer, comprobaremos la versión instalada y sus posibles
vulnerabilidades, y en caso de que existan le pondremos solución. En la mayoría de los casos bastará
con actualizar la versión o parchearla convenientemente.

Actividades complementarias.

La forma más rápida de buscar vulnerabilidades es utilizar el buscador de Google, es decir, tan simple como
escribir en Google: “Vulnerabilidades OpenSSH 5.4”. Pero quiero que conozcas y pruebes algunas webs más
específicas.

1. Tutorial muy interesante sobre NMAP.


2. Accede a la web https://www.incibe-cert.es/ En la lupa de la derecha escribe OpenSSH 5.4, o cualquier
otra aplicación de la que desees conocer sus vulnerabilidades.

3. Accede a la web http://www.securityfocus.com/vulnerabilities y selecciona algún producto. Por ejemplo:


OpenSSH 5.4
Selecciona algunas de las vulnerabilidades publicadas. Observa que para cada una de ella ofrece los
siguientes apartados: Información, discusión, exploit, solución, referencias.

Exploit (del inglés to exploit, explotar o aprovechar) es una pieza de software, un fragmento de datos, o
una secuencia de comandos con el fin de automatizar el aprovechamiento de un error, fallo o
vulnerabilidad, a fin de causar un comportamiento no deseado o imprevisto en los programas
informáticos, hardware, o componente electrónico.

Las siglas CVE (Common Vulnerabilities and Exposures), hacen referencia a un número de identificación
único de esa vulnerabilidad, de esta forma ofrece una nomenclatura común para el conocimiento
público de este tipo de problemas, facilitando la compartición de datos sobre dichas vulnerabilidades.

Muchos hacker aprovechan estas publicaciones para realizar sus actividades ilícitas antes de que a los
administradores de redes les dé tiempo a parchear sus vulnerabilidades. Algunos tienen de antemano
una relación de objetivos con el software que utilizan y esperan el momento adecuado. Si la publicación
sale a las 12 de la noche tienen, hasta las 8 de la mañana, tiempo suficiente para hackear cualquiera de
sus objetivos. Debido a la diferencia horaria entre Europa y América, una publicación realizada entre las
6-7 de la tarde en EEUU serían la 1-2 de la madrugada en Europa, los hacker tendrían tiempo para
trabajar, de forma que cuando los administradores de sistemas europeos lleguen al trabajo a las 8 de la
mañana, se encontrarían con el sistema hackeado.

4. Accede a la web https://www.exploit-db.com/. En Search, escribe por ejemplo: Windows 10, Apache,
OpenSSH, o cualquier otra aplicación de la que desees conocer sus vulnerabilidades. Selecciona las
casillas Verifed y Has App, para que veas los exploits verificados y que puedes descargar.

5. En la web de nmap http://nmap.org/ consulta el apartado Security Tools, verás una lista de las mejores
herramientas de seguridad. Puedes seleccionar los distintos apartados como Pass crackers, Sniffers, Vuln
Scanners, Web scanners, Wireless, Exploitation, etc. Dedica un rato para ojear estas listas y busca
información sobre algunas de las herramientas propuestas.
Estados de un puerto según Nmap

Aunque muchos analizadores de puertos han agrupado tradicionalmente los puertos en dos estados:
abierto o cerrado, Nmap es mucho más descriptivo, divide a los puertos en seis estados distintos:
abierto, cerrado, filtrado, no filtrado, abierto|filtrado, o cerrado|filtrado. Estos estados no son
propiedades intrínsecas del puerto en sí, pero describen como los ve Nmap.

 Abierto (Open): Indica que hay un servicio disponible, es decir, una aplicación está escuchando por
ese puerto, en otras palabras, acepta conexiones TCP o paquetes UDP en este puerto. El objetivo
primario de un sondeo de puertos es encontrar puertos abiertos, cada puerto abierto es un vector
de ataque. Los atacantes intentan aprovechar puertos abiertos, por lo que los administradores
intentan cerrarlos, o protegerlos con cortafuegos, pero sin que los usuarios legítimos pierdan acceso
al servicio.
 Cerrado (Closed): Un puerto cerrado es accesible, recibe y responde a las sondas de Nmap, pero no
tiene una aplicación escuchando en él. Nos indica que hay un equipo activo detrás de esa IP. Como
los puertos cerrados son alcanzables, o sea, no se encuentran filtrados, puede merecer la pena
analizarlos pasado un tiempo, en caso de que alguno se abra, debido a la instalación de una nueva
aplicación o actualización que podrían vulnerar la seguridad del host, es por ello que los
administradores deben considerar bloquear estos puertos con un cortafuegos. Si se bloquean
aparecerían filtrados, como veremos a continuación.
 Filtrado (Filtered): Nmap no puede determinar si el puerto se encuentra abierto porque un filtrado
de paquetes previene que sus sondas alcancen el puerto. El filtrado puede provenir de un dispositivo
de cortafuegos dedicado, de las reglas de un enrutador, o por una aplicación de cortafuegos
instalada en el propio equipo. Estos puertos suelen frustrar a los atacantes, porque proporcionan
muy poca información. A veces responden con mensajes de error ICMP (destino inalcanzable) y otras
sencillamente descartan las sondas sin responder, esto fuerza a Nmap a reintentar varias veces,
considerando que la sonda pueda haberse descartado por congestión en la red en vez de haberse
filtrado. Esto ralentiza drásticamente los sondeos.
 No filtrado (Unfiltered): Este estado indica que el puerto es accesible, pero que Nmap no puede
determinar si se encuentra abierto o cerrado. Analizar puertos no filtrados con otros tipos de
análisis, como el sondeo SYN o FIN, pueden ayudar a determinar si el puerto se encuentra abierto.
 Abierto|filtrado (Open|filtered): Nmap marca a los puertos en este estado cuando no puede
determinar si el puerto se encuentra abierto o filtrado. Esto ocurre para tipos de análisis donde no
responden los puertos abiertos. La ausencia de respuesta puede también significar que un filtro de
paquetes ha descartado la sonda, o que se elimina cualquier respuesta asociada. De esta forma,
Nmap no puede saber con certeza si el puerto se encuentra abierto o filtrado.
 Cerrado|filtrado (Closed|filtered): Este estado se utiliza cuando Nmap no puede determinar si un
puerto se encuentra cerrado o filtrado.

También podría gustarte