Extrayendo info del Directorio Activo... en Go! (goddi)

goddi (go dump domain info) es una herramienta escrita en Go que funciona tanto en Windows como en Linux y sirve para la obtención de información de directorio activo: extrae usuarios de dominio, grupos, controladores de dominio, etc. y lo vuelca a CSV.

Permite conexiones StartTLS y TLS (tls.Client func), estas últimas de forma predeterminada. Todos los resultados se van dejando en /csv/ en el directorio de trabajo actual. La información que recopila es la siguiente:

- Usuarios del dominio. También busca palabras clave en Description y escribe la información en un csv por separado.
- Usuarios en grupos de usuarios privados (DA, EA, FA).
- Los usuarios con contraseñas que no expiran.
- Cuentas de usuario que se han bloqueado o deshabilitado.
- Cuentas de máquina con contraseñas de más de 45 días.
- Equipos de dominio.
- Controladores de dominio.
- Sitios y subredes.
- SPN e incluye un flag en el csv si es domain admin
- Relaciones de confianza del dominio.
- Grupos de dominio.
- OU de dominio.
- Política de cuentas del dominio.
- Usuarios delegados del dominio.
- GPO de dominio.
- Roles de dominio FSMO.
- Contraseñas LAPS.
- Contraseñas GPP. En Windows, se establece el mapeo Q por defecto. Si se usa, se intentará con otro mapping hasta que lo consiga R, S, etc. ... En Linux, se utiliza /mnt/goddi.

Instalación

Usa los ejecutables en la sección de releases. Si quieres compilarlo tu mismo, asegúrate de que el entorno go esté configurado de acuerdo con el documento de configuración correspondiente. Goddi también usa el siguiente paquete.

go get gopkg.in/ldap.v2

Windows

Probado en Windows 10 y 8.1 (go1.10 windows/amd64).

Linux

Probado en Kali Linux (go1.10 linux/amd64).

Se debe instalar umount, mount y cifs-utils para mapear un recurso compartido para GetGPP:

apt-get update
apt-get install -y mount cifs-utils

Asegúrate de que no haya nada montado en /mnt/goddi y de ejecutarlo con sudo.

Uso

Cuando se ejecuta, usará TLS (tls.Client method) de forma predeterminada sobre 636. En Linux, hay que asegurarse de ejecutarlo con sudo.

- username: usuario objetivo. Parámetro requerido.
- password: contraseña del usuario de destino. Parámetro requerido.
- domain: nombre de dominio completo. Parámetro requerido.
- dc: DC al objetivo. Puede ser una IP o un nombre de host completo. Parámetro requerido.
- startTLS: se usa para StartTLS sobre 386.
- unsafe: para una conexión de texto claro.

PS C:\Users\Administrator\Desktop> .\godditest-windows-amd64.exe -username=testuser -password="testpass!" -domain="test.local" -dc="dc.test.local" -unsafe
[i] Begin PLAINTEXT LDAP connection to 'dc.test.local'...
[i] PLAINTEXT LDAP connection to 'dc.test.local' successful...
[i] Begin BIND...
[i] BIND with 'testuser' successful...
[i] Begin dump domain info...
[i] Domain Trusts: 1 found
[i] Domain Controllers: 1 found
[i] Users: 12 found
        [*] Warning: keyword 'pass' found!
        [*] Warning: keyword 'fall' found!
[i] Domain Admins: 4 users found
[i] Enterprise Admins: 1 users found
[i] Forest Admins: 0 users found
[i] Locked Users: 0 found
[i] Disabled Users: 2 found
[i] Groups: 45 found
[i] Domain Sites: 1 found
[i] Domain Subnets: 0 found
[i] Domain Computers: 17 found
[i] Deligated Users: 0 found
[i] Users with passwords not set to expire: 6 found
[i] Machine Accounts with passwords older than 45 days: 18 found
[i] Domain OUs: 8 found
[i] Domain Account Policy found
[i] Domain GPOs: 7 found
[i] FSMO Roles: 3 found
[i] SPNs: 122 found
[i] LAPS passwords: 0 found
[i] GPP enumeration starting. This can take a bit...
[i] GPP passwords: 7 found
[i] CSVs written to 'csv' directory in C:\Users\Administrator\Desktop
[i] Execution took 1.4217256s...
[i] Exiting...


Fuente: Dumping Active Directory Domain Info – in Go!
Proyecto: https://github.com/NetSPI/goddi

Comentarios