UNIDAD 1 Tarea 1: Herramientas básicas para obtener información de servidores externos

Dentro del MOOC Hacking Ético impartido por Mondragon Unibertsitatea nos serán dictadas varias tareas que deberemos de publicar en nuestro blog personal, dichas tareas las iré colocando en la categoría MOOC Hacking Ético. (Para ver todas las categorías de mi blog haz clic sobre el engrane que está dentro del hexágono café en la parte superior de la página).

Esta es la primer tarea:

1. Ping

Ping es una utilidad diagnóstica en redes de computadoras que comprueba el estado de la comunicación del host local con uno o varios equipos remotos de una red IP por medio del envío de paquetes ICMP de solicitud (ICMP Echo Request) y de respuesta (ICMP Echo Reply). Mediante esta utilidad puede diagnosticarse el estado, velocidad y calidad de una red determinada.

Frecuentemente el nombre ping se asocia con el acrónimo Package INternet Goper, (rastreador de paquetes en Internet), aunque hay quienes no están de acuerdo con tal asociación.

Windows y Linux permiten ejecutar esta utilidad desde sus respectivas terminales. Además en ambos sistemas, podemos añadirle parámetros para cambiar ciertas opciones predeterminadas a la hora de enviar los paquetes.

Windows

Este es el uso típico (sin parámetros) de PING en sistemas operativos Windows:

ping IP-o-Host 

Parámetros importantes para PING en Windows:

  • El parámetro -l (menos ele) permite especificar el tamaño del paquete a enviar, siendo el máximo 65535
  • El parámetro -t (menos t) indica que el envío de paquetes se detendrá hasta que el usuario pulse la combinación de teclas <Ctrl + C>. En Windows, de manera predeterminada se envían 4 pings.

Linux

Este es el uso típico (sin parámetros) de PING en sistemas operativos Linux:

ping IP-o-Host

Parámetros importantes para PING en Linux

  • El parámetro -s (menos ese) permite indicar el tamaño de la porción del paquete ICMP. (Al tamaño especificado se sumarán 28 bytes de cabeceras IP e ICMP).
  • El parámetro -c (menos ce) permite indicar el numero de pings a realizar. En Linux, de manera predeterminada PING se detiene cuando el usuario pulsa <Ctrl + C>.

Ping de la muerte

Hace un par de décadas (1995-1996) la forma más fácil de realizar un ataque DoS (Denial of Service) era aprovechar un error de programación en la utilidad PING que incorporaban algunos sistemas operativos de la época. Simplemente teníamos que hacer ping de manera indefinida, con paquetes mayores a 65535 bytes. Por ejemplo, en Windows 95 era: (reemplazar victima.tld por un host válido)

ping victima.tld -l 67000 -t

Pruebas con PING

Realicé las siguientes pruebas con PING usando Windows (Windows 10 Pro) y Linux (Linux Raspbian raspberrypi 4.1.6+). -Para ver las imágenes completas, clic sobre ellas-.

Ping de manera indefinida al host yandex.ru

*

Ping a yandex.ru

Ping especificando el tamaño de los paquetes (1024 bytes) al host grupocetec.com

*

Ping especificando el tamaño del paquete

Ping al host www.euskalert.net (no responde)

*

Ping a un host que no responde.

En mi última prueba, podemos observar que euskalert.net no responde. Esto se puede deber a 2 cosas, ya sea que un firewall esté bloqueando los paquetes enviados por PING, o bien, que realmente tenga dificultades técnicas. En estos casos podemos apoyarnos con el comando tracert (Windows) o traceroute (Linux) para saber en qué parte del trayecto se corta la comunicación, lo cual significaría que en ese punto está el firewall o la falla. (En la imagen de abajo vemos que 150.241.253.230 fue el último host al que llegaban los paquetes).

  • Para Windows: tracert www. euskalert.net
  • Para Linux: traceroute www. euskalert.net
*

Tracert

2. Whois

WHOIS (del inglés who is? – ¿quién es?) es un protocolo TCP (puerto 43) basado en petición/respuesta que se utiliza para efectuar consultas en una base de datos que permite determinar el propietario de un nombre de dominio o una dirección IP en Internet. Existen gran cantidad de clientes que permiten realizar las consultas, desde clientes en la línea de comandos, hasta páginas web como http://who.is

Para las pruebas encomendadas (obtener los datos de contacto de los dominios usados arriba) voy a utilizar el comando whois de Linux (Raspbian raspberrypi 4.1.6+)

Instalación

En la mayoría de las distribuciones Linux whois viene instalado, no así en Raspbian. Para instalarlo escribimos en la terminal

