GHunt

raw JSON →
2.3.4 verified Sat May 09 auth: no python

An offensive Google framework that provides modules to gather information from Google services. Current version 2.3.4, requires Python >=3.10. Released actively, with major refactors in v2.0.0 (async, CLI, library usage) and v2.1.0 (replaced cookies with OAuth token).

pip install ghunt
error ModuleNotFoundError: No module named 'ghunt'
cause GHunt not installed or installed in a different environment.
fix
Install using pipx: pipx install ghunt. If using pip, ensure the environment is activated.
error ghunt: error: the following arguments are required: module
cause Running `ghunt` without specifying a module.
fix
Use ghunt help to see available modules, then run e.g. ghunt search <email>.
error OAuth token not found. Run ghunt auth first.
cause No credentials file exists. Authentication must be performed before using GHunt.
fix
Run ghunt auth and follow the prompts to generate an OAuth token.
breaking v2.1.0 removed cookie-based authentication entirely. OAuth token is now required.
fix Run `ghunt auth` to generate OAuth token. Remove any cookie files.
breaking v2.0.0 refactored the entire library - async, new CLI, new API. All v1 scripts are incompatible.
fix Rewrite code to use async/await and the new library API. See GitHub README for migration.
gotcha OAuth token (Android token) expires after a certain period. You must re-run `ghunt auth` periodically.
fix Check token expiry with `ghunt auth check` or reauthenticate before running modules.
gotcha Not all Google accounts work; GHunt requires an account with Google's 'multilogin' OAuth flow enabled (typically Android-style tokens).
fix Use a personal Google account (not G Suite/Workspace with restrictions).
pipx install ghunt

Asynchronous example of using GHunt as a library. Requires authentication via OAuth (run `ghunt auth` first).

import asyncio
from ghunt.auth import Auth
from ghunt.core import GHuntLib

async def main():
    auth = Auth()
    await auth.load()  # loads existing credentials or starts OAuth flow
    ghunt = GHuntLib(auth)
    result = await ghunt.search("example@gmail.com")
    print(result)

asyncio.run(main())