XUT_ / COURSES / PENETRATION TESTER

Introduction to AD Breaches

El Active Directory (AD) es usado aproximadamente por el 90% de las 1000 compañías de fortuna global. Si el estado de una organización usa Microsoft Windows, casi garantizado tiene un AD. El Microsoft AD es la suite dominante usada para gestionar redes de dominios Windows. Sin embargo, como AD es usado para gestión de identidad y acceso del estado entero, tiene la llave del reino, haciéndolo un objetivo muy común para los atacantes.


Rompiendo el Directorio Activo

Antes de que podamos explotar las malas configuraciones para la escalada de privilegios, movimiento latera y ejecución de objetivos, necesitamos acceso inicial primero. Necesitas adquirir un set inicial de credenciales AD válidas. Debido al número de servicios y funcionalidades de AD, la superficie de ataque para ganar un set inicial de credenciales AD suele ser significativa. En esta unidad vamos a ver varias formas.

Cuando buscamos el set inicial de credenciales, no nos enfocamos en permisos asociados a la cuenta, por lo que un nivel bajo de privilegios es suficiente. Sólo buscamos una forma de autentificarnos en el AD para poder realizar posterior enumeración del mismo.


Objetivos de Aprendizaje

En esta red, cubriremos varios métodos que pueden ser usados para romper AD. Esto no es una lista completa de métodos y técnicas, ya que se descubren nuevas constantemente. Sin embargo, cubriremos las siguientes técnicas:

  • Servicios NTLM Autentificados
  • Credenciales Ligadas LDAP
  • Relays de Autentificación
  • Herramientas de Despliegue de Microsoft
  • Archivos de Configuración

Podemos usar estas técnicas en una evaluación de seguridad.


Conectarse a la Red

Usando AttackBox

Si usas el AttackBox desde la propia web de TryHackMe, la conexión a la red se realiza automáticamente al iniciarlo desde la página de la sala.

Para comprobar que estás conectado, puedes hacer ping a la IP del Domain Controller o al dominio:

bash
ping THMDCIP

o, cuando el DNS esté configurado:

bash
ping thmdc.za.tryhackme.com

Aunque el AttackBox se conecta automáticamente a la red, todavía tienes que configurar el DNS para que los nombres del dominio de AD se resuelvan correctamente.

Para configurar el DNS, tienes que sustituir THMDCIP por la IP real del Domain Controller que aparece en el diagrama de red y ejecutar:

bash
sed -i '1s|^|nameserver THMDCIP\n|' /etc/resolv-dnsmasq

Después reinicia el servicio DNS:

bash
systemctl restart dnsmasq

Y comprueba que funciona con:

bash
nslookup thmdc.za.tryhackme.com

Si todo está bien, el dominio debería resolver a la IP del Domain Controller.

Apuntar mi IP de VPN

Una vez conectado, debes comprobar cuál es tu IP dentro de la red de TryHackMe. Para eso puedes usar:

bash
ifconfig

o:

bash
ip a

Tienes que fijarte en la interfaz relacionada con la red breachingad, porque esa será tu IP interna para realizar los ataques y pruebas de la sala.


Usando tu Máquina con OpenVPN

Si usas tu propia máquina virtual, por ejemplo Kali Linux, tienes que conectarte manualmente con OpenVPN.

Primero ve a la página de acceso de TryHackMe. Después entro en la pestaña Networks.

Selecciono el servidor VPN llamado:

text
breachingad

Y descarga el archivo de configuración de OpenVPN.

Introduction to AD Breaches

CAUTION

Necesitas un archivo de OpenVPN diferente al normal.

Luego, desde tu máquina virtual, ejecuta OpenVPN con el archivo descargado:

bash
sudo openvpn breachingad.ovpn

Si la conexión se realiza correctamente, al final del terminal debería aparecer:

bash
Initialization Sequence Completed

Eso significa que ya estás conectado a la red.

Después vuelve a la página de acceso de TryHackMe, refresca la página y debería aparecer como Connected, junto con mi IP interna de VPN.

Introduction to AD Breaches

Configurar DNS en mi Propia Máquina Virtual

Aunque OpenVPN esté conectado, todavía tienes que configurar el DNS para que los dominios internos de Active Directory funcionen.

En Kali Linux, normalmente se puede hacer desde el Network Manager:

Ruta aproximada:

txt
Network Manager -> Advanced Network Configuration -> Tu conexión -> IPv4 Settings

Ahí debes poner como DNS principal la IP del Domain Controller.

También puedes añadir un DNS secundario externo, por ejemplo:

text
1.1.1.1

Esto permite seguir teniendo acceso a Internet.

Después reinicia Network Manager:

bash
sudo systemctl restart NetworkManager

Y prueba que el DNS funciona:

bash
nslookup thmdc.za.tryhackme.com

o:

bash
nslookup za.tryhackme.com THMDCIP

Si esto no te funciona, abre el archivo /etc/resolv.conf. Si no has tocado nunca el DNS, normalmente será así:

resolv.conf
search home
nameserver 192.168.1.1

El apartado nameserver es el que nos interesa. Como hemos dicho, si no has tocado nada, este normalmente apuntará a tu gateway (router) por defecto como servidor DNS. Para que funcione, deja el archivo de la siguiente manera:

resolv.conf
search home
nameserver THMDC_IP
namesever IP_DE_ANTES
IMPORTANT

Pongo IP_DE_ANTES porque en caso de que hubieras tocado el DNS, deberás poner el servidor previamente configurado.

CAUTION

No hagas sudo systemctl restart NetworkManager, pues podría borrarse la configuración. Además es probable que al reiniciar tu máquina tengas que volver a configurarlo.


Problemas Comunes con DNS

En Active Directory el DNS es muy importante, porque protocolos como Kerberos dependen de él. Si el DNS no funciona, muchas herramientas fallarán aunque la VPN esté conectada.

Si algo no funciona, lo primero que debes comprobar es el DNS.

Pasos para depurar:

bash
ping THMDCIP

Esto comprueba si tienes conexión con el Domain Controller.

Después:

bash
nslookup za.tryhackme.com THMDCIP

Esto comprueba si el Domain Controller está resolviendo nombres DNS.

Finalmente:

bash
nslookup tryhackme.com

Esto comprueba si sigo teniendo DNS normal hacia Internet.

Si el DNS de TryHackMe no funciona, puede que la configuración se haya perdido o que el DNS interno no esté como primera entrada.

En Kali puede pasar que la entrada DNS correcta quede en segundo lugar dentro de:

bash
/etc/resolv.conf

Si ocurre, hay que poner el DNS del Domain Controller como primera entrada.

[!DANGER] El DNS del AttackBox puede reiniciarse aproximadamente cada 3 horas. Si deja de funcionar, hay que repetir la configuración del DNS. Si se cierra el AttackBox y se vuelve más tarde a la sala, también habrá que repetir los pasos de DNS.