MSOLSpray:一款针对微软在线账号(AzureO365)的密码喷射与安全测试工具
关于MSOLSpray
MSOLSpray是一款针对微软在线账号(Azure/O365)的密码喷射与安全测试工具,在该工具的帮助下,广大研究人员可以直接对目标账户执行安全检测。支持检测的内容包括目标账号凭证是否有效、账号是否启用了MFA、租户账号是否存在、用户账号是否存在、账号是否被锁定或账号是否被禁用等情况。

在使用该工具执行测试期间,请注意不要因为失误操作而导致账号被锁定。
值得一提的是,该工具并不仅仅是一个密码喷射工具,因为该工具还可以帮助我们对目标账号或域进行网络侦查和枚举。在测试过程中,如果检测到了针对Microsoft Online OAuth2的有效登录时,该工具并不会自动触发MFA文本或推送通知,这一点对于红队测试来说非常有用。而且,该工具能够跟FireProx完美搭配使用,支持在身份验证请求时轮换源IP地址,这样可以有效避免测试被Azure屏蔽或阻止。
工具安装&配置
Python版本
首先,我们需要在本地设备上安装并配置好最新版本的Python 3环境。然后执行下列命令安装requests库:
pip3 install requests
接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:
git clone https://github.com/MartinIngesen/MSOLSpray.git
最后,切换到项目目录中,并运行工具脚本即可:
cd MSOLSpraypython3 MSOLSpray.py
PowerShell版本
针对MSOLSpray的PowerShell版本安装,广大研究人员可以直接使用下列命令获取项目源码:
git clone https://github.com/dafthack/MSOLSpray.git
工具使用
Python版本
我们需要提前准备好一个包含目标电子邮箱地址(每一个地址单独一行)的userlist用户列表文件。下面给出的是Python版本MSOLSpray的命令帮助选项:
usage: MSOLSpray.py [-h] -u FILE -p PASSWORD [-o OUTFILE] [-f] [--url URL]This is a pure Python rewrite of dafthack's MSOLSpray (https://github.com/dafthack/MSOLSpray/) which is written in PowerShell. All credit goes to him!This script will perform password spraying against Microsoft Online accounts (Azure/O365). The script logs if a user cred is valid, if MFA is enabled on the account, if a tenant doesn't exist, if a user doesn't exist, if the account is locked, or if the account is disabled.optional arguments:-h, --help 显示工具帮助信息和退出-u FILE, --userlist FILEUserList目标用户列表文件,每行一个用户名,格式为“user@domain.com" (必须)-p PASSWORD, --password PASSWORD用于执行密码喷洒的单个密码 (必须)-o OUTFILE, --out OUTFILE输出有效结果的文件-f, --force 当检测到多个帐户锁定时,强制继续执行密码喷射操作--url URL 需要喷射的目标URL,如果指向的是一个API网关URL,则使用FireProx之类的代理工具随机轮转切换源IP地址https://login.microsoft.com
下列命令将使用提供的用户列表文件并尝试使用密码Winter2020对每个账号执行身份验证测试:
python3 MSOLSpray.py --userlist ./userlist.txt --password Winter2020
下列命令将使用指定的FireProx URL(随机IP地址)来执行密码喷射测试:
python3 MSOLSpray.py --userlist ./userlist.txt --password P@ssword --url https://api-gateway-endpoint-id.execute-api.us-east-1.amazonaws.com/fireprox --out valid-users.txt
PowerShell版本
首先我们需要提前准备好一个包含目标电子邮箱地址(每一个地址单独一行)的userlist用户列表文件,然后使用“powershell.exe -exec bypass”打开一个PowerSehll命令行终端,并运行下列命令:
Import-Module MSOLSpray.ps1Invoke-MSOLSpray -UserList .\userlist.txt -Password Winter2020Invoke-MSOLSpray参数选项UserList - UserList目标用户列表文件,每行一个用户名,格式为“user@domain.com";Password - 用于执行密码喷洒的单个密码;OutFile - 输出有效结果的文件;Force - 当检测到多个帐户锁定时,强制继续执行密码喷射操作;URL - 设置目标URL地址,如果指向的是一个API网关URL,则使用FireProx之类的代理工具随机轮转切换源IP地址;
许可证协议
本项目的开发与发布遵循MIT开源许可证协议。
项目地址
纯Python版MSOLSpray:【GitHub传送门】
纯PowerShell版MSOLSpray:【GitHub传送门】
相关文章:
MSOLSpray:一款针对微软在线账号(AzureO365)的密码喷射与安全测试工具
关于MSOLSpray MSOLSpray是一款针对微软在线账号(Azure/O365)的密码喷射与安全测试工具,在该工具的帮助下,广大研究人员可以直接对目标账户执行安全检测。支持检测的内容包括目标账号凭证是否有效、账号是否启用了MFA、租户账号是…...
uos安装lxml避坑记录
环境:紫光电脑uos系统 python:系统自带3.7.3 条件:已打开开发者模式,可以自行安装应用商店之外的软件 一、pip3 install lxml4.8.0可以正正常下载,但出现如下错误 另:为什么是4.8.0?因为这个…...
518. 零钱兑换 II(力扣LeetCode)
文章目录 518. 零钱兑换 II题目描述动态规划一维数组为什么不能交换两个for循环的顺序? 二维数组 518. 零钱兑换 II 题目描述 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数…...
01串的熵(蓝桥杯)
文章目录 01串的熵问题描述答案:11027421题意解释暴力枚举 01串的熵 问题描述 对于一个长度为n的01串 S x 1 x 2 x 3 x_{1}x_{2}x_{3} x1x2x3… x n x_{n} xn,香农信息熵的定义为 H(S) − ∑ 1 n p ( x i ) l o g 2 ( p ( x i ) ) -\sum _{1…...
Rust 基础语法和数据类型
数据类型 Rust提供了一系列的基本数据类型,包括整型(如i32、u32)、浮点型(如f32、f64)、布尔类型(bool)和字符类型(char)。此外,Rust还提供了原生数组、元组…...
【Java SE】10 String类
目录 1. String类的重要性 2.常用方法 2.1字符串构造 2.2 String对象的比较 2.3字符串查找 2.4转化 2.5字符串替换 2.6字符串拆分 2.7字符串截取 2.8其他操作方法 2.9字符串的不可变性 2.10字符串修改 3. StringBuffer和StringBuilder 3.1StringBuilder的介绍 4.…...
web蓝桥杯真题:新鲜的蔬菜
代码: .box {display: flex; } #box1 {align-items: center;justify-content: center; }#box2 {justify-content: space-between; } #box2 .item:nth-child(2) {align-self: end; }#box3 {justify-content: space-between; } #box3 .item:nth-child(2) {align-self…...
超声波清洗机能洗哪些东西?洗眼镜超声波清洗机推荐
在现代生活中,人们对清洁卫生的要求越来越高,尤其是对一些细小物件的清洁。眼镜作为我们日常生活中不可或缺的物品,清洁保养更是至关重要。传统的清洗方式可能无法完全清洁眼镜表面的细菌和污垢,于是超声波清洗机成为了很多人的选…...
[C++][算法基础]走迷宫(BFS)
给定一个 nm 的二维整数数组,用来表示一个迷宫,数组中只包含 0 或 1,其中 0 表示可以走的路,1 表示不可通过的墙壁。 最初,有一个人位于左上角 (1,1)(1,1) 处,已知该人每次可以向上、下、左、右任意一个方…...
C语言字符串左旋
一、前言 这个题目的完整题目是这样子的。 二、我们实现这个编程的思路 2.1暴力破解思想 假如有一个数组里面的字符串为”abcdef“,我们这时候就这样先将字符”a“移到最后再将其余的字符前移。 2.2三步移动法 同样我们还是假设一个数组里面存的是字符串”abcd…...
Linux 中断会产生嵌套吗?
文章目录 1. 前言2. Linux 中断是否会嵌套?2.1 分析背景2.2 中断处理抢占、嵌套可能性分析2.3 中断处理抢占、嵌套小结 3. 参考资料 1. 前言 限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任何承诺。 2. …...
嵌入式ARM版本银河麒麟操作系统V10SP1安装OPenGauss数据库
前言: 官网提供了非常完整的openGauss安装步骤。 https://opengauss.org/zh/download/archive/列举一下个人的使用环境: 麒麟V10 rk3588工控板(ARM) openGauss-3.0.5(极简版)浏览一下官网,可以…...
深度学习八股文
Bert旨在通过联合左侧和右侧的上下文,从未标记文本中预训练出一个深度双向表示模型。因此,BERT可以通过增加一个额外的输出层来进行微调,就可以达到为广泛的任务创建State-of-the-arts 模型的效果,比如QA、语言推理任务。Bert的构…...
jquery 自整理
echarts官方:Documentation - Apache ECharts 1、CheckBox复选框 //选中事件(页面点击) $(#operateExit).on(ifChecked, function(){ $(input[name"operateExit"]).val(1); }); //非选中事件ÿ…...
MySQL | 加索引报错
报错信息 1170 - BLOB/TEXT column user_name used in key specification without a key length解决方案 分析 这个错误通常是因为尝试在一个包含BLOB或TEXT类型列的列上创建索引时没有指定键的长度。MySQL要求在使用BLOB或TEXT类型列作为索引键时,必须指定键的长…...
前端:自制年历
详细思路可以看我的另一篇文章《前端:自制月历》,基本思路一致,只是元素布局略有差异 ①获取起始位startnew Date(moment().format(yyyy-01-01)).getDay() ②获取总的格子数numMath.ceil(365/7)*7,这里用365或者366计算结果都是一样的371 …...
9.手写JavaScript大数相加问题
一、核心思想 找到两个字符串中最长的长度,对两个字符串在头位置补0达到相等的长度,相加时注意进位和类型转换,特别考虑当相加到第一位是如果仍然有进位不要忽略。此外,js中允许使用的最大的数字为 console.log("最大数&qu…...
FPGA开源项目分享——基于 DE1-SOC 的 String Art 实现
导语 今天继续康奈尔大学FPGA课程ECE 5760的典型案例分享——基于DE1-SOC的String Art实现。 (更多其他案例请参考网站: Final Projects ECE 5760) 1. 项目概述 项目网址 ECE 5760 Final Project 项目说明 String Art起源于19世纪的数学…...
通过 CLI 和引入的方式使用 React:基础入门
使用React 有两种使用方式,主要有以下几个原因: 灵活性和适应性: 引入的方式可以让开发者在现有的 HTML 页面中快速引入 React,无需设置完整的项目环境。这适合小型或原型项目。 CLI 方式则更适合用于构建大型复杂的 React 应用程序,因为它提供了更完整的项目结构和…...
第三资本:铸就辉煌非凡的资历
第三资本香港有限公司在在金融投资领域一直以专业精神和不懈追求获得良好名声,近几年在国际资本市场上更是写下了辉煌的章节。针对第三资本而言,专业是基本,也是成功的唯一途径。投资总监刘国海解释道:“金融从业者务必深入把握专业能力,对行业现状敏感,重视风险管控,才能在这个…...
MetaTube插件:智能元数据整合引擎的技术架构深度解析
MetaTube插件:智能元数据整合引擎的技术架构深度解析 【免费下载链接】jellyfin-plugin-metatube MetaTube Plugin for Jellyfin/Emby 项目地址: https://gitcode.com/gh_mirrors/je/jellyfin-plugin-metatube 在Jellyfin/Emby媒体服务器生态系统中ÿ…...
一文读懂:控制界的万能公式——PID算法到底是什么?
一文读懂:控制界的万能公式——PID算法到底是什么? 对于每一位踏入工科大门的学生或是初入职场的工程师来说,在自动控制、机器人、电子工程等领域,有一个名字几乎如影随形——PID算法。从天上飞的四轴无人机,到地上跑的平衡小车;从化工厂里庞大的反应釜,到你家中安静运转…...
像素皇城灵蛇贺岁:5分钟部署你的赛博春联生成器(保姆级教程)
像素皇城灵蛇贺岁:5分钟部署你的赛博春联生成器(保姆级教程) 1. 前言:当传统春节遇上赛博美学 春节贴春联是延续千年的传统习俗,但你是否想过用AI技术为这个传统注入新的活力?今天我们要介绍的"像素…...
3步解锁B站4K视频:bilibili-downloader零基础使用指南
3步解锁B站4K视频:bilibili-downloader零基础使用指南 【免费下载链接】bilibili-downloader B站视频下载,支持下载大会员清晰度4K,持续更新中 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader 还在为无法保存B站4…...
离谱了,简历写了这个项目薪资直接涨了 80%!!
报喜了!!!前阵子帮一个粉丝修改简历,只是在项目经历里加了一个“不起眼”的项目,优化了表述逻辑,没想到他面试3家公司,2家给了offer,薪资直接比上一份涨了80%!其实很多人…...
赋能合作共赢——建设银行广东省茂名市分行:走进汽车经销商,开展金融知识普及活动
筑牢金融防线 赋能合作共赢——建行广东省茂名市分行走进重点合作汽车经销商,开展金融知识普及活动为进一步深化银企合作关系,履行金融机构社会责任,提升合作企业员工及客户的金融安全意识,切实保护金融消费者合法权益,…...
造相-Z-Image-Turbo 在嵌入式设备上的探索:基于NVIDIA Jetson的轻量化部署
造相-Z-Image-Turbo 在嵌入式设备上的探索:基于NVIDIA Jetson的轻量化部署 最近在折腾一个挺有意思的项目,想把一个叫“造相-Z-Image-Turbo”的图片生成模型,塞进像NVIDIA Jetson这样的嵌入式小盒子里。你可能知道,这类模型通常都…...
5分钟掌握高效网页完整截图:告别手动拼接的烦恼
5分钟掌握高效网页完整截图:告别手动拼接的烦恼 【免费下载链接】full-page-screen-capture-chrome-extension One-click full page screen captures in Google Chrome 项目地址: https://gitcode.com/gh_mirrors/fu/full-page-screen-capture-chrome-extension …...
抖音视频批量下载高效解决方案实战指南
抖音视频批量下载高效解决方案实战指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖音批量下载工具&…...
LeetCode 200. 岛屿数量(C++):深度优先与广度优先的实战对比
1. 岛屿数量问题解析 第一次看到LeetCode 200题岛屿数量时,很多人会感到困惑:这个看似简单的矩阵遍历问题,为什么会被标记为中等难度?让我用一个生活中的例子来解释:想象你面前有一张卫星地图,上面蓝色代表…...
