Utilizando Msfconsole y la Shell Bash de Linux

Body

Dado el hecho la consola de Metasploit Framework puede ser utilizada de manera no interactiva desde la línea de comandos, lo cual permite realizar procesos muy interesantes; siendo factible integrar sus resultados directamente con otras herramientas o comandos; como realizar peticiones Whois, realizar consultas DNS, escanear puertos con la herramienta Nmap, entre otras acciones. A continuación se presentan algunos ejemplos de esta interacción, como también la interacción con la shell bash de Linux.

Si se requiere realizar un escaneo de puertos de tipo TCP SYN, es factible utilizar el módulo en Metasploit Framework de nombre “auxiliary/scanner/portscan/syn”. Las direcciones IP a escanear serán el resultado de realizar una consulta por el registro A del dominio.

# msfconsole -x "use auxiliary/scanner/portscan/syn; set RHOSTS $(dig nmap.org +short); run; exit -y"

El resultado obtenido con el anterior anterior comando, muestra los puertos encontrados en estado abierto correspondientes a la dirección IP, producto de una consulta al registro A para el dominio nmap. org.

También es factible automatizar un proceso repetitivo utilizando comandos de la shell bash para ejecutar bucles, como el comando “for”. De esta manera los resultados de un escaneo de puertos hacia un rango de red, serán utilizados para ejecutar un módulo de Metasploit Framework

#for ip in $(nmap -sn -n 45.33.49.0/24 | grep -i "report" | cut -d " " -f 5); do msfconsole -q -x "use auxiliary/scanner/http/http_version; set RHOSTS $ip; run; exit -y"; done

El módulo de nombre “auxiliary/scanner/http/http_version” permite obtener información sobre la versión del servidor web. En los resultados obtenidos con el anterior comando, se expone esta información donde se haya encontrado un servicio atendiendo por defecto en el puerto 80.

De hecho se podrían realizar diversas combinaciones a partir de las demostraciones antes expuestas. Siendo factible automatizar muchos procesos realizados con Metasploit Framework al unísono de la shell bash de un sistema Linux.

El punto de estos ejemplos es exponer la capacidad de expandir las funcionalidades de cualquier herramienta utilizando la shell bash de Linux. Siendo esto sobre todo extremadamente útil en pruebas de penetración o hacking ético de gran magnitud, pues existen muchos inconvenientes o problemas los cuales únicamente podrían ser resueltos de esta manera.

Fuentes:

https://www.rapid7.com/db/modules/auxiliary/scanner/portscan/syn
https://www.rapid7.com/db/modules/auxiliary/scanner/http/http_version
https://github.com/rapid7/metasploit-framework

Detectar Servicios UDP Comunes utilizando el Módulo auxiliary/scanner/discovery/udp_probe

Body

El Módulo de nombre “auxiliary/scanner/discovery/udp_probe” incluido en Mestaploit Framework, permite detectar servicios comunes UDP (User Datagram Protocol), o por su traducción al idioma español, protocolo de datagramas de usuario. UDP es uno de los miembros fundamentales de la suite de protocolos de Internet. Con UDP las aplicaciones de cómputo pueden enviar mensajes, en este caso referidos como datagramas, hacia otros hosts sobre una red IP. UDP utiliza un modelo sencillo de comunicación sin estado, con un mínimo de mecanismos del protocolo.

Se procede a ejecutar Metasploit Framework

# msfconsole

Se ejecuta el comando “info” para solicitar al Metasploit información completa sobre el módulo.

> info auxiliary/scanner/discovery/udp_probe

Se define la utilización del módulo, para luego mostrar sus opciones.

> use auxiliary/scanner/discovery/udp_probe
> show options

El módulo requiere la definición de la opción “RHOSTS”, correspondiente a los sistemas en evaluación. Luego de esta configuración se ejecuta el módulo.

> set RHOSTS 192.168.0.70
> show options
> run

Los resultados obtenidos por el módulo expone un servicio NetBIOS descubierto en la dirección IP 192.168.0.70, mostrando también información relacionada, como grupo de trabajo o dirección MAC.

Fuentes:

