Reconocimiento Interno
El reconocimiento interno es una fase crucial en el proceso de comprometer un entorno de Active Directory (AD). Esta etapa implica la recopilación de información detallada sobre la infraestructura interna del AD, incluyendo usuarios, grupos, políticas y configuraciones. A continuación, se detallan las técnicas y herramientas utilizadas para llevar a cabo el reconocimiento interno, junto con ejemplos prácticos de explotación.
1. Enumeración utilizando capacidades integradas
PowerShell
PowerShell es una herramienta poderosa para la enumeración en entornos de AD. Utilizando cmdlets específicos, se puede obtener información detallada sobre el dominio.
Ejemplo de enumeración de usuarios:
Get-ADUser -Filter * -Properties Name, EmailAddress, Department | Select-Object Name, EmailAddress, Department
Este comando obtiene el nombre, correo electrónico y departamento de todos los usuarios del dominio.
Ejemplo de enumeración de grupos:
Get-ADGroup -Filter * | ForEach-Object {
$group = $_
Get-ADGroupMember -Identity $group | ForEach-Object {
[PSCustomObject]@{
GroupName = $group.Name
MemberName = $_.Name
MemberType = $_.objectClass
}
}
}
Este script enumera todos los grupos y lista sus miembros, indicando si son usuarios o grupos anidados.
WMI (Windows Management Instrumentation)
WMI es otra herramienta integrada que permite la enumeración de objetos en AD.
Ejemplo de enumeración del dominio:
Get-WmiObject -Namespace root\directory\ldap -Class ds_domain | select ds_dc, ds_distinguishedname, pscomputername
Este comando obtiene información sobre el dominio actual.
Comandos net.exe
Los comandos nativos de Windows como "net" también pueden ser utilizados para la enumeración.
Ejemplo de enumeración de usuarios:
net user /domain
Este comando lista todos los usuarios del dominio actual.
2. Herramientas comunes de enumeración
PowerView
PowerView es una herramienta de enumeración avanzada que forma parte del framework PowerSploit.
Ejemplo de enumeración de usuarios con sesiones activas:
Find-DomainUserLocation
Este comando identifica usuarios con sesiones activas en equipos del dominio.
Ejemplo de búsqueda de usuarios con privilegios elevados:
Get-DomainUser -AdminCount | Select-Object samaccountname, memberof
Este comando lista usuarios que tienen o han tenido privilegios administrativos, mostrando sus nombres de cuenta y grupos a los que pertenecen.
BloodHound
BloodHound utiliza la teoría de grafos para encontrar relaciones entre objetos en AD que pueden ser explotadas.
Ejemplo de colección de datos con SharpHound:
SharpHound.exe -c All
Este comando recopila información completa sobre el dominio y la estructura de AD.
3. Enumeración de Unidades Organizativas (OUs)
Las Unidades Organizativas (OUs) pueden proporcionar información valiosa sobre la estructura jerárquica de la organización.
Ejemplo de enumeración de OUs y usuarios dentro de ellas:
Get-ADOrganizationalUnit -Filter * | ForEach-Object {
$ou = $_
Get-ADUser -Filter * -SearchBase $ou.DistinguishedName | ForEach-Object {
[PSCustomObject]@{
OUName = $ou.Name
UserName = $_.Name
}
}
}
Este script enumera todas las OUs y lista los usuarios contenidos en cada una de ellas.
4. Enumeración de grupos anidados
Los grupos anidados pueden ocultar relaciones de privilegios importantes.
Ejemplo de enumeración de grupos anidados:
function Get-NestedGroupMembership {
param (
[string]$GroupName
)
$members = Get-ADGroupMember -Identity $GroupName
foreach ($member in $members) {
if ($member.objectClass -eq "group") {
Write-Output "Group: $($member.name)"
Get-NestedGroupMembership -GroupName $member.name
} else {
Write-Output "User: $($member.name)"
}
}
}
Get-NestedGroupMembership -GroupName "Domain Admins"
Esta función recursiva enumera todos los miembros de un grupo, incluyendo los miembros de grupos anidados, mostrando la estructura jerárquica completa.
Conclusión
El reconocimiento interno es una etapa esencial para comprender la estructura y las vulnerabilidades de un entorno de Active Directory. Utilizando herramientas integradas y especializadas, los atacantes pueden recopilar información detallada que les permitirá planificar y ejecutar ataques más sofisticados. Es crucial que los defensores implementen medidas de monitoreo y detección para identificar y mitigar estas actividades de reconocimiento.