...
:-++++++=-.
.=+++++++++++-
.++++++++++++++= :------: :-:--.
:+++++++++++++++. .---------- #= .-+.
:+++++++++++++++. -----------: :#= :#.
:--------------------------=++++++++- .------------ .=+ ++
----------------------------+++++*+-. :+=-----===: -+-.+:
:---------------------------++++=-. .=+++++=-. .=+:.
:------=%%%%%%%%%%%%--------:... .:::.. -*=-:
:------=****#@@#****--------=++++++++++++++-----------. -#++-
:----------:+@@+:-----------+++++++++++++++=----------- -#++-
:-----------+@@*------------+++++++++++++++=-----------. -*+*-
:-----------+@@*------------+++++++++++++++=-----------. . -*++-
:-----------+@@*------------+++++++++++++++=-----------. -- -*++-
:-----------+@@*------------+++++++++++++++=-----------. . == -*++- .=
:-----------+@@+------------+++++++++++++++=-----------. .+ -= :+==- .*
:---------------------------+++++++++++++++=-----------. =* -= -+=+= .::
----------------------------+++++++++++++++=----------- ** -+ -+=++. .*=
.:-------------------------=+++++++++++++++=---------=: #+ := ++-:*= ==
-++++++++++++++++++++++++++=-------=+=: :#= .:. *=: -*- ==
.=+++++++++++++++++++++++++*+++++++=-. -#- ::++= :+=. .==
:++++++++++++++++++++++++=:.:::::. -*: .=+-. .=+-. -+:
.=+*+++++++++++++++++++- -+- .:-=. .-====----:-==:
.-+**+++++++++++**+-. .++: .-=-: .:-====-:.
:-=++******+=-: .=+===--.
..:::.. ...
_____ ______ _ _ _
|_ _| | ___ \| | (_) | |
| | ___ __ _ _ __ ___ ___ | |_/ /| |__ _ ___ | |__ ___ _ __
| | / _ \ / _` || '_ ` _ \ / __|| __/ | '_ \ | |/ __|| '_ \ / _ \| '__|
| || __/| (_| || | | | | |\__ \| | | | | || |\__ \| | | || __/| |
\_ \___| \__,_||_| |_| |_||___/\_| |_| |_||_||___/|_| |_| \___||_|
v1.2 developed by @Octoberfest73 (https://github.com/Octoberfest7)
TeamsPhisher 是一个 Python3 程序,用于向允许外部通信的组织中的 Microsoft Teams 用户发送钓鱼消息和附件。
通常情况下,无法向组织外的 Teams 用户发送文件。JUMPSEC 的 Max Corbridge (@CorbridgeMax) 和 Tom Ellson (@tde_sec) 最近披露了一种绕过此限制的方法,通过篡改 Teams 网络请求来更改带有附件的消息的收件人。
TeamsPhisher 结合了此技术以及 Andrea Santese (@Medu554) 披露的一些早期技术。
它还大量借鉴了 TeamsEnum,这是 SSE 的 Bastian Kanbach (@bka) 的出色工作,用于攻击流程的认证部分以及一些通用辅助函数。
TeamsPhisher 旨在吸收所有这些项目的精华,为授权的红队操作提供一种强大、可定制且高效的方式,以便在利用 Microsoft Teams 进行钓鱼访问场景时使用。
有关缓解建议,请参阅本 README 的末尾。
为 TeamsPhisher 提供一个附件、一条消息以及目标 Teams 用户列表。它会将附件上传到发件人的 Sharepoint,然后遍历目标列表。
TeamsPhisher 首先会枚举目标用户,确保用户存在且能够接收外部消息。然后它会与目标用户创建一个新线程。注意,这实际上是一个"群组"聊天,因为 TeamsPhisher 将目标的电子邮件包含了两次;这是 @Medu554 的一个巧妙技巧,可以绕过"有人从你的组织外给你发了消息,你确定要查看吗?"的启动画面,该画面可能会让我们的目标产生犹豫。(v1.2)注意:此启动画面绕过已被修补,但将目标用户添加到群组聊天仍然与当前启动画面绕过相关。
在我们的发件人与目标之间创建新线程后,指定的消息将连同 Sharepoint 中附件的链接一起发送给用户。
一旦初始消息发送完毕,目标用户将从创建的群组聊天中被移除。这虽然移除了发件人进一步向目标发送消息的能力,但也移除了"此人员来自你的组织外部"的启动画面,从而大大提高了成功率。当前的绕过方法由 @pfiatde 在他关于 Teams 及意外行为的众多博客之一中发布,并由 DenSecure 的 Steve Nelson (@stevesec128) 和 Alex Martirosyan (@almartiros) 集成到 TeamsPhisher 中。
实际运行 TeamsPhisher。向目标发送钓鱼消息。
命令:

Targets.txt:

Message.txt:

TeamsPhisher 输出:

发件人视图:

目标视图:

附件文件:

以预览模式运行 TeamsPhisher,以便验证目标列表、预览其"友好名称"(如果 TeamsPhisher 可以使用 --personalize 开关解析它们),并向自己的发件人账户发送测试消息,以验证一切是否符合预期。
TeamsPhisher 输出:

发件人视图:

TeamsPhisher 要求用户拥有一个 Microsoft 商业账户(而非个人账户,例如 @hotmail、@outlook 等),并具有有效的 Teams 和 Sharepoint 许可证。
这意味着你需要一个 AAD 租户以及至少一个拥有相应许可证的用户。在发布时,AAD 许可证中心有一些免费试用许可证可以满足此工具的要求。
在使用该账户与 TeamsPhisher 之前,你需要至少登录一次将用于发送消息的用户个人 Sharepoint。地址类似于 tenantname-my.sharepoint.com/personal/myusername_mytenantname_onmicrosoft_com 或 tenantname-my.sharepoint.com/personal/myusername_mytenantname_mycustomdomain_tld。
在本地要求方面,建议更新到最新版本的 Python3。你还需要 Microsoft 的身份验证库:``` pip3 install msal
# 用法```
usage: teamsphisher.py [-h] -u USERNAME -p PASSWORD -a ATTACHMENT -m MESSAGE (-e EMAIL | -l LIST) [--greeting GREETING] [--securelink] [--personalize]
[--preview] [--delay DELAY] [--nogreeting] [--log] [--sharepoint SHAREPOINT]