https://www.rapid7.com/db/modules/auxiliary/scanner/discovery/udp_probe
https://en.wikipedia.org/wiki/User_Datagram_Protocol
https://tools.ietf.org/html/rfc768

Detectar Servicios UDP utilizando el Módulo auxiliary/scanner/discovery/empty_udp

Body

El Módulo de nombre “auxiliary/scanner/discovery/empty_udp” incluido en Mestaploit Framework, permite detectar servicios UDP (User Datagram Protocol), o por su traducción al idioma español, protocolo de datagramas de usuario, los cuales responden a pruebas vacías. El protocolo UDP proporciona un procedimiento para los programas aplicación envíen mensajes hacia otros programas con un mínimo de mecanismos del protocolo. El protocolo está orientado a la transacción y no se garantiza protección de duplicados o entrega.

Se inicia la ejecución de Metasploit Framework.

# msfconsole

Se solicita a Metasploit más información sobre el módulo.

> info auxiliary/scanner/discovery/empty_udp

Se le indica al Framework la utilización del módulo, para luego mostrar sus opciones.

> use auxiliary/scanner/discovery/empty_udp
> show options

El módulo requiere la definición de la opción “RHOSTS”, correspondiente a los sistemas en evalución. También se requiere definir la opción “RPORT”, el cual corresponde al puerto UDP a evaluar. Luego de esta configuración se ejecuta el módulo.

> set RHOSTS 192.168.0.70
> set RPORT 137
> run

Para propósitos de la presente demostración se han definido diversos puertos UDP. Pero para ninguno de los casos se ha podido identificar un puerto UDP respondiendo a pruebas vacías.

Fuentes:

https://www.rapid7.com/db/modules/auxiliary/scanner/discovery/empty_udp
https://tools.ietf.org/html/rfc768

Enumerar Hosts en Funcionamiento utilizando el Módulo auxiliary/scanner/discovery/arp_sweep

Body

El Módulo de nombre “auxiliary/scanner/discovery/arp_sweep” incluido en Mestaploit Framework, permite enumerar cuales hosts están funcionando en la red local, utilizando peticiones ARP (Address Resolution Protocol); o por su traducción al idioma español; Protocolo para la Resolución de Direcciones. Este protocolo de comunicación es utilizado para descubrir direcciones correspondientes a la capa de aplicación, como la dirección MAC asociada con una dirección de la capa de Internet , típicamente IPv4.

Se inicia la ejecución de Metasploit Framework.

# msfconsole

Se solicita información sobre el módulo.

> info auxiliary/scanner/discovery/arp_sweep

Se define la utilización del módulo, para luego mostrar sus opciones.

> use auxiliary/scanner/discovery/arp_sweep
> show options

El módulo únicamente requiere la definición de la opción “RHOSTS”. Luego de proceder con su definición con el rango de direcciones a evaluar o un identificado CIDR, se ejecuta el módulo.

> set RHOSTS 192.168.0.0/24
> run

De los resultados obtenidos, para algunos de los hosts detectados en funcionamiento se obtiene información adicional, mientras para otros la información es “Desconocida”. Esta información presentada entre paréntesis se obtiene desde las direcciones MAC, pues a partir de la dirección MAC es factible obtener información como el proveedor; por ejemplo “00:00:CA” corresponde a “ArrisGro ARRIS Group, Inc.”.

Fuente:

https://en.wikipedia.org/wiki/Address_Resolution_Protocol
https://tools.ietf.org/html/rfc826
https://www.wireshark.org/tools/oui-lookup.html

Ejecución Directa de las Principales Opciones de Msfconsole

Body

La interfaz en línea de comando de Metasploit puede ser invocado de diferentes maneras, dependiendo de cuales sean los requerimientos. Los modos de invocación en efecto varían, esto es desde proporcionar información sobre un módulo, por ejemplo información sobre quien lo desarrolló, hasta los modos proporcionando información sobre como se pueden habilitar técnicas de evasión IDS, y cuales payploads pueden ser utilizados para activar o empaquetar la vulnerabilidad asociada, si es aplicable.

