By dedsecLab
GhostSSO is a native Burp Suite extension designed to automatically handle complex Single Sign-On (SSO) logins, Multi-Factor Authentication (MFA), and keep your session tokens alive during active penetration testing.
If you've ever had a scan fail because an Okta or Azure AD session timed out, GhostSSO solves that problem by silently driving a stealth headless browser in the background to re-authenticate and feed fresh cookies directly into the Burp Suite Cookie Jar.
- Universal Provider Support: Works with Okta, Google, Microsoft (Azure AD), and GitHub.
- MFA Support: Supports manual MFA handling. If your target requires a hardware key or Authenticator app, GhostSSO can launch a visible browser window, wait for you to tap your key, and then save the session state so you don't have to do it again!
- Stealth Browser: Powered by CloakBrowser to evade basic bot detection that blocks standard Playwright/Puppeteer scripts.
- Burp Native UI: Clean Java Swing interface directly inside Burp Suite to configure your targets and monitor live logs.
Because Burp Suite's native Python support (Jython) is stuck on Python 2.7, GhostSSO uses a Controller-Worker architecture:
- The Controller (
GhostSSO.py): Loaded into Burp Suite via Jython. Provides the GUI and spawns the background process. - The Worker (
sso_worker.py): Runs on your local system's Python 3 installation, driving the CloakBrowser automation.
- Python 3 installed on your host machine.
- CloakBrowser installed:
pip install cloakbrowser - Jython Standalone JAR loaded into Burp Suite (
Extensions->Extension Settings->Python Environment).
- Clone this repository to your local machine.
- Open Burp Suite.
- Go to Extensions -> Installed -> Add.
- Set Extension Type to Python.
- Select
GhostSSO.pyfrom the cloned repository.
- Go to the new SSO Manager tab in Burp Suite.
- Enter the absolute path to
sso_worker.pyon your machine. - Enter your Target URL, Username, and Password.
- Select your SSO Provider.
- If the application requires MFA, check the Manual MFA Required box.
- Click Start Refreshing.
GhostSSO will launch the worker, perform the login, and pipe the fresh cookies directly into Burp Suite's Cookie Jar.
This tool requires entering plaintext credentials into the Burp UI, which are passed to the worker script. Do not use this tool on shared machines where other users can read process arguments.
Pull requests to add new SSO Providers to sso_worker.py are highly encouraged!