
Conjunto de ferramentas ofensivas direcionadas ao Microsoft Azure escritas em Python para serem independentes de plataforma. A lista atual de ferramentas pode ser encontrada abaixo com uma breve descrição de suas funcionalidades.
./Device_Code/device_code_easy_mode.py
- Gera um código a ser inserido pelo usuário alvo
- Pode ser usado para geração geral de tokens ou durante uma campanha de phishing/engenharia social.
./Access_Tokens/token_juggle.py
- Recebe um token de atualização (refresh token) de várias formas e obtém um novo token de atualização e um token de acesso para o recurso especificado
./Access_Tokens/read_token.py
- Recebe um token de acesso e analisa as informações de declarações incluídas, verifica a expiração, tenta validar a assinatura
./Outsider_Recon/outsider_recon.py
- Recebe um domínio e enumera o máximo de informações possível sobre o inquilino (tenant) sem exigir autenticação
./User_Enum/user_enum.py
- Recebe um nome de usuário ou uma lista de nomes de usuário e tenta enumerar contas válidas usando um de três métodos
- Também pode ser usado para realizar um spray de senhas (password spray)
./Azure_AD/get_tenant.py
- Recebe um token de acesso ou token de atualização, gera o ID do inquilino e o nome do inquilino
- Cria um arquivo de saída de texto, bem como um arquivo aztenant compatível com BloodHound
./Azure_AD/get_users.py
- Recebe um token de acesso ou token de atualização, gera todos os usuários no Azure AD e todas as propriedades de usuário disponíveis no Microsoft Graph
- Cria três arquivos de dados: um arquivo json condensado, um arquivo json bruto e um arquivo azusers compatível com BloodHound
./Azure_AD/get_groups.py
- Recebe um token de acesso ou token de atualização, gera todos os grupos no Azure AD e todas as propriedades de grupo disponíveis no Microsoft Graph
- Cria três arquivos de dados: um arquivo json condensado, um arquivo json bruto e um arquivo azgroups compatível com BloodHound
./Azure_AD/get_group_members.py
- Recebe um token de acesso ou token de atualização, gera todas as associações de grupo no Azure AD e todas as propriedades de membro de grupo disponíveis no Microsoft Graph
- Cria três arquivos de dados: um arquivo json condensado, um arquivo json bruto e um arquivo azgroups compatível com BloodHound
./Azure_AD/get_subscriptions.py
- Recebe um token ARM ou token de atualização, gera todas as assinaturas no Azure e todas as propriedades de assinatura disponíveis no Azure Resource Manager
- Cria três arquivos de dados: um arquivo json condensado, um arquivo json bruto e um arquivo azgroups compatível com BloodHound
./Azure_AD/get_resource_groups.py
- Recebe um token ARM ou token de atualização, gera todos os grupos de recursos no Azure e todas as propriedades de grupo de recursos disponíveis no Azure Resource Manager
- Cria dois arquivos de dados: um arquivo json bruto e um arquivo azgroups compatível com BloodHound
./Azure_AD/get_vms.py
- Recebe um token ARM ou token de atualização, gera todas as máquinas virtuais no Azure e todas as propriedades de VM disponíveis no Azure Resource Manager
- Cria dois arquivos de dados: um arquivo json bruto e um arquivo azgroups compatível com BloodHound
Instalação
O Offensive Azure pode ser instalado de várias maneiras ou nem instalado.
Você pode clonar o repositório e executar os scripts específicos que desejar. Um arquivo requirements.txt está incluído para cada módulo para facilitar esse processo.
Poetry
O projeto foi construído para funcionar com o poetry. Para usar, siga os próximos passos:
git clone https://github.com/blacklanternsecurity/offensive-azure.git
cd ./offensive-azure
poetry install
Pip
A versão empacotada do repositório também é mantida no pypi, então você pode usar o pip para instalar também. Recomendamos o uso do pipenv para manter seu ambiente o mais limpo possível.
pipenv shell
pip install offensive_azure
Uso
A forma como você deseja usar este kit de ferramentas fica a seu critério. Cada módulo pode ser executado de forma independente, ou você pode instalá-lo como um pacote e usá-lo dessa forma. Cada módulo é exportado para um script com o mesmo nome do arquivo do módulo. Por exemplo:
Poetry
poetry install
poetry run outsider_recon your-domain.com
Pip
pipenv shell
pip install offensive_azure
outsider_recon your-domain.com