Herramienta whatportis para resolución de puertos

Anuncios

Una de las tareas obligadas dentro de la seguridad sea cual sea la circunstancia en la que nos encontremos, auditoría, administración, pentesting, consultoría, etc. es el análisis de tráfico. Si ya resultaba evidente en los entornos actuales, esto cobra más importancia con la incorporación de cada vez más y más dispositivos en nuestras infraestructuras de comunicaciones. La llegada del llamado “Internet de las Cosas” y más concretamente en los entornos industriales con la proliferación de protocolos basados en Ethernet, está propiciando que nuestros switches, routers, puntos de acceso, firewalls, soporten más clientes y por ende más información a mover.

Es por esto que supervisar y analizar volúmenes, patrones y tipos de tráfico, resulta indispensable cara al cumplimiento de las políticas de seguridad de nuestra organización y reducir los riesgos de sufrir un incidente. Hay que reconocer que la tarea puede ser bastante tediosa, con lo que dependiendo de los entornos, deberemos contar con herramientas, que nos faciliten la tarea. Por citar algunas,

Fortinet FortiAnalyzer

HP IMC Network Traffic Analyzer

Ntop

Cacti

Pero hoy no voy a hablar de ninguna de ellas, sino de otra más sencilla pero de  bastante utilidad.

Dentro del tráfico capturado los tres parámetros más representativos son las direcciones IP y los puertos. Sobre las primeras resulta bastante sencillo identificarlas sobre todo en lo que se refiere a públicas y privadas. Me refiero a IPv4. Sin embargo en materia de puertos, si bien es fácil acordarse de los más empleados, existen otros muchos que seguramente no tengamos tan presentes.

Para ayudarnos en esta tarea contamos con una herramienta con la que podremos consultar de una manera rápida la información de un puerto y servicio asociado. Hablamos de whatportis. Se trata de un comando con el que podremos buscar tanto el número como el nombre por defecto.

Para su instalación:

root@kali02:~# pip install whatportis

Downloading/unpacking whatportis

Downloading whatportis-0.4.tar.gz (258kB): 258kB downloaded

Running setup.py (path:/tmp/pip-build-At_8q_/whatportis/setup.py) egg_info for package whatportis

Downloading/unpacking click==6.2 (from whatportis)

Downloading click-6.2-py2.py3-none-any.whl (70kB): 70kB downloaded

Requirement already satisfied (use –upgrade to upgrade): prettytable==0.7.2 in /usr/lib/python2.7/dist-packages (from whatportis)

Installing collected packages: whatportis, click

Running setup.py install for whatportis

Installing whatportis script to /usr/local/bin

Successfully installed whatportis click

Cleaning up…

root@kali02:~#

Por ejemplo, si deseásemos averiguar qué hay detrás del puerto 1194:

O bien, si deseásemos obtener el servicio asociado a una aplicación como por ejemplo mysql:

También podríamos buscar un patrón sin conocer el nombre exacto del servicio emplearíamos la opción –like. A continuación pondremos un ejemplo, con el término  opc  para averiguar la información sobre el protocolo utilizado en entornos SCADA:

La herramienta emplea la lista de puertos publicada por IANA la cual consulta regularmente.

Así pues dejamos la entra de hoy con una herramienta, que sin duda nos podrá ayudar en esa rápida y primera instancia en la identificación de puertos y servicios.

Un saludo y nos vemos en la próxima.

Hping3 y paquetes a medida

Anuncios

A la hora de realizar una auditoría o “pentesting” una de las labores a realizar es la de descubrimiento de hosts, servicios, puertos abiertos, detección de sistemas operativos, etc. La aplicación “reina” en este asunto es Nmap ya que aglutina todo lo anterior y otras más funcionalidades más como Nmap Scripting Engine. Según nuestras preferencias podremos emplearla bien por línea de comandos o por medio de su GUI Zenmap. Aquí os dejo algunas entradas con información de esta herramienta.

