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 Common errors
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. Warnings
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).
Install
pipx install ghunt Imports
- GHuntLib
from ghunt.core import GHuntLib - auth
from ghunt.auth import Auth - geolocate
from ghunt.modules.geolocate import geolocate
Quickstart
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())