ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Fingerprinting


Enviado por   •  3 de Abril de 2019  •  Resúmenes  •  5.019 Palabras (21 Páginas)  •  100 Visitas

Página 1 de 21

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.

  1. 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.

  1. 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:

...

Descargar como (para miembros actualizados)  txt (28.1 Kb)   pdf (315.8 Kb)   docx (76.9 Kb)  
Leer 20 páginas más »
Disponible sólo en Clubensayos.com