Footprinting

William Khepri
Feb 8, 2017 · 5 min read

El Footprinting es una de las técnicas utilizada en seguridad informática para recavar información acerca de un sistema. Se conoce ésta técnica también como fase 1 o fase de reconocimiento, ya que es de los primeros pasos que debemos realizar para descubrir posibles vectores de ataque en un sistema. Se utilizan para ello diversas herramientas y técnicas para recolectar información y descubrir posibles vulnerabilidades explotables.

No es una técnica de ataque como tal, si no mas bien el paso previo a descubrir un posible punto de explotación.

Crash Override antes de ser ZeroCool.

Descubrimiento DNS

Siguiendo el hilo del post anterior empezaremos recogiendo información acerca de servidores DNS (Domain Name System), sistema de nomenclatura jerárquica para computadoras, servicios o cualquier recurso conectado a internet o a una red privada DNS.

Toda la información que recogen éstos servidores se almacena en registros. A continuación se enumeran una lista de dichos registros y la información que almacenan.

A = Address — (Dirección) Éste registro se usa para traducir nombres de hosts a direcciones IPv4.

AAAA = Address — (Dirección) Éste registro se usa en ipv6 para traducir nombres de hosts a direcciones IPv6.

CNAME = Canonical Name — (Nombre Canónico) Se utiliza para crear nombres de hosts adicionales, o alias, para los hosts de un dominio. Es usado cuando se están corriendo múltiples servicios (como ftp y servidores web) en un servidor con una sola dirección IP. Cada servicio tiene su propia entrada de DNS (como ftp.ejemplo.com y www.ejemplo.com). Esto también es usado cuando se ejecutan múltiples servidores http, con diferentes nombres, sobre el mismo host.

NS = Name Server — (Servidor de nombres) Define la asociación que existe entre un nombre de dominio y los servidores de nombres que almacenan la información de dicho dominio. Cada dominio se puede asociar a una cantidad cualquiera de servidores de nombres.

MX (registro) — Mail Exchange (Registro de intercambio de correo) Ya lo mencionamos en la entrada anterior. Éste registro asocia un nombre de dominio a una lista de servidores de intercambio de correo para ese dominio.

PTR = Pointer — (Indicador) También conocido como ‘registro inverso’, funciona a la inversa de registro A, traduciendo IPs en nombres de dominio.

SOA = Start Of Authority — (Autoridad de la zona) Proporciona información sobre el servidor DNS primario de la zona.

TXT=TeXT — (Información textual) Permite a los dominios identificarse de modos arbitrarios.

HINFO = Host INFOrmation — (Información de equipo) Descripción del host, permite que la gente conozca el tipo de máquina y sistema operativo al que corresponde un dominio.

LOC = LOCalización — Permite indicar las coordenadas del dominio.

WKS — Generalización del registro MX para indicar los servicios que ofrece el dominio. Está obsoleto en favor del siguiente que explicamos SRV.

SRV=SeRVicios — Permite indicar los servicios que ofrece un dominio. RFC 2782.

SPF=Sender Policy Framework — Ayuda a combatir el Spam. En este registro se especifica los hosts que están autorizados a enviar correo desde el dominio dado.

A partir de ésta información podemos recavar información acerca de los servidores DNS y hacer así un primer mapa de la infraestructura de la red objetivo. A continuación veremos de qué herramientas disponemos para obtener dicha información de estos registros.

La herramienta DIG — DNS lookup utility

Ésta herramienta nos permite interrogar a un determinado servidor DNS para buscar información útil sobre un dominio. Es una herramienta por línea de comandos que ofrece las siguientes opciones y modos de uso:

dig[@global-server][domain][q-type][q-class]{q-opt}{global-d-opt}host[@local-server]{local-d-opt}[host[@local-server]{local-d-opt}[...]]