La ayuda de “msfconsole” se obtiene utilizando la opción “-h”

# msfconsole -h

Para empezar con los modos de invocación, el primero está diseñado para mostrar información sobre un módulo. No siempre se pueden conocer cuales opciones están disponibles para un módulo a invocar. El siguiente comando es útil para este propósito.

# msfconsole -q -x "use exploit/windows/smb/ms17_010_eternalblue; show options; exit -y"

El anterior comando muestra un breve resumen sobre únicamente las opciones necesarias, es requerido estrictamente definir las opciones pertinentes para una ejecución exitosa el módulo.

También se puede requerir conocer más sobre el módulo, como por ejemplo, quien lo desarrollo, cual vulnerabilidad intenta explotar, y cuales son los sistemas operativos a atacar. Esta información se puede obtener con el siguiente comando.

# msfconsole -q -x "use exploit/windows/smb/ms17_010_eternalblue; info; exit -y"

El anterior comando imprime un resumen de las opciones básicas necesarias conocer. Siendo también factible obtener un completo listado de opciones avanzadas con el siguiente comando.

# msfconsole -q -x "use exploit/windows/smb/ms17_010_eternalblue; show advanced; exit -y"

El anterior comando genera los resultados esperados.

Para mostrar cuales son los “payloads” disponibles para el módulo seleccionado se utiliza el siguiente comando.

# msfconsole -q -x "use exploit/windows/smb/ms17_010_eternalblue; show payloads; exit -y"

Estos son las principales opciones a utilizar con el comando “msfconsole”. Este modo de acceso incrementa las posibilidades de uso con Metasploit, dado el hecho poder incluirla estas funcionalidades dentro de scripts y otras utilidades en línea de comandos, lo cual es muy útil en diversas situaciones sobre evaluaciones de seguridad o pruebas de penetración.

Fuentes:

https://www.offensive-security.com/metasploit-unleashed/msfconsole-comm…
https://github.com/rapid7/metasploit-framework/blob/master/documentatio…
https://www.rapid7.com/db/

Enumeración de Sistemas con Nmap

Body

ICMP puede algunas veces ser abusado por los atacantes en una red local, pues por su naturaleza no está diseñado para proporcionar seguridad o para considerar algún mecanismo de seguridad. Esto frecuentemente genera ICMP sea abusado por los atacantes para obtener información sensible o información la cual puede ser utilizada para determinar o inferir detalles sensibles sobre los hosts en una red.

Para empezar se prueba un host por respuestas utilizando el protocolo ICMP. El uso de Nmap para realizar pruebas ICMP es con el siguiente comando.

# nmap -sn -v 192.168 .0.70

También es factible definir otras opciones de nmap, el nombre de host, la dirección IP, rangos de direcciones IP, o utilizar la notación CIDR, para definir aquello a enumerar.

# nmap -n -sn -v --reason 192.168 .0.0/24

La opción “-sn” indica a Nmap utilizar el protocolo ICMP para determinar si los hosts están en funcionamiento o no correspondientes al rango alcanzable, y deshabilita el escaneo de puertos. Mencionar cuando se utiliza la opción “-sn” en una red local; como en el presente ejemplo; Nmap utiliza el protocolo ARP, pues Nmap por defecto únicamente utiliza el protocolo ICMP para hosts fuera de la red local. La opción “-v” activa el modo verbosidad. Y la opción “--reason” imprime la información por la cual se determinan ciertos resultados sobre un host.

El protocolo ICMP es un protocolo de red utilizado para solicitar depuración o información para diagnosticar inconvenientes desde los hosts de la red.

Otras opciones para el descubrimientos de los hosts incluidos en Nmap son:

-PE: Esto indica a Nmap utilizar peticiones “ICMP Echo”, lo cual es el paquete enviado cuando se hace “ping” a un host.

-PP: Esto indica a Nmap utilizar peticiones “timestamp”. Los hosts respondiendo a estas peticiones “timestamp” son usualmente reportados conforme se hallan en las pruebas de penetración. Frecuentemente librerías criptográficas configuradas por defecto o débilmente utilizan el tiempo del sistema para generar primitivas criptográficas.

