Enumeración de usuarios, grupos y computadoras

Linux/Unix

CrackMapExec

Enumeración de usuarios.

crackmapexec smb <IP-address-DC> -u <user> -p <password> --users

Enumeración de grupos.

crackmapexec smb <IP-address-DC> -u <user> -p <password> --groups

Enumeración de usuarios conectados.

crackmapexec smb <IP-address-DC> -u <user> -p <password> --loggedon-users

LDAPDomainDump

mkdir ldapdomaindump
ldapdomaindump <IP-address-DC> -u "<ACME.LOCAL>/<user>" -p "<password>" --no-json --no-grep -o ldapdomaindump

rpcclient

rpcclient -U <user>%<password> <IP-address-DC>

# Consultar información del dominio
querydominfo
# Consultar información de visualización del dominio
querydispinfo
# Obtener información de política de contraseñas del dominio
getdompwinfo
# Enumerar usuarios
enumdomusers
# Enumerar grupos
enumdomgroups
# Obtener información de un usuario
queryuser <rid-user>
# Obtener información de un grupo
querygroup <rid-group>
# Obtener grupos de un usuario
queryusergroups <rid-user>
# Obtener miembros de un grupo
querygroupmem <rid-group>

windapsearch

Enumerar miembros del grupo "domain admins".

windapsearch.py --dc-ip <IP-address-DC> -u <user>@<ACME.LOCAL> -p <password> --da

Buscar usuarios privilegiados.

windapsearch.py --dc-ip <IP-address-DC> -u <user>@<ACME.LOCAL> -p <password> --PU

Windows

Comandos nativos

Enumeración de usuarios.

# Enumeración de usuarios
net user /domain
dsquery user
# Obtener información de un usuario
net user "<user-name>" /domain

Enumeración de grupos.

# Enumeración de grupos
net group /domain
dsquery group
# Obtener miembros de un grupo
net group "<group-name>" /domain
net group "Domain Admins" /domain

Módulo ActiveDirectory PowerShell

Enumeración de usuarios.

# Enumeración de usuarios del dominio actual
Get-ADUser -Filter *
Get-ADUser -Filter * | Select SamAccountName, Name
Get-ADUser -Filter * | Select-Object -ExpandProperty SamAccountName > users.txt
# Obtener usuarios de un dominio
Get-DomainUser -Domain <ACME.LOCAL> | Select SamAccountName
# Obtener información de un usuario
Get-ADUser -Identity "<user-name>"
# Obtener fecha y hora en que se cambió por última vez la contraseña de cada usuario
Get-ADUser -Filter * -Properties * | select name,@{expression={[datetime]::fromFileTime($_.pwdlastset)}}
# Obtener cuentas con Service Principal Name (SPN)
Get-ADUser -Filter {ServicePrincipalName -ne "$null"} -Properties ServicePrincipalName

Enumeración de grupos.

# Enumeración de grupos
Get-ADGroup -Filter *
Get-ADGroup -Filter * | Select Name
# Obtener todos los grupos que contengan la palabra "admin" en el nombre del grupo
Get-ADGroup -Filter 'Name -like "*admin*"' | Select Name
# Obtener información de un grupo
Get-ADGroup -Identity "<group-name>"
# Obtener miembros de un grupo
Get-ADGroupMember -Identity "<group-name>"
Get-ADGroupMember -Identity "Domain Admins"

Enumeración de computadoras.

# Enumeración de computadoras
Get-ADComputer -Filter * | Select Name
Get-ADComputer -Filter * -Properties *
# Filtro de computadoras por sistema operativo
Get-ADComputer -Filter 'OperatingSystem -like "*<operating-system>*"' -Properties OperatingSystem | Select Name, OperatingSystem
# Obtención de computadoras activos 
Get-ADComputer -Filter * -Properties DNSHostName | %{Test-Connection -Count 1 -ComputerName $_.DNSHostName}

PowerView

Enumeración de usuarios.

# Enumeración de usuarios
Get-DomainUser
Get-DomainUser | Select SamAccountName, LastLogonTimestamp | Sort-Object SamAccountName
Get-DomainUser | Select -ExpandProperty SamAccountName | Out-File -FilePath .\domain-users.txt
# Obtener información de un usuario
Get-DomainUser -Identity "<user-name>"
Get-DomainUser -Identity "<user-name>" | Select SamAccountName, ObjectsId, MemberOf, UserAccountControl | fl
# Obtener fecha y hora en que se cambió por última vez la contraseña de cada usuario
Get-DomainUser | Select SamAccountName, PWDLastSet | Sort-Object PWDLastSet
# Obtener cantidad de veces que el usuario intentó iniciar sesión con una contraseña incorrecta
Get-DomainUser | Select SamAccountName, BadPWDCount | Sort-Object BadPWDCount -Descending
# Obtener el número de veces que cada cuenta ha iniciado sesión correctamente
Get-DomainUser | Select SamAccountName, LogonCount | Sort-Object LogonCount -Descending
# Obtener cuentas con Service Principal Name (SPN)
Get-DomainUser -SPN -Properties SamAccountName, ServicePrincipalName

Enumeración de grupos.

# Enumeración de grupos
Get-DomainGroup
Get-DomainGroup | Select SamAccountName | Sort-Object SamAccountName
# Obtener todos los grupos que contengan la palabra "admin" en el nombre del grupo
Get-DomainGroup "*admin*"
# Obtener información de un grupo
Get-DomainGroup -Identity "<group-name>"
# Obtener miembros de un grupo
Get-DomainGroupMember -Identity "<group-name>"
Get-DomainGroupMember -Identity "Domain Admins"
Get-DomainGroupMember -Identity "Enterprise Admins" -Domain <ACME.LOCAL>
# Obtener miembros de un grupo recursivamente
Get-DomainGroupMember -Identity "<group-name>" -Recurse

Enumeración de computadoras.

# Enumeración de computadoras
Get-DomainComputer
Get-DomainComputer | Select Name, DNSHostName, OperatingSystem | Sort-Object Name
# Filtro de computadoras por sistema operativo
Get-DomainComputer -OperatingSystem "*<operating-system>*" | Select Name, OperatingSystem | Sort-Object Name
# Obtención de computadoras activos
Get-DomainComputer -Ping | Select Name, DNSHostName | Sort-Object Name

SharpView

Enumeración de usuarios.

# Enumeración de usuarios
.\SharpView.exe Get-DomainUser *
# Obtener información de un usuario
.\SharpView.exe Get-DomainUser -Identity "<user-name>"
# Obtener cuentas con Service Principal Name (SPN)
.\SharpView.exe Get-DomainUser -SPN -Properties samaccountname,ServicePrincipalName

Enumeración de grupos.

# Enumeración de grupos
.\SharpView.exe Get-DomainGroup *
# Obtener información de un grupo
.\SharpView.exe Get-DomainGroup -Identity "<group-name>"
# Obtener miembros de un grupo
.\SharpView.exe Get-DomainGroupMember -Identity "<group-name>"
.\SharpView.exe Get-DomainGroupMember -Identity "Domain Admins"
# Obtener miembros de un grupo recursivamente
.\SharpView.exe Get-DomainGroupMember -Identity "<group-name>" -Recurse

Última actualización