前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SquarePhish:一款结合了OAuth身份验证流和二维码的高级网络钓鱼测试工具

SquarePhish:一款结合了OAuth身份验证流和二维码的高级网络钓鱼测试工具

作者头像
FB客服
发布2023-02-10 15:35:58
6240
发布2023-02-10 15:35:58
举报
文章被收录于专栏:FreeBuf

关于SquarePhish

SquarePhish是一款高级网络钓鱼测试工具,该工具整合了OAuth设备码身份验证流和二维码技术实现其功能。

工具运行机制

首先,广大研究人员可以使用SquarePhish项目的email模块来向目标用户发送一个恶意二维码邮件,邮件中的默认文字为“需要更新其Microsoft MFA身份验证才能继续使用移动电子邮件”,当前使用的客户端ID为Microsoft Authenticator App:

通过首先发送二维码,我们可以避免提前启动仅持续15分钟的OAuth设备代码工作流。

接下来,目标用户将使用移动设备扫描电子邮件正文中的二维码。二维码会将目标用户引导到我们所控制的服务器(运行SquarePhish的服务器模块),并将URL参数设置为其电子邮件地址:

当目标用户访问恶意的SquarePhish服务器时,会触发一个后台进程,该进程将启动OAuth设备代码验证流程,并向目标用户发送生成的设备代码,然后要求他们输入合法的Microsoft设备代码网站(这将启动OAauth设备代码流程15分钟计时器)。

SquarePhish服务器将会继续在后台处理身份认证流程:

代码语言:javascript
复制
[2022-04-08 14:31:51,962] [info] [minnow@square.phish] Polling for user authentication...
[2022-04-08 14:31:57,185] [info] [minnow@square.phish] Polling for user authentication...
[2022-04-08 14:32:02,372] [info] [minnow@square.phish] Polling for user authentication...
[2022-04-08 14:32:07,516] [info] [minnow@square.phish] Polling for user authentication...
[2022-04-08 14:32:12,847] [info] [minnow@square.phish] Polling for user authentication...
[2022-04-08 14:32:17,993] [info] [minnow@square.phish] Polling for user authentication...
[2022-04-08 14:32:23,169] [info] [minnow@square.phish] Polling for user authentication...
[2022-04-08 14:32:28,492] [info] [minnow@square.phish] Polling for user authentication...
代码语言:javascript
复制
(向右滑动、查看更多)

然后,目标用户将通过电子邮件中提供的链接或通过访问其移动设备上的SquarePhish URL重定向来访问Microsoft设备代码认证网站:

接下来,目标用户将输入提供的设备代码,并将提示其点击同意:

目标用户完成身份验证并点击同意之后,身份验证令牌将保存在本地,并将通过请求应用程序的定义范围向目标用户提供访问:

代码语言:javascript
复制
[2022-04-08 14:32:28,796] [info] [minnow@square.phish] Token info saved to minnow@square.phish.tokeninfo.json
代码语言:javascript
复制
(向右滑动、查看更多)

范围定义如下:

代码语言:javascript
复制
"scope": ".default offline_access profile openid"
代码语言:javascript
复制
(向右滑动、查看更多)

工具下载

该工具基于Python开发,因此我们首先需要在本地设备上安装并配置好Python环境。接下来,可以使用下列命令将该项目源码克隆至本地:

代码语言:javascript
复制
git clone https://github.com/secureworks/squarephish.git
代码语言:javascript
复制
(向右滑动、查看更多)

工具使用

电子邮件模块

向目标用户发送一个生成好的二维码,它将触发OAuth设备码身份验证流:

代码语言:javascript
复制
usage: squish.py email [-h] [-c CONFIG] [--debug] [-e EMAIL]
optional arguments:
  -h, --help            显示命令参数帮助信息和退出
  -c CONFIG, --config CONFIG
                      SquarePhish配置文件 [默认: settings.config]
  --debug             启用服务器调试
  -e EMAIL, --email EMAIL
                      发送初始二维码邮件的目标用户邮件地址
代码语言:javascript
复制
(向右滑动、查看更多)

服务器模块

该模块负责托管一个二维码链接所指向的服务器:

代码语言:javascript
复制
usage: squish.py server [-h] [-c CONFIG] [--debug]
optional arguments:
  -h, --help            显示命令参数帮助信息和退出
  -c CONFIG, --config CONFIG
                      SquarePhish配置文件 [Default: settings.config]
  --debug            启用服务器调试
代码语言:javascript
复制
(向右滑动、查看更多)

工具配置

代码语言:javascript
复制
[DEFAULT]
SMTP_PORT            = 465                                                                      # SMTP 端口, 默认为465
SMTP_SERVER          = "smtp.gmail.com"                                                         # SMTP 服务器, 默认为GMail
SMTP_PROTO           = "ssl"                                                                    # SMTP 协议: {ssl, tls, None (留空)}
SMTP_EMAIL           = ""                                                                       # 提供认证邮件地址
SMTP_PASSWORD        = ""                                                                       # 提供认证密码 
[EMAIL]
SQUAREPHISH_SERVER   = ""                                                                       # 必填: SquarePhish服务器IP地址或域名
SQUAREPHISH_PORT     = 8443                                                                     # SquarePhish服务器端口, 默认为8443 (this should match the below server value)
SQUAREPHISH_ENDPOINT = "/mfa"                                                                   # 触发OAuth设备码验证流的SquarePhish端点, 默认为一个MFA 预留文字
FROM_EMAIL           = "admin@square.phish"                                                     # 发送邮件时的默认发件地址
SUBJECT              = "ACTION REQUIRED: Multi-Factor Authentication (MFA) Update"              # 发送邮件的默认主题,默认为MFA预留文字
EMAIL_TEM***TE       = "pretexts/mfa/qrcode_email.html"                                         # 电子邮件Body模版
[SERVER]
PORT                 = 8443
FROM_EMAIL           = "admin@square.phish"                                                     # 发送邮件时的默认发件地址
SUBJECT              = "ACTION REQUIRED: Multi-Factor Authentication (MFA) Update"              # 发送邮件的默认主题,默认为MFA预留文字
CLIENT_ID            = "4813382a-8fa7-425e-ab75-3b753aab3abb"                                   # 身份认证客户端ID, 默认为Microsoft Authenticator App
ENDPOINT             = "/mfa"                                                                   # 用于触发OAuth设备码验证流的端点, 默认为MFA预留文字
CERT_CRT             = ""                                                                       # 服务器SSL证书,.crt文件
CERT_KEY             = ""                                                                       # 服务器SSL证书文件,.key文件
EMAIL_TEM***TE       = "pretexts/mfa/devicecode_email.html"                                     # 电子邮件Body模版
PERMISSION_SCOPE     = ".default offline_access profile openid"                                 # OAuth权限范围
代码语言:javascript
复制
(向右滑动、查看更多)

自定义预留文字

如需修改邮件预留文字,可以在项目的pretexts目录中进行修改。

许可证协议

本项目的开发与发布遵循Apache-2.0开源许可证协议。

项目地址

SquarePhish

https://github.com/secureworks/squarephish

参考资料:

https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-permissions-and-consent

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-01-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 关于SquarePhish
  • 工具运行机制
  • 工具下载
  • 工具使用
    • 电子邮件模块
      • 服务器模块
      • 工具配置
        • 自定义预留文字
        • 许可证协议
        • 项目地址
        • 参考资料:
        相关产品与服务
        访问管理
        访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档