-PM: Utiliza peticiones ICMP netmask; estos paquetes ICMP fueron originalmente implementadaos de tal manera los ingenieros en redes puedan consultar a un host por información sobre su configuración de red. El siguiente es un ejemplo de esto.

# nmap -n -PM -v --reason scanme. nmap.org

Si se necesita hacer uso de otros protocolos para identificar los sistemas, Nmap ofrece un amplio rango de funcionalidades. Las siguientes son algunas de estas opciones.

-PS: Esta opción envía paquetes con el bit de control SYN hacia el host, y determina si están en la red interpretando la respuesta o ausencia de esta.

-PA: Esta opción indica a Nmap enviar paquetes TCP con el bit de control ACK hacia el host, para terminar si está en funcionamiento y respondiendo a los paquetes. Las máquinas sobre la red generalmente intentan respetar el estándar del protocolo TCP, y responden a paquetes con el bit de control ACK enviando un paquete con el bit de control RST.

-PO: Esta opción enumera todos los protocolos soportados por el host en evaluación, ateniendo por paquetes TCP con el bit de control RST, pues los hosts en funcionamiento responderán frecuentemente de esta manera a paquetes inválidos ajustados con identificadores arbitrarios para el número de protocolo.

Nmap incluye otras opciones disponibles para el descubrimiento de los hosts, se sugiere revisar esta información.

Fuentes:

https://nmap.org/
https://nmap.org/book/man-host-discovery.html

Descubrir Hosts con Arping

Body

Arping es una utilidad la cual permite crear paquetes ARP (Address Resolution Protocol) e ICMP (Internet Control Message Protocol) para enviarlos hacia hosts arbitrarios en la red local. Naturalmente esta es una excelente manera de enumerar todos los hosts en funcionamiento. También es una herramienta muy informativa, pues imprime las respuestas ICMP y ARP en la pantalla.

Los siguientes ejemplos demuestran algunos usos simples del comando “Arping”.

# arping 192.168. 0.70

La siguiente imagen es el resultado del comando ejecutado anteriormente, incluyendo dirección MAC y dirección IP.

Si se recibe una respuesta del host, es un fuerte indicador de este host existe actualmente en la red. De hecho la ausencia de fortaleza criptográfica en el protocolo ARP; no es realmente una garantía de esta información sea estrictamente verdadera. Se debe recordar esto es información comunicada sobre protocolos inseguros.

Se puede tener el requerimiento de recorrer una lista de direcciones IP en una subred. Utilizando un script pequeño en bash se puede lograr esto. El siguiente código realiza esto.

#!/bin/bash

PREFIX=$1
INTERFACE=$2

for SUBNET in {0..255}
do
for HOST in {0..255}
do
echo "[*] IP : "$PREFIX"."$SUBNET"."$HOST
arping -c 1 -I $INTERFACE $PREFIX"."$SUBNET"."$HOST 2>/dev/null
done
done

En este script se utiliza la opción “-c” para definir únicamente el envío de una petición. También el usuario especifica la interfaz a ser utilizada con “arping” utilizando la opción “-I”. También se debe definir un prefijo para la dirección IP local. La manera correcta consecuentemente de ejecutar el script es la siguiente, siendo el nombre del script “arping.sh”.

# bash arping.sh 192.168 eth0

“Arping” tiene otras opciones aparte de las anteriormente mencionadas.

-d. Encuentra respuestas duplicadas. Esta opción es relevante como una herramienta para vigilancia. Siendo factible detectar si alguien en la red está falsificando una dirección MAC asignada a otro host; los atacantes frecuentemente hacen esto para iniciar un ataque de hombre en el medio.

-p. Define el modo promiscuo en la interfaz especificada, y permite definir las direcciones MAC de otros como el propio, esto es una falsificación de MAC.

-r. Muestra el resultado en bruto, y significa únicamente la dirección MAC e IP son mostrados para cada respuesta.

También “arping” define modos de direccionamiento

