skills/mullvad/SKILL.md
Switch Mullvad VPN relays for scoped bug bounty connectivity, DNS failures, transient page-load failures, or suspected VPN exit-node blocking.
npx skillsauth add ghostonbutterbread/bug-bounty-harness mullvadInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use when a scoped bug bounty workflow is failing because the current VPN path appears unhealthy: repeated DNS failures, page-load timeouts, connection resets, stuck browser loads, or a likely blocked Mullvad exit IP.
Do not use relay switching to evade target rules, rate limits, account bans, WAF enforcement, or explicit blocking after noisy testing. Treat it as network-path recovery unless Ryushe explicitly approves a different use.
$HARNESS_ROOT/prompts/mullvad-playbook.md.mullvad status
mullvad relay get
Prefer these city-level constraints first:
mullvad relay set location us sea && mullvad reconnect --wait
mullvad relay set location us lax && mullvad reconnect --wait
mullvad relay set location us sjc && mullvad reconnect --wait
Nearby fallbacks if the West Coast city pool is unhealthy:
mullvad relay set location us phx && mullvad reconnect --wait
mullvad relay set location us den && mullvad reconnect --wait
mullvad relay set location ca van && mullvad reconnect --wait
If a city works but one relay looks bad, rotate within the same city:
mullvad relay set location us sea us-sea-wg-401 && mullvad reconnect --wait
mullvad relay set location us lax us-lax-wg-409 && mullvad reconnect --wait
mullvad relay set location us sjc us-sjc-wg-501 && mullvad reconnect --wait
Switch after two or three clean retries when:
Do not switch repeatedly during active payload testing. Pause testing, diagnose the network symptom, switch once, reconnect, verify, then continue.
After each switch:
mullvad status
getent hosts target.example
curl -I --max-time 15 https://target.example/
Replace target.example with the full in-scope host. Do not paste cookies, tokens, auth headers, or private URLs into chat.
Record under the active program notes:
Stop and ask Ryushe if the target explicitly blocks VPNs, the issue looks like an account or application ban instead of network routing, the workflow is state-changing, or more than three relay changes fail to restore basic connectivity.
testing
Systematic live request mutation: flip booleans, field ops, headers, content-type, parser differentials, replay vs intercept, null/empty testing. Inherits live-testing-policy scope/rate/ownership rules.
development
Test password reset, forgot-password, reset-token, email reset, and account recovery flows for account takeover risks.
tools
Targeted param/field discovery using tech stack clues, naming conventions, and controlled-rate ffuf — then feeds findings into request-exploration for mutation. Not brute-force; informed and scoped.
testing
Ghost-only workflow for creating approved bug bounty test accounts and saving credential references.