Default HTTP capture + browser-profile egress for spawned providers #38
Labels
No labels
bug
documentation
duplicate
enhancement
feature
good first issue
help wanted
invalid
question
refactor
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
nsaspy/hackmode#38
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Outcome
Make operation-scoped HTTP(S) execution use one consistent transport/capture policy instead of each provider inventing proxy, headers, and client identity independently.
Parent capture stack: #26
Provider migration: #2
Hackpert active orchestration: #27/#29
ZAP API/provider work: #21/#22/#23
Operator direction — 2026-08-31
mitmproxy/mitmdumpcapture service should be started and available by default;curl-impersonateimplementation for curl-like HTTP acquisition where its fingerprint semantics are actually preserved;Important boundary: capture vs origin-side TLS fingerprint
Full TLS interception and end-to-end client TLS impersonation are not the same mode.
If
curl-impersonateperforms TLS to a local intercepting proxy, the origin sees the proxy's upstream TLS fingerprint, not curl-impersonate's original browser TLS fingerprint. Do not claim both properties simultaneously.Model this explicitly, for example:
intercept— decrypted HTTP request/response evidence is captured; origin-side TLS fingerprint belongs to the capture proxy;tunnel— CONNECT/raw passthrough preserves the provider/browser TLS handshake toward the origin but the capture layer cannot decrypt/store the HTTP bodies;direct/unsupported— only for capabilities where the proxy is technically inapplicable or policy explicitly permits it; execution evidence must say so rather than pretending capture occurred.The operation may still keep the capture service running in every mode.
HTTP client profile
Define one typed profile selected/frozen for a provider execution, carrying at least:
User-Agent;Accept,Accept-Language,Accept-Encoding, fetch/client-hint headers where supported;curl-impersonate, browser/CDP, ordinary client, etc.);Do not randomize only
User-Agentper request while leaving an obviously incompatible header/TLS profile. A coherent frozen profile is less noisy and more reproducible.Protocol-inapplicable tools (DNS, raw port scanning, etc.) do not get fake HTTP user-agent settings.
mitmproxy/IPX lifecycle
The capture process is a supervised Hackmode provider/service boundary, not a database primitive.
The Python addon/process writes the versioned spool only. It never writes Tek9 directly. Existing #26 checkpoint/quarantine/rotation and execution-graph persistence remain canonical.
ZAP relationship
Keep #21 for typed ZAP API semantics and jobs.
Do not add a separate ZAP HTTP-history capture pipeline if the same traffic can be routed:
client/ZAP -> mitmproxy/IPX -> originZAP alerts remain ZAP-specific typed evidence and may link to canonical HTTP exchanges. Active ZAP scanning remains explicitly operation-scoped per #21.
Required proofs
Ownership handoff
This is provider/runtime implementation, not
source/hackmode-database/**. The existing database worker already supplies typed HTTP exchange/checkpoint/quarantine/rotation persistence under #26. Consumer/process/profile implementation belongs in the provider/Hackpert runtime lane.Canonical execution checklist
Use this section as the RAGE pickup map. Do not recreate these requirements as parallel issues.
mitmproxy/mitmdumpprovidercurl-impersonaterequester integrated with capture/IPXWorker ordering
RAGE completion rule
This umbrella is not complete because individual tools merely exist. Completion requires the integrated proof: one authorized operation starts canonical capture, representative HTTP/browser tooling receives coherent transport/profile configuration, curl-like acquisition records its actual backend/capture mode, ZAP traffic can traverse the same capture authority, visual reconnaissance stores replay-safe canonical evidence, and failures never silently downgrade transport/capture policy.
Database handoff: PR #134 merged the provider-neutral canonical HTTP-header evidence boundary.
make-http-exchange-recordnow accepts bounded sanitized request/response header pairs, snapshots them into immutable operation-scoped execution evidence, and rejects secret-bearing header names (Authorization/cookies/API-key families) rather than persisting their values. Provider/runtime capture work in #133 can target this boundary without writing Tek9 directly or creating a provider-specific HTTP schema.Split this umbrella into dependency-ready RAGE slices:
Keep #133 as the cross-cutting transport/capture policy. Child workers should claim the narrow issues rather than implementing this umbrella wholesale.