-s MAC. Esto implica utilizar MAC como dirección MAC fuente. Esta opción funciona bien si la red o selección de hosts los cuales se están enumerando utiliza filtrado por MAC origen, únicamente sirviendo respuestas hacia un número selecto de hosts.

-S IP. Esta opción instruye utilizar la dirección IP como fuente, esto es falsificación IP. Si un firewall basado en host únicamente permite un número limitado de direcciones IP para comunicarse, esta opción es relevante para falsificar una de las direcciones IP permitidas.

-t MAC. Esta opción instruye a utilizar la dirección MAC como objetivo.

-T IP. Esta opción instruye a utilizar la dirección IP como la dirección IP objetivo.

Así es factible combinar las características y funcionalidades inherentes a una herramienta como “arping”, con el shell bash de Linux. De esta manera se incrementa su potencial y beneficios.

Fuentes:

https://linux.die.net/man/8/arping
https://tools.ietf.org/html/rfc792
https://tools.ietf.org/html/rfc6747

Interrogar Servidores DNS utilizando dnsmap

Body

Algunas veces se necesitan los resultados de realizar un proceso de fuerza bruta contra nombres de dominio o subdominios, pues estos pueden ser muy difíciles de enumerar para un host o red, si las opciones tales como “whois” o “dig”, no proporcionan suficiente información con la cual trabajar. En situaciones como esta herramientas como “dnsmap” y “dnsenum” son muy útiles.

Utilizar “dnsmap”es muy sencillo. Para obtener un resumen de sus opciones se debe ejecutar el siguiente comando.

# dnsmap

Antes de profundizar en el significado de algunas de sus opciones, la maneras más simple de ejecutar “dnsmap” es mediante la definición del dominio a evaluar. Por ejemplo el dominio facebook. com

# dnsmap facebook. com

Si se invoca “dnsmap” sin argumentos, se utiliza su lista de palabras incorporadas para enumerar los dominios. Esta lista de palabras se encuentra localizada en “/usr/share/dnsmap/wordlist_TLAs.txt”

Utilizando la opción “-r” se puede indicar a “dnsmap” almacenar los resultados de su operación. Dado el hecho podrían existir cientos de subdominios y direcciones IP factibles de enumerar, es una buena opción guardar los resultados para procesarlos después.

Utilizando los comandos de la shell bash de Linux, es factible obtener un listado ordenado de todos los subdominios enumerados con “dnsmap”.

# cat /tmp/subdomains_fb.txt | sort | uniq | grep facebook | column

Adicionalmente es factible obtener listado de todas las direcciones IPv4 e IPv6 hacia las cuales resuelven los subdominios enumerados por “dnsmap”.

# cat /tmp/subdomains_fb.txt | grep "IP address" | cut -d " " -f 4 | sort | uniq
# cat /tmp/subdomains_fb.txt | grep "IPv6 address" | cut -d " " -f 4 | sort | uniq

Entre otras opciones de “dnsmap” están aquellas las cuales permiten definir una lista de palabras utilizando la opción “-w”, guardar los resultados en formato CSV utilizando la opción “-c”, definir los segundos para un retraso entre las pruebas utilizando la opción “-d”, y definir un listado de direcciones IP a ignorar utilizando la opción “-i”.

“dnsmap” no es una herramienta muy compleja, pero es una herramienta la cual hace bien su trabajo.

Fuentes:
https://github.com/makefu/dnsmap
https://linux.die.net/man/1/grep
https://linux.die.net/man/1/column

Interrogar Servidores DNS utilizando Dig

Body

Dig es esencialmente una cuchilla suiza para consultas DNS, y facilita todo lo necesario conocer sobre un dominio o dominios relacionados hacia una dirección IP. Utilizando “Dig” se puede emular y realizar, los tipos de consultas realizadas por los navegadores web y otras aplicaciones de red, al interactuar con todos los servidores DNS a través del mundo. Algunas consultas pueden incluso emular el comportamiento de otros servidores DNS. Es importante entonces conocer como funciona “Dig” y como se puede obtener le mejor para una prueba de penetración.

La manera más simple de utilizar “Dig” es definir un nombre de dominio a consultar. El siguiente comando muestra esto.

# dig facebook.com

