🏢 Pentesting en Infraestructuras Cloud🔷 AzureAzureAD Permite administrar Azure AD. Los módulos de PowerShell de Azure AD y MSOnline están en desuso a partir del 30 de marzo de 2024. La opción alternativa y actualizada es Microsoft Graph PowerShell.
Instalación
AzureAD
Copiar Install-Module AzureAD
o
Import-Module C:\Pentest\Tools\AzureAD\AzureAD.psd1
AzureADPreview
Copiar Install-Module AzureADPreview
Conexión
Una vez se hayan obtenido credenciales válidas, se podría utilizar la herramienta de AzureAD para conectarse al Tenant y enumerar información haciendo uso de la sesión del usuario.
Copiar Account Environment TenantId TenantDomain AccountType
------- ----------- -------- ------------ -----------
xtormin@xtormincorp.com AzureCloud 11081700-e4e1-4313-bf78-41fae513bbe6 xtormincorp.com User
Línea de comandos
Copiar $passwd = ConvertTo-SecureString "<password>" -AsPlainText -Force
$creds = New-Object System.Management.Automation.PSCredential("<email>", $passwd)
Connect-AzureAD -Credential $creds
Token
Conexión con información del access token, tenantId y accountId:
Copiar Connect-AzureAD -AadAccessToken <JWT> -TenantId "1d50cb29-5f5b-48a4-87ce-fe75a941adb6" -AccountId "f66e433c-bd01-4b0b-b3b7-7cd749fd45f3"
Información general
Sesión actual
Copiar Get-AzureADCurrentSessionInfo
Copiar Account Environment TenantId TenantDomain AccountType
------- ----------- -------- ------------ -----------
xtormin@xtormincorp.com AzureCloud 11081700-e4e1-4313-bf78-41fae513bbe6 xtormincorp.com User
Tenant
Copiar Get-AzureADTenantDetail
Copiar ObjectId DisplayName VerifiedDomain
-------- ----------- --------------
11081700-e4e1-4313-bf78-41fae513bbe6 Xtormin Corp. xtormincorp.com
Usuarios
Copiar Get-AzureADUser -All $true
Copiar ObjectId DisplayName UserPrincipalName UserType
-------- ----------- ----------------- --------
04ee91f2-4cd2-456c-b546-9f6401b08de4 Jennifer Torres xtormin@xtormincorp.com Member
[...]
Copiar Get-AzureADUser -ObjectId xtormin@xtormincorp.com
Buscar todos los usuarios que contengan la cadena "admin" en el DisplayName :
Copiar Get-AzureADUser -All $true | ?{$_.Displayname -match "admin"}
Obtener todos los atributos de un usuario:
Copiar Get-AzureADUser -ObjectId xtormin@xtormincorp.com | fl *
Listado de atributos del usuario:
Copiar Get-AzureADUser -ObjectId xtormin@xtormincorp.com | %{$_.PSObject.Properties.Name}
Buscar los atributos de los usuarios que contengan la cadena "password":
Copiar Get-AzureADUser -All $true | %{$Properties = $_;$Properties.PSObject.Properties.Name | % {if ($Properties.$_ -match 'password') {"$($Properties.UserPrincipalName) - $_ - $($Properties.$_)"}}}
Todos los usuarios que se han sincronizado desde un AD on-premise: Es útil para obtener la lista de usuarios principales de la organización ya que no muestra los usuarios externos.
Copiar Get-AzureADUser -All $true | ?{$_.OnPremisesSecurityIdentifier -ne $null}
Todos los usuarios de AzureAD: Es útil para obtener una lista con los usuarios creados en AzureAD y obtener los usuarios externos.
Copiar Get-AzureADUser -All $true | ?{$_.OnPremisesSecurityIdentifier -eq $null}
Lista de todos los objetos creados por los todos usuarios:
Copiar Get-AzureADUser | Get-AzureADUserCreatedObject
Lista de todos los objetos creados por un usuario:
Copiar Get-AzureADUserOwnedObject -ObjectId
Grupos
Copiar Get-AzureADGroup -All $true
Detalles de un grupo en concreto:
Copiar Get-AzureADGroup -ObjectId 7c63dd47-91ed-45c4-9081-427ad616347f
Buscar grupos que empiecen por una cadena (por ejemplo: admin):
Copiar Get-AzureADGroup -SearchString "admin" | fl *
Buscar grupos que contengan una cadena (por ejemplo: admin):
Copiar Get-AzureADGroup -All $true |?{$_.Displayname -match "admin"}
Buscar grupos que permitan "DynamicMembership":
Copiar Get-AzureADMSGroup | ?{$_.GroupTypes -eq 'DynamicMembership'}
Todos los grupos que se han sincronizado desde on-prem:
Copiar Get-AzureADGroup -All $true | ?{$_.OnPremisesSecurityIdentifier -ne $null}
Todos los grupos de AzureAD:
Copiar Get-AzureADGroup -All $true | ?{$_.OnPremisesSecurityIdentifier -eq $null}
Obtener los miembros de un grupo:
Copiar Get-AzureADGroupMember -ObjectId 7c63dd47-98ed-45c4-9081-427ad616347f
Obtener grupos y roles donde el usuario es miembro:
Copiar Get-AzureADUser -SearchString 'test' | Get-AzureADUserMembership
Get-AzureADUserMembership -ObjectId xtormin@xtormincorp.onmicrosoft.com
Roles
Obtener todas las plantillas de roles disponibles:
Copiar Get-AzureADDirectoryroleTemplate
Obtener todos los roles habilitados (han sido asignados al menos a un usuario):
Copiar Get-AzureADDirectoryRole
Obtener usuarios asignados a un rol:
Copiar Get-AzureADDirectoryRole -Filter "DisplayName eq 'Global Administrator'" | Get-AzureADDirectoryRoleMember
Dispositivos
Obtener todos los dispositivos registrados y unidos a azure:
Copiar Get-AzureADDevice -All $true | fl *
Obtener el objeto de configuración de dispositivos:
Copiar Get-AzureADDeviceConfiguration | fl *
Obtener todos los dispositivos activos:
Copiar Get-AzureADDevice -All $true | ?{$_.ApproximateLastLogonTimeStamp -ne $null}
Obtener los propietarios registrados:
Copiar Get-AzureADDevice -All $true | Get-AzureADDeviceRegisteredOwner
Get-AzureADDevice -All $true | %{if($user=Get-AzureADDeviceRegisteredOwner -ObjectId $_.ObjectID){$_;$user.UserPrincipalName;"`n"}}
Obtener los usuarios registrados:
Copiar Get-AzureADDevice -All $true | Get-AzureADDeviceRegisteredUser
Get-AzureADDevice -All $true | %{if($user=Get-AzureADDeviceRegisteredUser -ObjectId $_.ObjectID){$_;$user.UserPrincipalName;"`n"}}
Dispositivos propiedad de un usuario:
Copiar Get-AzureADUserOwnedDevice -ObjectId xtormin@xtormincorp.onmicrosoft.com
Dispositivos registrados por un usuario:
Copiar Get-AzureADUserRegisteredDevice -ObjectId xtormin@xtormincorp.onmicrosoft.com
Dispositivos administrados por Intune:
Copiar Get-AzureADDevice -All $true | ?{$_.IsCompliant -eq "True"}
Aplicaciones
Obtener todos los objetos de aplicaciones registradas en el tenant actual:
Copiar Get-AzureADApplication -All $true
Obtener los detalles de una aplicación:
Copiar Get-AzureADApplication -ObjectId fa656d62-b53a-431d-b40c-b0a8757892d2 | fl *
Obtener una aplicación según su "Display Name":
Copiar Get-AzureADApplication -All $true | ?{$_.DisplayName -match "app"}
Obtener las aplicaciones que cuentan con contraseña:
Copiar Get-AzureADApplication -All $true | %{if(Get-AzureADApplicationPasswordCredential -ObjectID $_.ObjectID){$_}}
Obtener el owner de una aplicación:
Copiar Get-AzureADApplication -ObjectId fa656d61-b55a-431d-b44c-b0a8658897d2 | Get-AzureADApplicationOwner |fl *
Obtener las aplicaciones donde el usuario tiene un rol asignado:
Copiar Get-AzureADUser -ObjectId xtormin@xtormincorp.onmicrosoft.com | Get-AzureADUserAppRoleAssignment | fl *
Obtener las aplicaciones donde un grupo tiene un rol asignado:
Copiar Get-AzureADGroup -ObjectId 54787e13-4374-4b05-85a1-5cfe4b3ddc98 | Get-AzureADGroupAppRoleAssignment | fl *
Service Principals
"Service principal" es la representación local para una aplicación en un tenant específico y es el objeto de seguridad que tiene privilegios. Se trata de la «cuenta servicio».
Obtener todos los Service Principals :
Copiar Get-AzureADServicePrincipal -All $true
Obtener todos los detalles de un Service Principal :
Copiar Get-AzureADServicePrincipal -ObjectId ff2612c5-7168-4fed-b571-2f7c5c31b066 | fl *
Obtener todos los detalles según su Display Name :
Copiar Get-AzureADServicePrincipal -All $true | ?{$_.DisplayName -match "app"}
Obtener todos los Service Principals que requieren contraseña:
Copiar Get-AzureADServicePrincipal -All $true | %{if(Get-AzureADServicePrincipalKeyCredential -ObjectID $_.ObjectID){$_}}
Obtener propietario de un Service Principal:
Copiar Get-AzureADServicePrincipal -ObjectId 60a70e2b-c1bd-453b-928e-f7398ebe3660 | Get-AzureADServicePrincipalOwner |fl *
Obtener los objetos que son propietarios de un Service Principal:
Copiar Get-AzureADServicePrincipal -ObjectId ff1601c6-7368-7fed-b672-2f7c5c31b066 | Get-AzureADServicePrincipalOwnedObject
Objetos creados por un Service Principal:
Copiar Get-AzureADServicePrincipal -ObjectId f5ac063d-7ddc-3e7c-aabc-f135b00a972c | Get-AzureADServicePrincipalCreatedObject
Obtener grupo y roles de un Service Principal:
Copiar Get-AzureADServicePrincipal -ObjectId f4ac083d-7ddc-3e7c-aabc-f231b00a972c | Get-AzureADServicePrincipalMembership |fl *
Última actualización hace 8 meses