Analizando la red: huellas digitales pasivas usando GNU Linux e iptables

Las huellas digitales son aquellos fragmentos de datos mediante los cuales podemos hacer una identificación sobre el sistema operativo o aplicaciones sin tener acceso a ellos. Por lo general, podemos tener identificaciones activas y pasivas, siendo las pasivas mucho más discretas ya que no tenemos la necesidad de enviar sondas ni ningún tipo de datos, simplemente escuchamos la red de manera pasiva y recolectamos la suficiente información como para poder identificar el sistema operativo.

Existen muchos programas que hacen esto de manera automática, como por ejemplo; ettercap, sin embargo existe un método mucho más eficaz y divertido, sin mencionar que es extremadamente flexible y lo podemos adaptar como queramos: iptables y GNU/Linux.

Con un modulo de extensión para iptables podemos bloquear y desbloquear (y mucho más) las maquinas de nuestra red utilizando una serie de reglas simples para iptables. OSF (OS Fingerprint) es un modulo que ayuda a construir reglas de iptables basándonos en reglas sobre los paquetes entrantes TCP (solo necesitamos el handshake inicial que contenga el bit SYN para saber cual es el SO remoto).

Sin embargo, OSF te permite ejecutar diferentes acciones de netfilter basados en la información que devuelva. No solo podemos utilizar SYN para la identificación de las maquinas, también podemos utilizar otros parámetros para comparar resultados (WS, MSS, opciones, TTL, DF, el orden de las opciones, etc…) de los paquetes con el bit SYN en ellos.

El modulo de iptables fue implementado hace casi 5 años y vivió en la total obscuridad, sin embargo ahora ha sido actualizado para que haga uso de Xtables y algunos arreglos de compatibilidad. La idea original fue de Michal Zalewsky y su implementacion en userland de p0f. Existen muchas herramientas que implementan esta funcionalidad, como scapy, ettercap, p0f, etc…

Para poderlo utilizar, debemos tener un kernel reciente y las fuentes de iptables (instalar según la distribución). Es preferible editar el Makefile para ubicar algunos programas en algunos casos.

% vim Makefile
% make
# make lib
# make bin
# insmod ./ipt_osf.ko
# ./load ./pf.os /proc/sys/net/ipv4/osf
# iptables -I INPUT -j ACCEPT -p tcp -m osf --genre Linux --log 0 --ttl 1 --connector

Y tendremos toda la información que nos nota OSF en syslog. La lista de fingerprints la pueden descargar del sitio de OpenBSD.


Autor: DragoN

Ingeniero en Sistemas y Telecomunicaciones de la Universidad de Manizales. Information Security Researcher con más de 10 años de experiencias en Ethical Hacking, Pen Testing y Análisis Forense. Docente Universitario en Pre y Post-Grado, Speaker y Organizador de diferentes eventos de Seguridad Informática, Fundador del DragonJAR Security Conference y Fundador de DragonJAR SAS y de La Comunidad DragonJAR, una de las comunidades de seguridad informática mas grandes de habla hispana y referente en el sector.

Compartir este Artículo

Siguenos!

O Puedes Subscribete

ANTES DE

SALIRTE ...

NO TE

ARREPENTIRÁS

!Gracias¡

NO OLVIDES NUESTRAS REDES SOCIALES