Estos resultados muestran cuales son las direcciones IP a la cual resuelve el dominio facebook.com

Se puede también definir cuales tipos de registros se requiere consultar utilizando la opción “type”.

Por ejemplo para consultar los registros para el intercambio de correo electrónico (registros MX) para facebook.com, se utiliza el siguiente comando. La opción “-t” puede también ser obviada.

# dig facebook.com MX
# dig facebook.com -t MX

Los siguientes son los tipos de registros los cuales son factibles de consultar utilizando “Dig”.

  • A: Este es el registro de dirección, y gestiona la dirección IP asociada con el dominio consultado.
  • AAAA: Este es el registro de dirección IP versión 6.
  • CNAME: Este es el registro de nombre canónico, el cual devuelve los nombres de dominio para el cual el dominio especificado es un registro canónico. Esto es como consultar con “Dig” si el dominio definido es un apodo de otro, o más precisamente, si el nombre de dominio definido utiliza la dirección IP de otro dominio, y “Dig” devuelve estos dominios.
  • MX: Este es el registro para intercambio de correo, y lista las direcciones IP asociadas con el dominio especificado, como agentes para la transferencia de correoss. Se podría utilizar esto para encontrar dominios de correo electrónico de un dominio.
  • PTR: Este es para los registros puntero, lo cual son frecuentemente utilizado en consultas reversas DNS.
  • SOA: Este es el inicio del registro de autoridad / zona, el cual devolverá registros relacionados hacia el servidor de dominio primario “autorizado” para el dominio definido.
  • AXFR: Este es para la transferencia de zona, el cual consulta a un servidor de nombres para devolver todos los registros relacionados hacia un dominio definido. Los servidores DNS modernos no tienen esta opción habilitada remotamente, pues presenta considerable información sobre vulnerabilidades expuestas, exposición de direcciones internas primarias, y permite efectivamente realizar ataques de negación de servicio.

Existen otros interesantes tipos de registros. Únicamente se han listado los más comunes. Se sugiere investigar más sobre los otros registros en el RFC correspondiente.

El siguiente comando es un ejemplo de consulta al registro AAAA.

# dig facebook.com -t AAAA

También se puede consultar los dominios para el cual www. facebook. com es el nombre canónico. Esto se realiza utilizando el siguiente comando.

# dig www. facebook. com -t CNAME

Algunas veces se requiere acortar todos los detalles devueltos por una consulta DNS, e indicar a “Dig” devuelva únicamente los datos importantes. La opción “+short” permite hacer esto. El siguiente comando lo realiza.

# dig facebook.com +short

Esta opción permite “Dig” sea más manejable, pues es factible unirla con la shell bash para realizar bucles u otros scripts, pues esto mitiga el deber filtrar las otras salidas.

# for ip in $(dig facebook.com +short); do whois $ip; done

“Dig” también permite una resolución IP inversa utilizando la opción “-x”. Por ejemplo, si se requiere encontrar cual nombre de dominio esta asociado hacia una dirección IP, se utiliza el siguiente comando.

# dig -x 157.240.197.35

Frecuentemente se tiene un largo listado de direcciones IPs o una listas la cual se ha logrado enumerar a través de otros medios como Whois, y se requiere conocer cuales están mapeadas. Ahora se puede realizar manualmente consultas con “Dig” para cada dirección IP. Sin embargo utilizando un pequeño script con “Dig”, se puede automatizar el proceso completo muy fácilmente. Por ejemplo, si se tienen las direcciones IP en un archivo, uno en cada linea, es factible utilizar el siguiente comando.

# for IP in $(cat /tmp/lista_ip.txt); do echo "[*] $IP -> "$(dig -x $IP +short); done

En el anterior comando “lista_ip.txt” contiene un listado de direcciones IP. Siendo exitoso el proceso de encontrar los nombres de dominio hacia las cuales resuelven estas direcciones IP.

Fuentes:

https://linux.die.net/man/1/dig
https://en.wikipedia.org/wiki/List_of_DNS_record_types
http://linuxcommand.org/lc3_man_pages/forh.html
https://www.ietf.org/rfc/rfc1035.txt