Guía Avanzada de Nmap

NSE
Dentro de esa auditoría o pentesting, podríamos encontrarnos aplicaciones o sistemas como cortafuegos, e IDS/IPS tanto a nivel de host como de red. Si empleásemos los valores por defecto podría ser detectada nuestra presencia y además los resultados arrojados podrían no corresponderse con la realidad. Para evitarlo, Nmap trae consigo una serie de opciones que nos permitirán personalizar distintos parámetros en cuanto a cantidad de sondas enviadas, fragmentación de paquetes, retardo en la realización de escaneos, etc.

En cualquiera de los casos la forma que tiene Nmap de actuar es enviar una serie de paquetes (denominadas sondas) con unas características determinadas y en función de la respuesta del, o los, equipos objetivo poder detectar o deducir lo que existe en el otro extremo. Al fin y al cabo, como digo, no dejan de ser paquetes TCP/IP.

Por tanto si de lo que se trata es de enviar paquetes y recibir respuestas, también podríamos hacer uso de otras herramientas que podrían ayudarnos en esta tarea. Una de ellas es Hping3.

Hping3 es un generador de paquetes por línea de comandos y analizador de red. La capacidad de esta herramienta es poder crear paquetes personalizados con el fin de evaluar medidas de seguridad, escaneo de puertos, verificar reglas en cortafuegos, pruebas de rendimiento, detección de IDS/IPS, entre otros.

Por defecto hping3 envía paquetes TCP. Si se quiere cambiar de protocolo podríamos hacerlo bajo las siguientes opciones:

No obstante ejecutando:

root@kali:~# hping3 –h 

Podríamos ver  todas las posibles opciones que nos ofrece hping3.

En el caso de TCP, en función de nuestras necesidades podríamos definir las “flags” dentro de la cabecera, esto es:

Pero mejor lo vemos con algunos ejemplos. Para la ocasión he creado un laboratorio virtual siguiendo el siguiente esquema:

El “PC A” lo utilizamos para abrir distintos puertos simulando ser un equipo con los servicios SSH y HTTP.

Desde el “PC B” enviaremos los paquetes con hping3 y veremos las respuestas.

También podríamos emplear la herramienta Netcat para abrir un socket en un puerto que deseemos.

root@kali:~# nc -l -p 80 

Desde el “PC B” enviaremos un solo paquete TCP con el flag SYN habilitado con lo que al estar el puerto abierto nos responderá con un SYN+ACK.

En cambio si lo hacemos contra un servicio que no esté corriendo en el equipo destino, veremos que nos responderá con un “RST+ACK”. Con ello habremos descartado un servicio activo en el puerto 22, pero sabremos que el host está activo.

Además podríamos definir más parámetros de los paquetes a enviar con el fin de personalizarlos. Por ejemplo:

Con ello habremos fijado el campo ttl (time to Live), a 12; puerto de origen, 11111; tamaño de ventana, 32; puerto de destino 80; y con el flag SYN activado. Acontinuación se muestran capturas con Wireshark.

La verdad que la creación de paquetes a medida es una técnica con la que podremos llevar a cabo muchas tareas especialmente, como digo, cara a una auditoría o pentesting.

Como todo para poder conocer todas sus posibilidades deberemos dedicarle “unos minutos” de nuestro tiempo.

Un saludo y como siempre os invito a dejar vuestro comentario.

Un saludo!

Pfsense

Anuncios

Hola de nuevo. En esta ocasión os dejo una serie de entradas del blog Security Art Work de S2 Grupo.

Las mismas hablan de las distintas funcionalidades del Firewall Pfsense. No os voy a dar más detalles ya que está todo muy bien explicado. Excelentes artículos de tantos que podréis encontrar en este blog, y que invito a seguir.

Parte I

Parte II

Parte III

Parte IV

Parte V

Parte VI

Espero que os gusten!!