
Automatiza ataques de Concessão de Consentimento Ilícito contra locatários Azure/O365 para roubar tokens de atualização, exfiltrar e-mails/dados do OneDrive e criar regras maliciosas do Outlook por meio de uma CLI e portal de gerenciamento web.
365-Stealer é uma ferramenta baseada em Python3 projetada para automatizar ataques de concessão de consentimento ilícito. Quando um usuário alvo concede permissão involuntariamente a um aplicativo do atacante, o atacante obtém acesso ao token de atualização (refresh token) da vítima. Esse token de atualização pode então ser usado para gerar outros tokens, permitindo que o atacante acesse dados sensíveis como e-mails, arquivos no OneDrive e anotações—sem precisar de mais interação da vítima. Explorar isso manualmente pode ser demorado, mas o 365-Stealer simplifica e automatiza o processo.
Um ataque de concessão de consentimento ilícito ocorre quando um atacante registra um aplicativo malicioso no Azure, solicitando acesso a dados sensíveis como contatos, e-mails ou documentos. O atacante engana um usuário para que consinta com o aplicativo, geralmente apresentando-o como legítimo. Assim que a vítima clica em "Aceitar", ela concede acesso ao atacante sem saber, permitindo que ele aja em nome da vítima sem precisar das credenciais organizacionais dela.
Para explicar de forma mais clara, quando o usuário concede permissão, o Entra ID envia um token para o servidor do atacante. Esse token dá ao atacante a capacidade de ler e enviar e-mails, acessar arquivos no OneDrive e realizar outras atividades maliciosas usando as credenciais da vítima. Diferente de ataques de phishing que dependem do roubo de senhas, os ataques de concessão de consentimento ilícito contornam completamente a autenticação, abusando do sistema de permissões de aplicativos em nuvem.
--run-app no terminal ou através do portal de gerenciamento do 365-Stealer.--no-stealing, a ferramenta pode roubar apenas os tokens sem ações adicionais, permitindo que atacantes os explorem posteriormente.Para registrar automaticamente um aplicativo no Azure usando o script Python fornecido, siga estes passos:
Certifique-se de ter o Python3 instalado em sua máquina.
Clone o repositório do 365-Stealer:
git clone https://github.com/AlteredSecurity/365-Stealer.git
cd 365-Stealer
Instale os módulos Python necessários:
pip install -r requirements.txt
Execute o script automatizado de registro de aplicativo no Azure:
python 365-Stealer.py --app-registration
Se preferir registrar manualmente um aplicativo no Azure, siga estes passos:
https://portal.azure.com e faça login em sua conta.Registros de aplicativo no menu à esquerda.Novo registro para iniciar o processo de registro de um novo aplicativo.Contas em qualquer diretório organizacional (Qualquer locatário do Microsoft Entra ID - Multilocatário).https://<DOMÍNIO/IP>:<PORTA>/login/authorized, onde seu domínio ou IP corresponde ao local onde você hospedará o aplicativo 365-Stealer.Registrar para criar o aplicativo.
Certificados e segredos do seu aplicativo registrado.Novo segredo do cliente, forneça uma descrição para o segredo e clique em Adicionar.
Permissões de API do seu aplicativo.Adicionar uma permissão para começar a selecionar as permissões necessárias.Microsoft Graph.Permissões delegadas para atribuir permissões que agirão em nome do usuário conectado.
Clone o Repositório do 365-Stealer:
git clone https://github.com/AlteredSecurity/365-Stealer.git
Instale os Aplicativos Necessários:
Extraia e Salve os Arquivos:
C:\xampp\htdocs\ para hospedar o aplicativo PHP e executar o Python.Instale as Dependências Python: Execute o seguinte comando para instalar as bibliotecas Python necessárias.
cd C:\xampp\htdocs\365-Stealer
pip install -r requirements.txt
Siga as Instruções Adicionais de Configuração: Após instalar os aplicativos e dependências necessários, siga as instruções fornecidas no arquivo yourVictims/Readme.md. Isso orientará você na criação dos bancos de dados e tabelas necessários para o funcionamento correto do 365-Stealer.
Ajuste os Caminhos dos Scripts:
365-Stealer.py, o banco de dados e o python3 no arquivo index.php localizado em C:/xampp/htdocs/yourvictims/.
Lidando com Espaços nos Caminhos dos Arquivos:
"C:/Program Files/Python/python.exe"
Lista Branca Padrão:
Adicionando IPs Remotos:
Desabilitando a Lista Branca de IPs:
$enableIpWhiteList = false; no arquivo de configuração.
Restrições de Acesso: Por razões de segurança, restrinja sempre o acesso ao Portal de Gerenciamento do 365-Stealer à infraestrutura que você controla.
Evite Exposição Pública: Nunca exponha o Portal de Gerenciamento do 365-Stealer diretamente à internet. Certifique-se de que ele seja acessível apenas através de redes privadas e seguras para evitar possíveis comprometimentos.
usage: 365-Stealer.py [-h] [--app-registration] [--set-config] [--get-config] [--code CODE] [--token TOKEN] [--client-id CLIENT_ID]
[--client-secret CLIENT_SECRET] [--refresh-token REFRESH_TOKEN] [--token-path TOKEN_PATH]
[--refresh-all] [--refresh-user REFRESH_USER] [--redirect-url REDIRECT_URL]
[--database-path DATABASE_PATH] [--no-stealing] [--upload UPLOAD] [--create-rules CREATE_RULES]
[--send-mail SEND_MAIL] [--delete-all-data] [--delete-user-data DELETE_USER_DATA] [--run-app]
[--no-ssl] [--port PORT] [--disable-logs]
[--injection]
[--custom-steal {listusers,checklicence,outlook,onedrive,onenote} [{listusers,checklicence,outlook,onedrive,onenote} ...]]
[--delay DELAY]
optional arguments:
-h, --help show this help message and exit
--app-registration Azure App Registration
--set-config Set 365-Stealer Configuration
--get-config Get 365-Stealer Configuration
--code CODE Provide Authorization Code
--token TOKEN Provide Access Token
--client-id CLIENT_ID
Provide Application Client ID
--client-secret CLIENT_SECRET
Provide Application Client Secret
--refresh-token REFRESH_TOKEN
Provide Refresh Token
--token-path TOKEN_PATH
Provide Access Token file path
--refresh-all Steal all user's data again.
--refresh-user REFRESH_USER
Steal particular user's data again.(Provide EmailID)
--redirect-url REDIRECT_URL
Redirect Url
--database-path DATABASE_PATH
Provide Database Path
--no-stealing Steal only Tokens
--upload UPLOAD Add files in victim's OneDrive(Provide File Path)
--create-rules CREATE_RULES
Provide json file containing outlook rules
--send-mail SEND_MAIL
Provide json file to send email
--delete-all-data Delete all data from the database!
--delete-user-data DELETE_USER_DATA
Delete specific user data from the database!
--run-app Host the Phising App
--no-ssl Use http(port 80)
--port PORT Provide custom port to Host the Phishing App
--disable-logs Disable all http access logs
--custom-steal {listusers,checklicence,outlook,onedrive,onenote} [{listusers,checklicence,outlook,onedrive,onenote} ...]
Steal specific data
--injection Enable Macro Injection
--delay DELAY Delay the request by specifying time in seconds while stealing
Post do blog para a nova versão do 365-Stealer, que é uma reescrita completa da versão antiga. Este post explora como funciona o ataque de Concessão de Consentimento Ilícito (ICG) no Microsoft 365.
O post antigo do blog - Introdução ao 365-Stealer
Por favor, abra uma issue se encontrar um bug ou tiver uma solicitação de funcionalidade.
Se você quiser contribuir para o projeto e torná-lo melhor, sua ajuda é muito bem-vinda.
--refresh-token--client-id--client-secret--app-registration automatiza o processo de registro de aplicativo no Azure, facilitando a configuração da infraestrutura de ataque sem intervenção manual.--custom-steal, os atacantes podem roubar dados seletivamente de fontes específicas como OneDrive, Outlook, etc.database.db, que pode ser compartilhado com a equipe para aproveitar os tokens e dados roubados existentes.