Serveur MCP regroupant une méthodologie de test d'intrusion à trois niveaux : reconnaissance de la surface d'attaque, analyse statique source-to-sink et validation des vulnérabilités en direct avec chaînes d'escalade.
Blitz Strike est une méthodologie structurée de test d'intrusion — reconnaissance,
analyse du code source et validation — livrée sous forme de serveur MCP universel. Il
énumère la surface d'attaque (BLITZ), trace l'accessibilité de la source au puits
(EAGLE-EYE) et vérifie chaque constatation en direct avant qu'elle ne soit rapportée (STRIKE).
Un seul serveur, tous les agents : de l'application du périmètre aux constatations prêtes à
être soumises en un seul appel run_engagement, avec le manuel de l'outil d'exploitation
pertinent attaché à chaque résultat.
Un résultat de scan est une hypothèse. Un test en direct est le verdict.
Blitz Strike existe pour éliminer les deux modes de défaillance les plus courants dans l'évaluation automatisée de la sécurité : les faux positifs issus de la correspondance de motifs en surface, et les constatations non vérifiées rapportées sans confirmation en direct.
Blitz Strike est un serveur Model Context Protocol (MCP) (TypeScript / Bun) qui
empaquette une méthodologie d'audit de sécurité à 3 niveaux sous forme d'outils appelables —
et exécute l'engagement entier côté serveur, de sorte qu'un seul appel run_engagement
fonctionne depuis Claude Code, Cursor, Hermes, OpenCode, Claude Desktop, Gemini ou tout client MCP.
Blitz Strike mappe une méthodologie structurée de test d'intrusion — reconnaissance, analyse du code source et validation — en trois niveaux d'outils exécutés côté serveur.
| Niveau | Nom | Phase | Ce qu'il fait |
|---|---|---|---|
| 1 | BLITZ | Reconnaissance et cartographie de la surface d'attaque | Énumère la surface d'attaque exposée à grande échelle : points d'entrée non authentifiés, puits dangereux et frontières d'authentification. |
| 2 | EAGLE-EYE | Analyse statique et traçage du flux de données | Trace l'accessibilité de la source au puits et enrichit les constatations par rapport au graphe de chaînes d'escalade. Confirme qu'un puits est accessible, non authentifié et exploitable — et non simplement présent. |
| 3 | STRIKE | Validation et exploitation | Effectue une vérification en direct (réflexion de marqueur + contrôle négatif), l'application du périmètre et l'orchestration afin qu'une constatation soit confirmée avant d'être rapportée. |
Reconnaissance → analyse → validation. Rien n'est rapporté tant que STRIKE ne l'a pas confirmé.
bun build --compile — un exécutable par plateforme.bunx blitzstrike / npx blitzstrike.@modelcontextprotocol/sdk).# Zero-install — works from any MCP client, no clone, no build
npx -y blitzstrike doctor # verify the environment
npx -y blitzstrike install # auto-register with every detected agent CLI
npx blitzstrike install détecte chaque CLI d'agent installée (Claude Code,
Cursor, OpenCode, Codex, Hermes, Gemini, Windsurf, Copilot, Cline) et écrit
la configuration MCP correcte dans chacune, dans son format natif. Redémarrez votre agent et
appelez run_engagement.
Depuis les sources :
git clone https://github.com/shinthink/blitzstrike.git
cd blitzstrike
bun install
bun run src/index.ts serve --mcp
{
"mcpServers": {
"blitzstrike": {
"command": "blitzstrike",
"args": ["serve", "--mcp"]
}
}
}
claude_desktop_config.json ou .mcp.json.cursor/mcp.json.mcp.jsonmcp_servers: dans config.yamlExécutez blitzstrike install pour afficher l'extrait exact.
blitzstrike serve --mcp # start MCP server over stdio (default)
blitzstrike doctor # health check: runtime + 130-tool catalog + creds
blitzstrike install # write MCP config to detected clients (Claude/Cursor/OpenCode)
blitzstrike install --dry-run # preview the config without writing
blitzstrike version # print version
| Vérification | Statut que vous verrez |
|---|---|
| Runtime (bun/node) | OK / FAIL + correctif |
| Catalogue d'outils de sécurité | 63/130 installés, 67 à la demande |
| Identifiants FOFA | OK / WARN + correctif |
| Couches de données (chaînes + tools-catalog) | présentes / manquantes |
Chaque problème comporte une ligne fix: — aucune devinette.
blitzstrike install détecte quels fichiers de configuration de client MCP existent déjà
(Claude ~/.claude.json, Cursor ~/.cursor/mcp.json, projet .mcp.json) et
fusionne l'entrée du serveur Blitz Strike — il n'écrase jamais vos serveurs MCP
existants. Si aucun client n'est détecté, il affiche l'extrait à coller manuellement.
| Outil | Objectif |
|---|---|
blitz_scan(path, max_files) | Scanner une arborescence source : énumérer les points d'entrée non authentifiés + les puits dangereux avec des références fichier:ligne. |
blitz_file(path) | Même scan, sur un seul fichier. |
| Outil | Objectif |
|---|---|
eagle_eye(path, symbol) | Retourner le corps complet d'une fonction, les puits dans le périmètre et les barrières d'authentification dans le périmètre. |
eagle_grep(path, sink, max_hits) | Grep de puits de précision — ne rapporter un résultat QUE dans le corps d'une fonction, signalé comme protégé/non protégé. |
enrich_scan(path, max_files) | Scanner + faire correspondre les puits détectés aux chaînes d'escalade (chains.json). |
| Outil | Objectif |
|---|---|
strike_verify(url, method, data, headers, marker, timeout) | Vérification HTTP en direct avec marqueur + contrôle négatif. |
scope_check(target, scope, mode) | Appliquer le périmètre avant tout test actif (sans DoS, tenant compte des exclusions, contrôlé par mode). |
run_engagement(target, scope, mode, max_files) | Audit complet à 3 niveaux en UN SEUL appel — barrière de périmètre → triage → enrichissement de chaîne → constatations. |
list_chains() | Lister toutes les chaînes d'escalade dans la couche de données. |
fofa_search(query, size, fields) | Recherche dans l'index d'actifs FOFA (nécessite FOFA_EMAIL + FOFA_KEY). |
nvd_lookup(cve_id) | Recherche CVE depuis NVD 2.0 (aucune clé requise). |
| Outil | Objectif |
|---|---|
tool_lookup(name) | Rechercher la commande + les options + l'installation + la vérification d'un outil. |
list_tools() | Lister tous les outils du catalogue, groupés par catégorie. |
skill_lookup(topic) | Rechercher dans la base de connaissances des playbooks skills/ par sujet. |
list_skills() | Lister tous les playbooks de compétences. |
read_skill(name) | Lire le contenu complet d'un playbook. |
ensure_tool(name) | Vérifier si un outil est installé ; sinon, l'installer automatiquement. |
| Outil | Objectif |
|---|---|
read_tool_manual(name) | Lire un manuel approfondi complet pour un outil (270+ manuels). |
list_manuals() | Lister tous les manuels + playbooks. |
read_playbook(name) | Lire un playbook d'engagement (web-app, api-security, AD, etc.). |
list_playbooks() | Lister les 17 playbooks d'engagement. |
| Outil | Objectif |
|---|---|
detect_waf(headers, body) | Détecter un WAF à partir des en-têtes/corps de réponse (139 signatures). |
tech_correlation(tech) | Corréler une technologie à des vulnérabilités + CVE connus (89 technologies). |
cve_correlation(cve) | Corréler une CVE à un produit + des cibles + une sévérité (53 CVE). |
port_correlation(port) | Corréler un port à un service + des vecteurs d'attaque (103 ports). |
fuzzer_payloads(category) | Charges utiles de fuzzing + motifs vulnérables + règles de chaîne. |
intel_summary() | Décomptes de chaque jeu de données de renseignement. |
payload_lookup(topic) | Trouver des charges utiles d'exploitation (66 catégories issues de PayloadsAllTheThings). |
read_payload(category) | Lire une collection complète de charges utiles. |
template_lookup(topic) | Trouver des modèles de détection nuclei (11,9k signatures YAML). |
La couche de renseignement (signatures WAF, corrélations tech/CVE/port, données de fuzzer, ontologie des vulnérabilités, charges utiles d'exploitation, modèles de détection nuclei) provient d'airecon (MIT), PayloadsAllTheThings (MIT) et nuclei-templates (MIT) — chargée à l'exécution et intégrée à la surface d'outils ci-dessus.
270 manuels d'outils + 17 playbooks issus de kali-pentest (Apache-2.0). Ce ne sont PAS de la décoration — ils sont intégrés au flux :
tool_lookup(name) attache automatiquement le manuel complet de l'outil.run_engagement() attache le manuel pertinent selon le champ tools de chaque chaîne correspondante.| Outil | Objectif |
|---|---|
remember(topic, content, type, tags, verified) | Enregistrer un enseignement réutilisable (dédupliqué). verified=true uniquement si le marqueur est reflété + le contrôle négatif inerte. |
memory_lookup(query) | Rechercher dans la mémoire par sujet/tag/contenu, avec score. |
memory_list() | Lister toutes les entrées de mémoire, groupées par type. |
La mémoire est un JSONL en ajout seul à ~/.blitzstrike/memory.jsonl (remplaçable par
BLITZSTRIKE_HOME). run_engagement capture automatiquement les chaînes d'escalade
correspondantes en tant qu'entrées pattern (dédupliquées par identifiant de chaîne), de sorte que la base de connaissances grandit à
chaque engagement — pas de spam en double, et seules les entrées verified=true font autorité.
130 outils de sécurité écrits maison (non copiés d'un quelconque projet), chacun avec une commande de base, des options clés, une commande d'installation par plateforme, une sonde check_installed, une phase, des tags, des alternatives, requires_root, pipes et une page d'accueil.
| Catégorie | Nombre | Exemples |
|---|---|---|
| recon | 23 | subfinder, amass, httpx, naabu, katana, trufflehog |
| exploitation | 13 | sqlmap, commix, dalfox, hydra, hashcat, phpggc |
| blue-team (défensif) | 13 | suricata, zeek, osquery, wazuh, sigma, yara, trivy |
| reverse-engineering | 12 | ghidra, radare2, gdb, pwndbg, angr, binwalk |
| enumeration | 11 | nuclei, ffuf, gobuster, arjun, wafw00f |
| forensics | 10 | volatility3, autopsy, tshark, foremost, steghide |
| active-directory | 8 | netexec, impacket, bloodhound, certipy, kerbrute |
| mobile | 7 | frida, objection, mobsf, apktool, jadx |
| post-exploitation | 6 | linpeas, pspy, chisel, ligolo-ng, pwncat |
| red-team | 6 | sliver, havoc, metasploit, evilginx3, gophish |
| utility | 6 | curl, jq, anew, notify |
| web | 4 | wpscan, joomscan, droopescan, cmseek |
| wireless | 4 | aircrack-ng, wifite, bettercap |
| cloud | 4 | pacu, prowler, scoutsuite, cloudfox |
| crypto | 3 | hashid, ciphey, rsactftool |
32 playbooks de compétences (markdown) — des pépites cachées universelles et sûres en matière de licence issues d'Internet (MIT). Nos playbooks personnels d'arbres d'attaque ont été retirés (ils relevaient d'une méthodologie privée, pas de scripts d'exploitation universels).
ap-*. Playbooks offensifs rares :
cross-forest-trust-abuse, gitea-ci-injection, kerberos-trust-abuse,
multi-domain-ad-attacks, client-side-crypto-forgery.hp-*. Playbooks d'audit de bout en bout :
full-security-audit, smart-contract-audit, api-security-test, sast-code-review,
container-image-scan, iac-cloud-posture.Voir ATTRIBUTION.md pour les mentions complètes de licence/copyright.
57 chaînes d'escalade pilotées par les données, chacune avec des étapes ordonnées comportant :
tool_hint — quel outil Blitz Strike utilisersuccess_criteria — observable binaire pour l'étapeinvariant_check — l'hypothèse qui DOIT tenir pour l'exploitationnegative_control — comment réfuter la constatationExemples : ssrf_cloud_metadata, lfi_log_poison_rce, appkey_leak_deserialization_rce,
hmac_empty_key_forgery, intval_form_id_bypass, extract_variable_injection_lfi,
split_controller_upload_bypass, race_condition_double_spend, ssti_template_injection_rce,
jwt_alg_confusion_forgery, cache_poisoning_xss, subdomain_takeover, et plus encore.
Modifiez chains.json pour ajouter des connaissances — ne codez jamais en dur dans le source.
| Variable | Requise | Objectif |
|---|---|---|
FOFA_EMAIL | Pour fofa_search | E-mail du compte FOFA |
FOFA_KEY | Pour fofa_search | Clé API FOFA |
Tous les autres outils ne nécessitent aucun identifiant.
bun install # deps
bun run typecheck # tsc --noEmit
bun run build # ESM bundle → dist/index.js
bun run compile # single static binary → dist/blitzstrike
eagle_eye pour confirmer le périmètre.FilesMatch .+\.ph(ar|p|tml)$ par défaut d'Apache possède une ancre $ — .php.jpg ne s'exécute pas.strike_verify ne reflète pas votre marqueur ET que le negative_control de la chaîne ne reste pas inerte.Cet outil est fourni à des fins éducatives et de recherche en sécurité autorisée uniquement. Ne l'utilisez pas contre des systèmes sans autorisation explicite de leur propriétaire.