sudo apt-get install whois

Y después de un par de minutos ya podemos usarlo.

Pruebas

 whois a yandex.ru (no obtuve datos de contacto)

domain: YANDEX.RU
nserver: ns1.yandex.ru. 213.180.193.1, 2a02:6b8::1
nserver: ns2.yandex.ru. 93.158.134.1, 2a02:6b8:0:1::1
state: REGISTERED, DELEGATED, VERIFIED
org: YANDEX, LLC.
registrar: RU-CENTER-RU
admin-contact: https://www.nic.ru/whois
created: 1997.09.23
paid-till: 2015.10.01
free-date: 2015.11.01
source: TCI

whois a grupocetec.com (no obtuve datos de contacto)

Domain Name: GRUPOCETEC.COM
Registrar: GODADDY.COM, LLC
Sponsoring Registrar IANA ID: 146
Whois Server: whois.godaddy.com
Referral URL: http://registrar.godaddy.com
Name Server: NS3.HIGHSPEEDWEB.NET
Name Server: NS4.HIGHSPEEDWEB.NET
Status: clientDeleteProhibited http://www.icann.org/epp#clientDeleteProhibited
Status: clientRenewProhibited http://www.icann.org/epp#clientRenewProhibited
Status: clientTransferProhibited http://www.icann.org/epp#clientTransferProhibited
Status: clientUpdateProhibited http://www.icann.org/epp#clientUpdateProhibited
Updated Date: 22-sep-2015
Creation Date: 20-sep-2001
Expiration Date: 20-sep-2016

whois a www. euskalert.net (no obtuve nada)

Como no quería quedarme con las ganas de obtener los datos de contacto, probé también con otro dominio del cual ya sabía que sí aparecían.

*

Obteniendo los nombres de contacto Técnico y administrativo de un dominio

3. NMAP

Nmap es un programa de código abierto que sirve para efectuar rastreo de puertos escrito originalmente por Gordon Lyon (más conocido por su alias Fyodor Vaskovich) y cuyo desarrollo se encuentra hoy a cargo de una comunidad. Fue creado originalmente para Linux aunque actualmente es multiplataforma.Se usa para evaluar la seguridad de sistemas informáticos, así como para descubrir servicios o servidores en una red informática, para ello Nmap envía unos paquetes definidos a otros equipos y analiza sus respuestas.

Para instalar NMap en Linux (Raspbian) escribimos en la terminal:

sudo apt-get install nmap

Para saber que versión de NMap estamos usando, escribimos:

nmap -V

El uso mas simple de NMap es ponerle a escanear los puertos de un equipo remoto, para ello escribimos

nmap IP-o-Host

Tras terminar el escaneo, NMap responde con una pequeña tabla de 3 columnas: PORT, STATE y SERVICE que indican respectivamente el número de puerto y si es TCP/UDP, el estado del puerto y el servicio que está usando dicho puerto.

Pero el uso de NMap se torna más interesante cuando añadimos parámetros en la línea de comandos.

Considera que los parámetros son sensibles al uso de mayúsculas o minúsculas, por lo que no es lo mismo nmap -V que nmap -v

Para detallar algunos de los parámetros de NMap y sus resultados voy a utilizar hackthissite.org

nmap -sV hackthissite.org

Ademas de escanear los puertos, va a intentar determinar qué servicio y qué versión está utilizando cada uno de ellos. Para el caso de hackthissite.org podemos darnos cuenta que su servidor web es nginx, escuchando en los puertos 80 (http) y 443 (https); ademas de que esta ejecutando OpenSSH 5.8p1

*

Escaneando puertos y determinando qué servicio ejecuta cada uno.

nmap -O hackthissite.org

Va a intentar determinar qué sistema operativo está ejecutándose en el host indicado.

No sé si pase en todas las distribuciones de Linux, pero en Raspbian me pidió ejecutar nmap como root cuando se usa el parámetro -O

*

OS Scan en NMap

Vemos que para obtener mejores resultados en el escaneo del sistema operativo, NMap necesitará encontrar por lo menos un puerto abierto y uno cerrado. (Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port).

¿Qué sigue?

Después de haber obtenido los servicios que se están ejecutando, podríamos usar un scanner de vulnerabilidades, o buscarlas en alguna base de datos como la página de la Base de Datos de Vulnerabilidades Nacional de Estados Unidos (NVD).

En la imagen vemos la página de resultados de la NVD despues de buscar vulnerabilidades para nginx

*

Resultados de vulnerabilidades para nginx

Anuncios

2 comentarios en “UNIDAD 1 Tarea 1: Herramientas básicas para obtener información de servidores externos

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s