Kali Linux, "distro" dedicada a realizar auditorias de Seguridad, evolución de la popular BackTrack, ofrece más de 300 herramientas dedicadas.
Esta distribución, basada en Debian a diferencia de Ubuntu en Back Track, permite sincronizar varias veces al día con los repositorios y de esa forma estar constantemente actualizada, además de que el arranque es directamente a la interfaz gráfica.
Es una verdadera navaja suiza para "penetration testing" y para "digital forensics" así que empezaremos a ver algunas de esas utilidades menos utilizadas, pero no menos importantes, que las grandes "suites".
Se describirán en su vertiente básica a modo de iniciación para aquellos que se enfrente por primera vez a este apasionante mundo de la seguridad y de la búsqueda de información para el esclarecimiento de los incidentes. Para aquellos que quieran profundizar más os adjunto al principio de cada herramienta el enlace del proyecto de desarrollo.
Se describirán en su vertiente básica a modo de iniciación para aquellos que se enfrente por primera vez a este apasionante mundo de la seguridad y de la búsqueda de información para el esclarecimiento de los incidentes. Para aquellos que quieran profundizar más os adjunto al principio de cada herramienta el enlace del proyecto de desarrollo.
Information Gathering: DNS Analysis.
Sin entrar en los potentes y architratados "nmap" y "Maltego" ademas de las herramientas propias del sistema como "whois" y "nslookup", vemos que tenemos en esta sección algunas interesantes utilidades como:
Útil para:
- Enumerar las entradas DNS IPv6 de un dominio o subdominio.
- Búsqueda de subdominios que
pueden ser invisibles para el público, pero todavía existe en los registros de
DNS.
A menudo, son olvidados por el administrador y pueden
ser un camino para explotar con ataques basados en dominio.
dnsdict6 utiliza una lista de diccionario que
se utiliza para adivinar posibles entradas de DNS.
En primer lugar, abrir la herramienta de Kali Linux en:
dnsdict6 >>
Information Gathering>>DNS Análisis >> dnsdict6
o también se puede ejecutar directamente, como el resto que veremos, escribiendo en la terminal del SO.
Sintaxis:
dnsdict6 [-s| -m|
-l| -x] [-t THREADS] [ -d dominio] [dictionary-file]
Opciones:
-4 también captura direcciones IPv4.
-t número de hilos que usar (defecto 8 – máximo 32).
-D vuelca de la lista de palabras incorporada, no escanea
-d mostrar información IP6 sobre NS, MX información de dominios DNS
-S obtiene el servicio de nombres SRV
-[smlx] optar por el diccionario (cuatro tipos) incorporados en esta herramienta -s(mall=50), -m(edium=796) (DEFAULT) -l(arge=1416), or -x(treme=3211)
Ejemplo:
# dnsdict6 - d46 -x -t 25 dominio.tld
dnsenum
El propósito de Dnsenum es reunir la mayor cantidad de información posible acerca de un dominio.
Actualmente, el programa realiza las operaciones siguientes:
• Obtiene la dirección del Host (registro A).
• Obtiene los Servidores de nombre (NameServers) (Registros NS) (threaded).
• Obtiene los registros de servicio de correo (registros MX) (threaded).
• Realiza consultas de transferencias de Zona "axfr" en Nameservers (threaded).
• Obtiene nombres extras y subdominios utilizando el motor de búsqueda de Google (google query = "allinurl: -www site:domain").
• Uso de Fuerza Bruta desde un fichero, también puede utilizar recursividad en los subdominios que tienen los registros NS (all threaded).
• Calcular intervalos de red de dominio de clase C y realizar consultas whois en ellos (rosca).
• Realizar búsquedas inversas en Rangos de Red (clase C o/y "Whois netranges") (threaded).
• Crear un fichero "domain_ips.txt" de bloques-IP.
Sintaxis:
dnsenum [Opciones] dominio
Opciones:
(Nota: la fuerza bruta-f es obligatoria)
Se puede bajar por ejemplo de code.google.com/p/dnsenum el diccionario dnsbig.txt para su uso o crear el propio
OPCIONES GENERALES
-dnsserver (Usa ese servidor DNS para consultas: A, NS y MX.
-enum equivalente a --threads 5 -s 20 -w
-H,--help Muestra la ayuda
-noreverse Evite las operaciones de búsqueda reversas.
-private Muestra y guarda las ips privadas al final del fichero domain_ips.txt
-subfile escribe todos los subdominios válidos en ese fichero
-t, --timeout (valores de tcp y udp tiempo de espera en segundos (por defecto: 10s)).
--threads (número de subprocesos que se llevará a cabo diferentes consultas)
-v, --verbose (muestra todos los avances y todos los mensajes de error)
OPCIONES GOOGLE:
-p, --pages valor (El número de páginas de búsqueda de Google) el valor por defecto es de 20 páginas, la opción-s se debe especificar.
-s,--scrap (número máximo de subdominios que analizará Google)
OPCIONES FUERZA BRUTA
-f, --file Lee subdominios de este archivo para realizar fuerza bruta.
a (all) Actualización con todos los resultados.
g Actualización usando sólo resultados de google.
r Actualización mediante los resultados de reverse lookup
z Actualización con resultados sólo zonetransfer.
-r, --recursion (recursividad en subdominios, fuerza bruta todos los subdominios descubiertos que tienen un registro NS.
OPCIONES WHOIS NETRANGE
-d, --delay (valor máximo de segundos de espera entre consultas whois, el valor se define al azar, por defecto: 3s).
-w, --whois (Realiza las consultas whois sobre rangos de red de clase c).
OPCIONES BUSQUEDA INVERSA
-e, --exclude Excluir los registros PTR que coincidan con la expresión de los resultados regexp de la búsqueda inversa, útiles en inválidos nombres de host.
OPCIONES DE SALIDA
-o --output Salida en formato XML. Puede ser importados en MagicTree (www.gremwell.com)
Ejemplos
Para un escaneo
# dnsenum dominio.tld
Para un escaneo de gran alcance:
# dnsenum -enum dominio.tld
Para configurar la exploración con más poder y subdominios:
# dnsenum -enum dominio.tld -f dnsbig.txt –r
dnsmap
Las utilidades de dnsmap:
1. Encontrar interesantes servidores de acceso remoto.
2. Búsqueda de servidores mal configurados y/o sin parche.
3. Búsqueda de nuevos nombres de dominio que le permitirá asignar bloques de red
4. Encontrar algunos subdominios por fuerza bruta al resolver las direcciones IP internas (RFC 1918).
5. Descubrir dispositivos embebidos configurados mediante servicios de DNS dinámico, Este método es una alternativa a los dispositivos de búsqueda de Google
Se puede hacer fuerza bruta con una función de la lista de palabras dnsmap o una lista de palabras por el usuario. Los resultados se pueden guardar en formato CSV y formato legible para su posterior procesamiento.
Sintaxis
dnsmap [opciones]
Opciones
-w Fichero de lista palabras pasado por el usuario
-r Genera una salida con los resultados
-c Genera una salida de formato "csv"
-d Tiempo de retraso o respuesta
-i (IP’s a ignorar, para meter varias IP's separadas por una coma) se usa si se obtiene IP con falsos positivos, las pasa por alto
Ejemplos:
Ataque de fuerza bruta a los sub-dominios con el lista de palabras incorporada:
# dnsmap dominio.tld
Ataque de fuerza bruta a los sub-dominios pero esta vez con una word-list personal
# dnsmap dominio.tld -w lista.txt
Ataque de fuerza bruta a los sub-dominios con el built-in word-list y guarda los resultados en /tmp/
# dnsmap dominio.tld -r /tmp/
Ataque de fuerza bruta a los sub-dominios con el built-in word-list y guarda los resultados en /tmp/ y esperando un muestreo de 3 segundos
# dnsmap dominio.tld -r /tmp -d 3000
Ataque de fuerza bruta a los sub-dominios con el built-in word-list y guarda los resultados en /tmp, con un tiempo de 0.8 segundos, generando un archivo csv en /tmp y que ignore las ips siguientes y que use una word-list personal.
# dnsmap dominio.tld -d 800 -r /tmp/ -c /tmp/ -i 10.55.206.154,10.55.24.100 -w ./wordlist_TLAs.txt
Se puede encontrar word-lists en:
http://packetstormsecurity.org/Crackers/wordlists/dictionaries/
http://www.cotse.com/tools/wordlists1.htm
http://wordlist.sourceforge.net/
• Zona de Traspasos
• Inversa
• Dominios y host de fuerza bruta
• Enumeración de grabación estándar (comodín, SOA, MX, A, TXT, etc)
• Caché Snooping
• Zona de Walking
• Búsqueda de google
Sintaxis
dnsrecon.py
Enumeración de grabación estándar
Para llevar a cabo la enumeración DNS estándar con el DNSRecon el comando que hay que utilizar es el = -d
Ejemplos:
# dnsrecon.py –d dominio.tld
Enumeración Inversa
# dnsrecon.py –r 80.109.162.60-80.109.162.80
# dnsrecon.py –d dominio.tld
Google Enumeración
# dnsrecon.py –d dominio.tld –s
Fuerza Bruta Enumeración
Para la realización de esta técnica lo único que tenemos que hacer es dar una lista de nombres y tratará de resolver los registros A, CNAME AAA y contra el dominio a, tratar cada uno de ellos por orden de una entrada .Para ejecutar el Nombre de Dominio de fuerza bruta hay que escribir:
# dnsrecon.py –d dominio.tld –D lista.txt –t brt
A servidores DNS:
Caché Snooping
Snooping DNS cache se produce cuando el servidor DNS tiene un registro DNS específico en la cache.
El registro DNS suele revelar muchísima información.
dnsrecon.py –t snoop -n Sever -D
Zona de Walking
Esta técnica puede desvelar los registros internos si la zona no está bien configurada. La información que puede ser obtenida nos puede ayudar a mapear máquinas de la red mediante la enumeración de los contenidos de una orden zone.
dnsrecon -d -t zonewalk
fierce
Muchas veces en una empresa, puede haber servidores situados en las direcciones IP no contiguas. Esto es un problema, simplemente porque el uso de un escáner de IP no revelan estos equipos, como las direcciones IP que pueden estar muy separadas. Además, como la mayoría de los servidores DNS están configurados para rechazar solicitudes de transferencias de zona DNS, no es posible obtener esta información a partir de ellos.
Fierce es un escáner de dominio que le ayuda a encontrar los servidores DNS, transferencias de zona, subredes y host de cualquier dominio de destino. Fierce primero buscará un dominio de destino en busca de los servidores DNS, junto a las transferencias de zona. En el caso de que fierce no sea capaz de recuperar todas las transferencias de zona, lo intentará a la vieja usanza con un ataque de fuerza bruta.
Sintaxis
perl /usr/bin/fierce -dns dominio [opciones]
Opciones:
-connect
-delay
-dns
-dnsfile
-dnsserver
-file
-fulloutput
-help
-nopattern
-range
-search
-supprees
-tcptimeout
-threads
-traverse
-version
-wide
-wordlist
Bajar hosts.txt: http://ha.ckers.org/fierce/hosts.txt