Si lanzamos con dig una consulta sobre un dominio sin utilizar ninguno de éstos parametros opcionales, la herrmienta preguntará por el valor del registro A, y utilizará los servidores DNS del fichero /etc/resolv.conf siendo el tipo de red por defecto IN (Internet class)

~$ dig www.paginaweb.com

Una vez realiza la petición, analizamos la respuesta. Vemos como en la cabecera de la petición se muestran una serie de opciones de la consulta realizada, así como los flags, la cantidad de preguntas, respuestas, etc.

::>>HEADER<<-opcode:QUERY, status:NOERROR,id:53976
;;flags:qr rd ra;QUERY:1, ANSWER:3,AUTHORITY:1,ADDITIONAL:2
;;QUESTION SECTION:
;www.paginaweb.com IN A
;;ANSWER SECTION:
www.paginaweb.com 86400 IN CNAME www.paginaweb.com
www.paginaweb.com 5 IN A 193.145.206.33
www.paginaweb.com 5 IN A 195.77.16.241
;;AUTHORITY SECTION:
www.paginaweb.com 172800 IN NS paginaweb.com
;;ADITIONAL SECTION:
paginaweb.com 86400 IN A 195.77.23.7
paginaweb.com 86400 IN A 193.144.127.7
;;Query time: 419 msec
;;SERVER: 127.0.0.1#53(127.0.0.1)
;;WHEN: Wen Jan 02 13:18:14 2017
;;MSG SIZE rcvd: 143

Obtenemos varios datos de éste comando, como pueden ser, el CNAME y la dirección IP del servidor. Mas abajo en la sección “AUTHORITY SECTION” nos indica las direcciones IP que han sido configuradas por una fuente original, y no obtenidas a partir de consultas a la caché de algún otro servidor DNS.

Un servidor DNS autorizado puede ser maestro o esclavo. Si es maestro almacenará las copias originales de todos los registros de zona, a diferencia de un servidor esclavo que siempre consultará los registros de su servidor maestro para acceder a dicha información.

En la información adicional “ADITIONAL SECTION” podemos ver toda la información de los registros DNS que no es autorizada, es decir que no ha sido configurada por una fuente original, si no que consulta registros de otro servidor DNS de los cuales nos lista sus direcciones IP, y al lado de la misma vemos en segundos el tiempo que éste servidor almacenará dicha información hasta volver a consultarla a su maestro. Ésta información es útil para no estar volviendo a realizar consultas a los servidores DNS.

Todo ésto sería únicamente una pequeña introducción al infinito mundo del Footprinting y la recolección de información en general. Existen muchas técnicas y herramientas para recolectar información de sistemas en red.

Aquí pongo algunos ejemplos mas de las técnicas mencionadas:

Ping sería la mas básica, aunque no es una herramienta de Footprinting como tal puede decirnos si el host está activo, mediante la transmisión de paquetes ICMP (Protocolo de Mensajes de Control de Internet).

Con nmap podemos también recolectar mucha información acerca de los host de una red concreta, así como los puertos que tienen dichos equipos abiertos, cerrados o filtrados. Es una herramienta muy completa y que requiere de un detallado estudio para explotar al máximo todas sus capacidades, dada su versatilidad.

Existen también varias herramientas on-line de recolección de información como por ejemplo EmailStuff, es una aplicación web que realiza prácticamente la misma función que el antes comentado comando dig. Sus funciones principales son convertir direcciónes IP en nombres de host y viceversa, permite también la validación de configuraciones de autenticación en un dominio mediante DKIM y SPF.

Cabe destacar que el Footprinting es un tema en constante evolución igual que el mundo de la seguridad informática en general, así que coméntanos qué técnicas sueles utilizar o conoces para recolectar información de una organización o red de computadoras, y si te han parecido útiles las que hemos mencionado, pronto mas sobre seguridad informática. Gracias por leer.

William Khepri

Written by

Desarrollador de Software y Autodidacta de la seguridad informática. Escribo sobre seguridad informática y tecnología.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade