
AzureRT - Ein Powershell-Modul, das verschiedene Azure Red Team-Taktiken implementiert.
Powershell-Modul, das verschiedene Cmdlets zur Interaktion mit Azure und Azure AD aus einer offensiven Perspektive implementiert.
Nützliche Hilfsprogramme für die tokenbasierte Authentifizierung, den Wechsel zwischen den Schnittstellen von Az, AzureAD und az cli, sowie einfach zu verwendende vorgefertigte Angriffe wie die ausführbare Runbook-basierte Befehlsausführung und mehr.
Dieses Toolkit enthält viele verschiedene Cmdlets. In diesem Abschnitt werden die wichtigsten und nützlichsten hervorgehoben.
Typischer Red Team / Audit-Workflow, der mit gestohlenen Anmeldeinformationen beginnt, kann wie folgt zusammengefasst werden:
Credentials Stolen -> Authenticate to Azure/AzureAD -> find whether they're valid -> find out what you can do with them
Die folgenden Cmdlets sind genau dafür geeignet, Ihnen bei dieser Sequenz zu helfen:
Connect-ART - Bietet verschiedene Möglichkeiten zur Authentifizierung bei Azure - Anmeldeinformationen, PSCredential, Token
Connect-ARTAD - Bietet verschiedene Möglichkeiten zur Authentifizierung bei Azure AD - Anmeldeinformationen, PSCredential, Token
Get-ARTWhoami - Wenn Sie sich authentifizieren - führen Sie dies aus, um whoami zu überprüfen und Ihren Zugriff zu validieren
Get-ARTAccess - Wenn Sie dann wissen, dass Sie Zugriff haben, finden Sie heraus, was Sie tun können und was möglich ist, indem Sie eine Azure-Situationsbewusstsein durchführen
Get-ARTADAccess - Ähnlich können Sie herausfinden, was Sie im Bereich Azure AD tun können.
Die in diesem Modul implementierten Cmdlets waren in den folgenden Anwendungs- und Angriffsszenarien hilfreich:
Az zu AzureAD und zurück.Az, AzureAD, Microsoft.Graph und az cliDieses Modul setzt vorinstallierte Powershell-Module Az und AzureAD voraus. Microsoft.Graph und az cli sind optional, aber dennoch sehr nützlich. Bevor man mit Azure herumzubasteln beginnt, können die folgenden Befehle verwendet werden, um die offensive Umgebung vorzubereiten:
Install-Module Az -Force -Confirm -AllowClobber -Scope CurrentUser
Install-Module AzureAD -Force -Confirm -AllowClobber -Scope CurrentUser
Install-Module Microsoft.Graph -Force -Confirm -AllowClobber -Scope CurrentUser # OPTIONAL
Install-Module MSOnline -Force -Confirm -AllowClobber -Scope CurrentUser # OPTIONAL
Install-Module AzureADPreview -Force -Confirm -AllowClobber -Scope CurrentUser # OPTIONAL
Install-Module AADInternals -Force -Confirm -AllowClobber -Scope CurrentUser # OPTIONAL
Import-Module Az
Import-Module AzureAD
Obwohl nur die ersten beiden Module von AzureRT benötigt werden, ist es gut, auch andere vorinstalliert zu haben.
Um dieses Modul dann zu laden, geben Sie einfach ein:
PS> . .\AzureRT.ps1
Und schon kann es losgehen.
Oder Sie lassen AzureRT alle Abhängigkeiten installieren und importieren:
PS> . .\AzureRT.ps1
PS> Import-ARTModules
Das Modul wird nach und nach weitere Werkzeuge und Hilfsprogramme erhalten, die naturgemäß in aufeinanderfolgende Phasen der Angriffskette (Kill Chain) eingeteilt werden.
Jedes Cmdlet verfügt über eine hilfreiche Hilfemeldung mit Parametern, Beschreibung und Beispielnutzung:
PS C:\> Get-Help Connect-ART
Derzeit sind folgende Hilfsprogramme enthalten:
Get-ARTWhoami - Zeigt unseren Authentifizierungskontext auf den Schnittstellen Azure, AzureAD, Microsoft.Graph und AZ CLI an und validiert ihn.
Connect-ART - Ruft Connect-AzAccount auf, um die aktuelle Sitzung über ein bereitgestelltes Zugriffstoken oder Anmeldeinformationen beim Azure-Portal zu authentifizieren. Überspringt die Last der Angabe von Mandanten-ID und Konto-ID, indem diese automatisch aus dem bereitgestellten Token extrahiert werden.
Connect-ARTAD - Ruft Connect-AzureAD (und optional Connect-MgGraph) auf, um die aktuelle Sitzung über ein bereitgestelltes Zugriffstoken oder Anmeldeinformationen beim Azure Active Directory zu authentifizieren. Überspringt die Last der Angabe von Mandanten-ID und Konto-ID, indem diese automatisch aus dem bereitgestellten Token extrahiert werden.
Connect-ARTADServicePrincipal - Ruft auf, um die aktuelle Sitzung über ein bereitgestelltes Zugriffstoken oder Anmeldeinformationen beim Azure-Portal zu authentifizieren. Überspringt die Last der Angabe von Mandanten-ID und Konto-ID, indem diese automatisch aus dem bereitgestellten Token extrahiert werden. Anschließend wird ein selbstsigniertes PFX-Zertifikat erstellt und dem Dienstprinzipal zur Authentifizierung zugeordnet. Danach authentifiziert es sich als dieser Dienstprinzipal bei AzureAD und hebt die Zuordnung des Zertifikats auf, um eine Bereinigung durchzuführen.
Get-ARTAccess - Führt Azure-Situationsbewusstsein durch.
Get-ARTADAccess - Führt Azure AD-Situationsbewusstsein durch.
Get-ARTTenants - Listet die für den aktuell authentifizierten Benutzer (oder denjenigen, der auf dem bereitgestellten Zugriffstoken basiert) verfügbaren Mandanten auf.
Get-ARTDangerousPermissions - Analysiert zugängliche Azure-Ressourcen und die damit verbundenen Berechtigungen des Benutzers, um alle gefährlichen zu finden, die von einem Angreifer missbraucht werden könnten.
Get-ARTResource - Authentifiziert sich mit dem bereitgestellten Zugriffstoken bei https://management.azure.com und ruft zugängliche Ressourcen und Berechtigungen ab, die der Token-Besitzer gegen sie hat.
Get-ARTRoleAssignment - Zeigt eine etwas besser lesbare Darstellung der zugewiesenen Azure-RBAC-Rollen für den aktuell verwendeten Prinzipal an.
Get-ARTADRoleAssignment - Zeigt Azure AD-Rollenzuweisungen für einen aktuellen Benutzer oder für alle Azure AD-Benutzer an.
Get-ARTADScopedRoleAssignment - Zeigt bereichsbezogene Azure AD-Rollenzuweisungen für einen aktuellen Benutzer oder für alle Azure AD-Benutzer an, die administrativen Einheiten zugeordnet sind.
Add-ARTADGuestUser - Sendet eine Einladungs-E-Mail für Azure AD-Gastbenutzer, die es einem externen Angreifer ermöglicht, den Zugriff auf den AAD-Mandanten zu erweitern, und gibt die Einlösungs-URL für die Einladung zurück, mit der die Einladung einfach angenommen werden kann.
Set-ARTADUserPassword - Missbraucht die Rollenzuweisung 'Authentifizierungsadministrator', um das Passwort anderer Nicht-Administrator-Benutzer zurückzusetzen.
Add-ARTUserToGroup - Fügt einen angegebenen Azure AD-Benutzer zur angegebenen Azure AD-Gruppe hinzu.
Add-ARTUserToRole - Fügt einen angegebenen Azure AD-Benutzer zur angegebenen Azure AD-Rolle hinzu.
Add-ARTADAppSecret - Fügt einen Client-Geheimnis zu den Azure AD-Anwendungen hinzu. Verfasst von Nikhil Mittal, @nikhil_mitt
Invoke-ARTAutomationRunbook - Erstellt unter dem angegebenen Automation-Konto und gegen die ausgewählte Worker-Gruppe ein Automation-Runbook. Dieses Runbook enthält PowerShell-Befehle, die auf allen betroffenen Azure-VMs ausgeführt werden.
Invoke-ARTRunCommand - Missbraucht die Berechtigung virtualMachines/runCommand gegen eine bestimmte Azure-VM, um benutzerdefinierte PowerShell-Befehle auszuführen.
Update-ARTAzVMUserData - Ändert das Azure VM-Benutzerdaten-Skript durch einen direkten API-Aufruf.
Invoke-ARTCustomScriptExtension - Erstellt eine neue oder ändert eine Azure VM Custom Script Extension, was zu Remote-Codeausführung führt.
Get-ARTTenantID - Ruft die Mandanten-ID des aktuellen Benutzers oder die Mandanten-ID basierend auf dem angegebenen Domänennamen ab.
Get-ARTPRTToken - Ruft den Wert des PRT (Primary Refresh Token) des aktuellen Benutzers mit Dirk-Jan Mollema's ROADtoken ab.
Get-ARTPRTNonce - Ruft den Nonce-Wert des PRT (Primary Refresh Token) des aktuellen Benutzers ab.
Get-ARTUserId - Ermittelt den aktuellen Benutzer oder den im Parameter ObjectId angegebenen Benutzer über das Az-Modul.
Get-ARTSubscriptionId - Hilfsprogramm, das die aktuelle Abonnement-ID sammelt.
Parse-JWTtokenRT - Analysiert ein eingegebenes JWT-Token und gibt es schön formatiert aus.
Invoke-ARTGETRequest - Nimmt ein Zugriffstoken entgegen und führt einen GET-REST-API-Aufruf gegen einen angegebenen URI aus. Es überprüft auch, ob das bereitgestellte Token die erforderliche Zielgruppe (Audience) gesetzt hat.
Import-ARTModules - Installiert und importiert erforderliche und optionale PowerShell-Module für Azure Red Team-Aktivitäten
Dieses und andere Projekte sind das Ergebnis schlafloser Nächte und harter Arbeit. Wenn Ihnen gefällt, was ich tue, und Sie schätzen, dass ich immer etwas an die Community zurückgebe, dann überlege, mir einen Kaffee zu kaufen (oder besser ein Bier), um einfach Danke zu sagen! 💪
Mariusz Banach / mgeeky, (@mariuszbit)
<mb [at] binary-offensive.com>
Connect-AzAccountGet-ARTAccessTokenAzCli - Bezieht ein Zugriffstoken von der Azure CLI über az account get-access-token
Get-ARTAccessTokenAz - Bezieht ein Zugriffstoken aus dem Az-Modul über Get-AzAccessToken .
Get-ARTAccessTokenAzureAD - Holt ein Zugriffstoken von Azure Active Directory. Verfasst von Simon Wahlin, @SimonWahlin
Get-ARTAccessTokenAzureADCached - Versucht, ein lokal zwischengespeichertes AzureAD-Zugriffstoken (https://graph.microsoft.com) abzurufen, das nach dem Aufruf von Connect-AzureAD gespeichert wurde.
Remove-ARTServicePrincipalKey - Führt Bereinigungsaktionen nach dem Ausführen von Connect-ARTADServicePrincipal durch
Get-ARTRolePermissions - Zeigt alle gewährten Berechtigungen für eine bestimmte Azure-RBAC-Rolle an.
Get-ARTADRolePermissions - Zeigt alle gewährten Berechtigungen für eine bestimmte Azure AD-Rolle an.
Get-ARTADDynamicGroups - Zeigt Azure AD-Dynamische Gruppen zusammen mit ihren Benutzermitgliedschaftsregeln, der Mitgliederanzahl und dem aktuellen Benutzermitgliedschaftsstatus an.
Get-ARTApplication - Listet Azure AD-Unternehmensanwendungen auf, deren Besitzer der aktuelle Benutzer ist (oder alle vorhandenen, wenn -All verwendet wird), zusammen mit ihren Besitzern und Dienstprinzipalen.
Get-ARTApplicationProxy - Listet Azure AD-Unternehmensanwendungen auf, die einen Anwendungsproxy eingerichtet haben.
Get-ARTApplicationProxyPrincipals - Zeigt Benutzer und Gruppen an, die der angegebenen Anwendungsproxy-Anwendung zugewiesen sind.
Get-ARTStorageAccountKeys - Zeigt alle verfügbaren Speicherkontoschlüssel an.
Get-ARTKeyVaultSecrets - Listet alle verfügbaren Azure Key Vault-Geheimnisse auf. Dieses Cmdlet setzt voraus, dass der anfordernde Benutzer mit einem KeyVaultAccessToken (begrenzt auf https://vault.azure.net) mit Azure AD verbunden ist und die Rolle 'Key Vault Secrets User' (oder eine entsprechende) zugewiesen hat.
Get-ARTAutomationCredentials - Listet alle verfügbaren Azure Automation-Kontoanmeldeinformationen auf und versucht, ihre Werte abzurufen (kann keine Werte abrufen!).
Get-ARTAutomationRunbookCode - Ruft die REST-API-Methode auf, um den Quellcode des angegebenen Runbooks abzurufen.
Get-ARTAzVMPublicIP - Ruft die öffentliche IP-Adresse einer Azure-VM ab.
Get-ARTResourceGroupDeploymentTemplate - Zeigt das JSON der Ressourcengruppen-Bereitstellungsvorlage basierend auf Eingabeparametern an oder ruft alle auf einmal ab.
Get-ARTAzVMUserDataFromInside - Ruft Azure VM-Benutzerdaten von innerhalb einer VM ab, indem es auf den Instanzmetadaten-Endpunkt zugreift.