Interrogar a los Servidores Whois

Body

Los servidores whois almacenan información sobre las direcciones IP, nombres de dominio, y otras redes aborcando información relevante por la cual ciertas organizaciones son responsables o están estrictamente asociadas. Cuando se solicita información sobre un registro Whois, todo lo cual se debe hacer es consultar una base de datos hospedada en un servidor Whois utilizando un protocolo de aplicación especial llamado Whois.

Durante una prueba de penetración, se puede tener definida una lista de direcciones IP con la cual trabajar, o un nombre de dominio el cual resuelve hacia una dirección IP. Frecuentemente se podría desear conocer a quien pertenece esta dirección IP, y que más puede estar hospedado en el mismo bloque lógico de red; Whois es una gran herramienta para encontrar este tipo de información.

El interrogar a los servidores Whois desde la línea de comandos se hace utilizando una herramienta de nombre “whois”, el cual se incluye en la mayoría de sistemas GNU/Linux, incluyendo Kali Linux.

Existen diversas opciones las cuales pueden ser especificadas cuando se utiliza la herramienta “whois”. A continuación se muestran algunas útiles. Para quienes requieran conocer más sobre la herramienta “whois”, se sugiere consulta la información sobre la herramienta.

La funcionalidad básica de Whois es devolver un conjunto de atributos asociados con una dirección IP; esta colección de atributos es denominado un registro whois. Consultar un registro utilizando la dirección IP es tan simple como ejecutar el siguiente comando.

# whois 74.125.233.80

Lo devuelto al ejecutar una consulta Whois es llamado un objeto, y cada objeto tiene diversos atributos asociados hacia pares de claves y valores. Cada objeto tiene información relacionada a la persona responsable para el registro / objeto por si mismo. Esta persona es referida como un mantenedor. El mantenedor decide cuales atributos utiliza donde describe el objeto relacionado. Existen varios números de posibles atributos.

Además de únicamente consultar al servidor Whois por información asociada con una dirección IP, se puede también consultar cierta información asociada con una organización definida o se podría consultar por toda la información en la base de datos mencionando un valor definido, por ejemplo, el mantenedor o una dirección de correo electrónico. El hacer esto es referido como una consulta reversa de atributos. El siguiente comando se utiliza para hacer esto.

# whois -i mnt-by YAHOO-MNT

Se puede filtrar las direcciones IP desde esta consulta. La manera más simple de hacer esto es utilizar el comando “grep”, como el siguiente comando.

# whois -i mnt-by YAHOO-MNT | grep inetnum

También se puede requerir filtrar únicamente las direcciones IP para utilizar con otras herramientas como Nmap y Dig. El siguiente comando bash posibilita hacer esto.

# whois -i mnt-by YAHOO-MNT | grep inetnum | awk -F\: '{ print $2 }'

Otros atributos los cuales pueden ser utilizados para hacer consultas inversas son las siguientes:

  • -i admin-c [NIC-handle o persona]
  • -i person [NIC-handle o persona]
  • -i nssever [Dominio o prefijo de dirección o rango o una única dirección]
  • -i sub-dom [Dominio]
  • -i upd-to [Correo electrónico]
  • -i locl-as [Número sistema autónomo]

Se puede también utilizar la herramienta “whois” para consultar nombres de dominio relacionados a un nombre de dominio definido utilizando el siguiente comando.

# whois facebook.com

Al agregar un comando “grep” y “awk” para hacer la consulta se puede filtrar información útil como los servidores de nombres, utilizando el siguiente comando.


# whois facebook.com | grep Name\ Server | awk -F\: '{ print $2 }'

Esta información es útil para los profesionales en pruebas de penetración e ingenieros de seguridad. Los servidores de nombres (DNS) obtenidos pueden ser ahora utilizados para consultarlos utilizando el comando “Dig” o “Nslookup”.

Fuentes:

https://linux.die.net/man/1/whois
https://linux.die.net/man/1/dig
https://linux.die.net/man/1/nslookup
https://linux.die.net/man/1/grep
https://linux.die.net/man/1/awk