
Sammlung von Angriffswerkzeugen gegen Microsoft Azure, geschrieben in Python, um plattformunabhängig zu sein. Die aktuelle Liste der Werkzeuge finden Sie unten mit einer kurzen Beschreibung ihrer Funktionalität.
./Device_Code/device_code_easy_mode.py
- Generiert einen Code, der vom Zielbenutzer eingegeben werden muss
- Kann für die allgemeine Token-Generierung oder während einer Phishing-/Social-Engineering-Kampagne verwendet werden.
./Access_Tokens/token_juggle.py
- Nimmt auf verschiedene Weise einen Refresh-Token entgegen und ruft einen neuen Refresh-Token sowie einen Zugriffstoken für die angegebene Ressource ab
./Access_Tokens/read_token.py
- Nimmt einen Zugriffstoken entgegen, analysiert die enthaltenen Anspruchsinformationen, prüft auf Ablauf und versucht, die Signatur zu validieren
./Outsider_Recon/outsider_recon.py
- Nimmt eine Domain entgegen und sammelt so viele Informationen wie möglich über den Mandanten, ohne dass eine Authentifizierung erforderlich ist
./User_Enum/user_enum.py
- Nimmt einen Benutzernamen oder eine Liste von Benutzernamen entgegen und versucht, mit einer von drei Methoden gültige Konten zu ermitteln
- Kann auch verwendet werden, um einen Password-Spray durchzuführen
./Azure_AD/get_tenant.py
- Nimmt einen Zugriffstoken oder Refresh-Token entgegen, gibt Mandanten-ID und Mandantenname aus
- Erstellt eine Textausgabedatei sowie eine BloodHound-kompatible aztenant-Datei
./Azure_AD/get_users.py
- Nimmt einen Zugriffstoken oder Refresh-Token entgegen, gibt alle Benutzer in Azure AD und alle verfügbaren Benutzereigenschaften in Microsoft Graph aus
- Erstellt drei Datendateien: eine kondensierte JSON-Datei, eine rohe JSON-Datei und eine BloodHound-kompatible azusers-Datei
./Azure_AD/get_groups.py
- Nimmt einen Zugriffstoken oder Refresh-Token entgegen, gibt alle Gruppen in Azure AD und alle verfügbaren Gruppeneigenschaften in Microsoft Graph aus
- Erstellt drei Datendateien: eine kondensierte JSON-Datei, eine rohe JSON-Datei und eine BloodHound-kompatible azgroups-Datei
./Azure_AD/get_group_members.py
- Nimmt einen Zugriffstoken oder Refresh-Token entgegen, gibt alle Gruppenmitgliedschaften in Azure AD und alle verfügbaren Gruppenmitgliedseigenschaften in Microsoft Graph aus
- Erstellt drei Datendateien: eine kondensierte JSON-Datei, eine rohe JSON-Datei und eine BloodHound-kompatible azgroups-Datei
./Azure_AD/get_subscriptions.py
- Nimmt einen ARM-Token oder Refresh-Token entgegen, gibt alle Abonnements in Azure und alle verfügbaren Abonnementeigenschaften im Azure Resource Manager aus
- Erstellt drei Datendateien: eine kondensierte JSON-Datei, eine rohe JSON-Datei und eine BloodHound-kompatible azgroups-Datei
./Azure_AD/get_resource_groups.py
- Nimmt einen ARM-Token oder Refresh-Token entgegen, gibt alle Ressourcengruppen in Azure und alle verfügbaren Ressourcengruppeneigenschaften im Azure Resource Manager aus
- Erstellt zwei Datendateien: eine rohe JSON-Datei und eine BloodHound-kompatible azgroups-Datei
./Azure_AD/get_vms.py
- Nimmt einen ARM-Token oder Refresh-Token entgegen, gibt alle virtuellen Maschinen in Azure und alle verfügbaren VM-Eigenschaften im Azure Resource Manager aus
- Erstellt zwei Datendateien: eine rohe JSON-Datei und eine BloodHound-kompatible azgroups-Datei
Installation
Offensive Azure kann auf verschiedene Arten installiert werden oder auch gar nicht.
Sie können das Repository gerne klonen und die gewünschten Skripte ausführen. Eine requirements.txt-Datei ist für jedes Modul enthalten, um dies so einfach wie möglich zu gestalten.
Poetry
Das Projekt ist für die Verwendung mit poetry ausgelegt. Folgen Sie dazu den nächsten Schritten:
git clone https://github.com/blacklanternsecurity/offensive-azure.git
cd ./offensive-azure
poetry install
Pip
Die paketierte Version des Repos wird auch auf PyPI bereitgehalten, sodass Sie sie auch mit pip installieren können. Wir empfehlen die Verwendung von pipenv, um Ihre Umgebung so sauber wie möglich zu halten.
pipenv shell
pip install offensive_azure
Verwendung
Es liegt an Ihnen, wie Sie dieses Toolkit verwenden möchten. Jedes Modul kann unabhängig ausgeführt werden, oder Sie können es als Paket installieren und auf diese Weise nutzen. Jedes Modul wird als Skript exportiert, das denselben Namen wie die Moduldatei trägt. Zum Beispiel:
Poetry
poetry install
poetry run outsider_recon your-domain.com
Pip
pipenv shell
pip install offensive_azure
outsider_recon your-domain.com