Fingerprinting
Enviado por Desker • 3 de Abril de 2019 • Resumen • 5.019 Palabras (21 Páginas) • 109 Visitas
OS Fingerprinting
Jaime P´erez Crespo <jperez@blackspiral.org>
10 de Junio del 2006
Resumen
Uno de los factores m´as importantes a la hora de realizar un ataque inform´atico consiste en conocer la mayor cantidad de detalles posible sobre el sistema objetivo. Para el administrador de sistemas, evitar dar a conocer detalles sobre el servicio puede servir de ayuda para mantenerlo seguro. En el presente art´ıculo veremos las t´ecnicas desarrolladas hasta el d´ıa de hoy para averiguar el sistema operativo que se ejecuta en una m´aquina remota sin necesidad de tener acceso a la misma. Se tratar´an adema´s diversos m´etodos de los que dispone el adminsitrador para evitar este tipo de problemas y modificar la apariencia de su sistema hacia el exterior.
Introduccio´n
La t´ecnica del fingerprinting de sistema operativo consiste en la suposicio´n del sistema operativo y su versi´on en base al ana´lisis de la pila de comunicacio- nes de una m´aquina. Se basa, como su nombre indica, en la obtencio´n de una serie de patrones de compor- tamiento observados en los paquetes que genera para formar una “huella dactilar” que lo identifique un´ıvo- camente. Como es l´ogico, este tipo de informaci´on facilita sobremanera cualquier tipo de ataque sobre una m´aquina remota, e incluso en ocasiones se hace imprescindible.
Antiguamente la informaci´on relativa al sistema se obten´ıa de forma muy ingenua consultando los ban- ners o anuncios de los servicios ejecuta´ndose en una m´aquina. Un banner es una cadena informativa que se muestra al conectarse a un servicio remoto, que puede llegar a dar todo tipo de detalles. Incluso algu-
nos servicios como FTP proporcionan comandos co- mo “SYST ” para obtener este tipo de informaci´on. A modo de ejemplo, comprobemos qu´e tipo de infor- maci´on podemos obtener de un servidor simplemente conectando a su servicio de correo y su servicio web:
[pic 1] telnet dac.escet.urjc.es 25
Trying 212.128.1.79...
Connected to dac.escet.urjc.es. Escape character is ’^]’.
220 dac.escet.urjc.es ESMTP Sendmail 8.13.4/8.13.4/Debian-3 ; Sat, 10 Jun 2006 17:35:52 +0200; (No UCE/UBE)
[pic 2] echo ’GET / HTTP/1.0\n’ | nc dac.escet.urjc.es 80 | egrep ’^Server:’
Server: Apache/2.0.54 (Ubuntu) PHP/5.0.5-2 ubuntu1.2 mod ssl/2.0.54 OpenSSL/0.9.7g[pic 3]
[pic 4] echo ’GET / HTTP/1.0\n’ | nc kybele.escet.urjc.es 80 | egrep ’^Server:’
Server: Microsoft-IIS/5.0
No hace falta demasiada imaginaci´on para saber qu´e sistema operativo ejecutan los dos servidores mostrados en el ejemplo, incluso precisando la ver- sio´n del mismo y de sus servicios. Este tipo de datos son vitales a la hora de buscar vulnerabilidades que aprovechar para atacar una maquina, por lo que si bien, la seguridad por obscuridad no es una buena pol´ıtica, el hecho de que sea posible averiguar esta informaci´on por otras v´ıas no significa que el admi- nistrador facilite de ningu´n modo su obtencio´n.
A d´ıa de hoy esto deja de ser la t´onica general. La mayor´ıa de administradores de sistemas configuran
sus servicios para que no notifiquen este tipo de in- formaci´on en los anuncios, o bien muestren una falsa. Es por ello que se deben utilizar t´ecnicas mas sofis- ticadas como las descritas en este art´ıculo y que se engloban bajo el nombre de “fingerprinting”. Dicha t´ecnica consiste, a grandes rasgos, en obtener paque- tes provenientes de la m´aquina objetivo, analizar sus caracter´ısticas y compararlos con una base de datos de “peculiaridades” para poder identificar el sistema operativo que los genero´. Dado que los esta´ndares de- finidos en las RFC’s de TCP y otros protocolos dejan partes concretas abiertas a la implementaci´on, es po- sible distinguir distintos sistemas operativos en base a la interpretaci´on que hacen de la norma. De hecho, algunos tales como Microsoft Windows, las contradi- cen de forma expl´ıcita.
Atendiendo a la forma en la que se obtienen paque- tes que analizar se puede distinguir entre dos m´etodos de fingerprinting, activo y pasivo.
Fingerprinting pasivo
Cuando se utiliza la variante pasiva de la t´ecnica del fingerprinting los paquetes a analizar se obtienen directamente de la red local, lo cual quiere decir que el sistema atacante no genera ningu´n tipo de comu- nicaci´on hacia el destino con el fin de provocar una respuesta. La implicaci´on inmediata de esta t´ecnica es que no permite analizar sistemas fuera de la red local, y que obliga al atacante a configurar su dispo- sitivo de red en modo prom´ıscuo [1]. Adicionalmente significa que el atacante esta´ a merced del tr´afico que circule por la red. Si desea obtener informaci´on de una m´aquina concreta es posible que tenga que espe- rar bastante tiempo o que incluso nunca llegue a ver un paquete proveniente de dicha m´aquina.
Por lo general se analizan dos cabeceras distintas en busca de signos diferenciadores [2]: la cabecera IP de nivel de red y la cabecera TCP de nivel de trans- porte [8]. La siguiente figura muestra un ejemplo de cabecera IP:
[pic 5]
Uno de los campos mas interesantes de la cabecera IP es el del “Tipo de Servicio” o TOS. Indica si los datos transmitidos tienen algu´n tipo de requisito. La mayor´ıa de sistemas operativos lo mantienen al valor 0x00 por defecto, mientras que otros como OpenBSD lo inicializan a 0x08 (minimizar el retardo) cuando se abren conexiones con protocolos como telnet. Las posibles opciones del campo TOS son las siguientes:
...