365-Stealer 是一个基于Python3的工具,旨在自动化非法同意授权攻击。当目标用户无意中授予攻击者应用程序权限时,攻击者即可获取受害者的刷新令牌。此刷新令牌随后可用于生成其他令牌,使攻击者能够访问敏感数据,如电子邮件、OneDrive中的文件以及笔记——无需受害者进一步操作。手动利用此漏洞可能耗时,但365-Stealer简化并自动化了这一过程。
非法同意授权攻击是指攻击者在Azure中注册一个恶意应用程序,请求访问敏感数据,如联系人、电子邮件或文档。攻击者通常以合法应用程序的面貌欺骗用户同意授权。一旦受害者点击“接受”,便无意中向攻击者授予了访问权限,攻击者即可代表受害者执行操作,而无需获取受害者的组织凭据。
更明确地说,一旦用户授予权限,Entra ID会向攻击者的服务器发送一个令牌。该令牌使攻击者能够读取邮件、发送邮件、访问OneDrive中的文件,以及利用受害者的凭据执行其他恶意活动。与依赖窃取密码的钓鱼攻击不同,非法同意授权攻击通过滥用云应用程序的权限系统完全绕过了身份验证。
--run-app命令或通过365-Stealer管理门户托管一个虚假应用程序,用于执行非法同意授权攻击。--no-stealing标志,该工具可以仅窃取令牌而不执行进一步操作,允许攻击者稍后利用这些令牌。--refresh-token、--client-id和--client-secret标志,攻击者可以轻松获取新的访问令牌。--app-registration标志自动化了Azure应用注册过程,无需手动干预即可轻松搭建攻击基础设施。--custom-steal标志,攻击者可以选择性地从特定来源(如OneDrive、Outlook等)窃取数据。要使用提供的Python脚本自动在Azure中注册应用程序,请按照以下步骤操作:
确保您的机器上已安装Python3。
克隆365-Stealer仓库:
git clone https://github.com/AlteredSecurity/365-Stealer.git
cd 365-Stealer
安装所需的Python模块:
pip install -r requirements.txt
运行自动Azure应用注册脚本:
python 365-Stealer.py --app-registration
如果您更喜欢手动注册Azure应用程序,请按照以下步骤操作:
https://portal.azure.com 并使用您的账户登录。应用注册。新注册开始注册新应用程序。任何组织目录中的账户(任何Microsoft Entra ID租户 - 多租户)。https://<域名/IP>:<端口>/login/authorized,其中您的域名或IP对应您将托管365-Stealer应用程序的位置。注册以创建应用程序。
证书和密钥部分。新客户端密钥,提供密钥描述,然后单击添加。
API权限选项卡。添加权限以开始选择必要的权限。Microsoft Graph。委托权限以分配将代表已登录用户操作的权限。
克隆365-Stealer仓库:
git clone https://github.com/AlteredSecurity/365-Stealer.git
安装所需应用程序:
解压并保存文件:
C:\xampp\htdocs\中,这样您可以托管PHP应用程序并运行Python。安装Python依赖: 运行以下命令以安装必要的Python库。
cd C:\xampp\htdocs\365-Stealer
pip install -r requirements.txt
遵循其他设置说明: 安装所需应用程序和依赖后,请确保遵循yoursVictims/Readme.md文件中的说明。这将指导您设置365-Stealer正常运行所需的数据库和表。
调整脚本路径:
C:/xampp/htdocs/yourvictims/下的index.php文件中修改365-Stealer.py、数据库和python3的路径。
处理文件路径中的空格:
"C:/Program Files/Python/python.exe"
默认白名单:
添加远程IP:
禁用IP白名单:
$enableIpWhiteList = false;。
访问限制: 出于安全考虑,请始终将365-Stealer管理门户的访问限制在您控制的基础设施内。
避免公开暴露: 切勿将365-Stealer管理门户直接暴露在互联网上。确保只有通过安全的私有网络才能访问,以避免潜在入侵。
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 显示此帮助消息并退出
--app-registration Azure应用注册
--set-config 设置365-Stealer配置
--get-config 获取365-Stealer配置
--code CODE 提供授权码
--token TOKEN 提供访问令牌
--client-id CLIENT_ID
提供应用程序客户端ID
--client-secret CLIENT_SECRET
提供应用程序客户端密钥
--refresh-token REFRESH_TOKEN
提供刷新令牌
--token-path TOKEN_PATH
提供访问令牌文件路径
--refresh-all 重新窃取所有用户的数据。
--refresh-user REFRESH_USER
重新窃取特定用户的数据。(提供邮箱地址)
--redirect-url REDIRECT_URL
重定向URL
--database-path DATABASE_PATH
提供数据库路径
--no-stealing 仅窃取令牌
--upload UPLOAD 将文件添加到受害者的OneDrive中(提供文件路径)
--create-rules CREATE_RULES
提供包含Outlook规则的JSON文件
--send-mail SEND_MAIL
提供用于发送邮件的JSON文件
--delete-all-data 从数据库中删除所有数据!
--delete-user-data DELETE_USER_DATA
从数据库中删除特定用户的数据!
--run-app 托管钓鱼应用程序
--no-ssl 使用http(端口80)
--port PORT 提供自定义端口以托管钓鱼应用程序
--disable-logs 禁用所有HTTP访问日志
--custom-steal {listusers,checklicence,outlook,onedrive,onenote} [{listusers,checklicence,outlook,onedrive,onenote} ...]
窃取特定数据
--injection 启用宏注入
--delay DELAY 在窃取时通过指定时间(秒)延迟请求
关于365-Stealer新版本的博客文章,这是对旧版本的彻底重写。本文探讨了非法同意授权(ICG)攻击在Microsoft 365中的工作原理。
旧博客文章 - 365-Stealer介绍
如果遇到Bug或有功能请求,请提出问题。
如果您想为项目做出贡献并使其变得更好,非常欢迎您的帮助。