
Une plateforme de test de sécurité open source, locale et prioritaire, conçue pour les pentesteurs, les agents IA, les pipelines CI/CD et les équipes.
Un moteur de test de sécurité. Toutes les interfaces.
Une plateforme de test de sécurité ouverte, axée sur le local, pour les pentesters, les agents IA, les pipelines CI/CD et les équipes.
Les outils de sécurité traditionnels ont été conçus autour d'un testeur unique utilisant une interface desktop.
pwnproxy est construit autour d'un moteur de test de sécurité partagé qui peut être contrôlé via un terminal, une TUI, une API REST, des flux WebSocket, des pipelines CI/CD ou des agents IA via MCP.
┌─────────────────────┐
│ pwnproxy core │
│ │
│ Proxy · Scanners │
│ Repeater · Intruder │
│ Sessions · Plugins │
└──────────┬──────────┘
│
┌───────────┬───────────┼───────────┬───────────┐
▼ ▼ ▼ ▼ ▼
CLI TUI REST API WebSocket MCP
│ │ │ │ │
Pentesters Pentesters Automation Teams AI Agents
Le même cœur est utilisé, que vous interceptiez manuellement le trafic, exécutiez un scan automatisé, intégriez des contrôles de sécurité dans un CI/CD ou donniez à un agent IA accès à votre flux de travail de test.
Le proxy, les scanners, le stockage et l'automatisation s'exécutent sur votre infrastructure.
Aucune dépendance cloud n'est requise pour le flux de travail de test principal.
La CLI, la TUI, l'API REST, les flux WebSocket et le serveur MCP sont des interfaces vers le même système sous-jacent.
Vous n'avez pas besoin d'outils séparés pour les tests manuels et l'automatisation.
Exécutez des scans directement depuis la ligne de commande, consommez la sortie JSON ou SARIF et intégrez les résultats dans des pipelines CI/CD.
pwnproxy expose ses capacités via un serveur MCP natif afin que les agents IA compatibles puissent interagir avec le même moteur de test utilisé par les opérateurs humains.
Les scanners et les hooks utilisent une architecture de plugins conçue pour les extensions intégrées et tierces.
git clone https://github.com/ericmtzmtz/pwnproxy.git
cd pwnproxy
poetry install
Python 3.12 ou version ultérieure est requis.
poetry run pwnproxy start --proxy-port 8080 --api-port 8000
Cela démarre :
127.0.0.1:8080127.0.0.1:8000http://127.0.0.1:8000/docscurl -x http://127.0.0.1:8080 http://httpbin.org/get
poetry run pwnproxy history
poetry run pwnproxy scan url https://example.com \
--scanners sqli,xss \
--output sarif \
--output-file report.sarif
Codes de sortie :
| Code | Signification |
|---|---|
| 0 | Scan terminé, aucun résultat |
| 1 | Scan terminé, résultats trouvés |
| 2 | Erreur |
pwnproxy est actuellement installé depuis la source avec Poetry. L'empaquetage PyPI est prévu pour une version future.
Mettez en pause, inspectez, modifiez et reprenez le trafic HTTP/HTTPS.
Les scanners intégrés incluent actuellement :
| Scanner | Détection |
|---|---|
| SQLi | Détection aveugle basée sur les erreurs et le temps |
| XSS | XSS réfléchi et stocké avec analyse du contexte |
| LFI | Signatures de contenu, traversée et wrappers PHP |
| XXE | Basé sur les erreurs, XInclude, mutation JSON et flux OOB |
| SSRF | Analyse des paramètres, détection des redirections et validation des callbacks |
Les scanners consomment les flux capturés et peuvent également être exécutés directement en mode headless.
Rejouez et modifiez des requêtes HTTP brutes indépendamment du proxy.
Les résultats préservent les données de requête afin que les problèmes détectés puissent être validés manuellement.
Fuzzing de requêtes utilisant des positions de marqueur §marker§ de style Burp.
Les modes pris en charge incluent :
Découverte de chemins et de fichiers basée sur des listes de mots avec :
Extraction et stockage automatiques de :
Les sessions sont isolées et persistées localement.
Étendez pwnproxy avec des scanners et des hooks personnalisés.
Les plugins peuvent être :
La même interface de plugin est utilisée pour les scanners intégrés et tiers.
Un watchdog suit les échecs de plugins et peut désactiver automatiquement les plugins qui échouent de manière répétée.
Exécutez pwnproxy directement depuis le terminal.
pwnproxy start
pwnproxy history
pwnproxy findings
pwnproxy scan url https://example.com
pwnproxy plugin list
pwnproxy session list
Utilisez une interface terminal interactive pour :
Contrôlez la plateforme par programmation.
curl http://127.0.0.1:8000/api/v1/flows
L'API expose des fonctionnalités pour :
La documentation interactive de l'API est disponible à :
http://127.0.0.1:8000/docs
Consommez des événements en temps réel pour le trafic, les résultats, l'activité du crawler et d'autres flux de travail.
Exemples de flux :
/ws/traffic/ws/findings/ws/eventsCela permet aux interfaces externes et aux systèmes d'automatisation de réagir en temps réel à l'activité de test.
pwnproxy inclut un serveur MCP natif qui expose la plateforme de test aux agents compatibles MCP.
Claude / Copilot / Custom Agent
│
▼
┌──────────────┐
│ MCP Server │
└──────┬───────┘
│
▼
┌──────────────┐
│ pwnproxy API │
└──────┬───────┘
│
┌─────────┼─────────┐
▼ ▼ ▼
Traffic Findings Scanners
│ │ │
└─────────┼─────────┘
▼
Security workflow
Démarrez pwnproxy :
pwnproxy start
Configurez ensuite votre agent compatible MCP :
{
"mcpServers": {
"pwnproxy": {
"command": "python",
"args": [
"-m",
"apps.mcp.src.pwnproxy_mcp.server"
]
}
}
}
Le serveur MCP agit comme une couche d'intégration légère au-dessus de la plateforme pwnproxy.
Voir :
docs/mcp.md
pour la configuration spécifique aux agents et la documentation des outils.
pwnproxy
┌───────────────┐
│ Proxy Layer │
│ mitmproxy │
└───────┬───────┘
│
▼
┌─────────────────┐
│ HookBus │
│ async events │
└────────┬────────┘
│
┌──────────────────┼──────────────────┐
▼ ▼ ▼
Scanners Sessions Plugins
│ │ │
└──────────────────┼──────────────────┘
│
▼
┌─────────────────┐
│ Storage Layer │
│ SQLite / async │
└────────┬────────┘
│
▼
┌──────────────────────────────────────┐
│ Control Plane │
│ │
│ FastAPI · REST · WebSocket · Events │
└──────────────────┬───────────────────┘
│
┌──────────┬────────┼────────┬──────────┐
▼ ▼ ▼ ▼ ▼
CLI TUI REST WS MCP
pwnproxy est conçu pour que le flux de travail de test principal soit indépendant de l'interface utilisée pour le contrôler.
pwnproxy n'est pas un clone de Burp Suite.
Burp Suite reste un excellent outil pour les tests manuels basés sur une interface graphique.
pwnproxy se concentre sur une architecture différente :
| Burp Suite | pwnproxy | |
|---|---|---|
| Modèle principal | Application desktop | Moteur de test partagé |
| Tests manuels | GUI | TUI + interfaces API |
| Automatisation | Extensions / intégrations | CLI + REST + SARIF |
| Agents IA | Intégrations externes | Serveur MCP natif |
| Plugins | Écosystème Java | Plugins basés sur Python |
| Flux de travail headless | Limités | Natifs |
| CI/CD | Outillage externe | Sortie et codes de sortie intégrés |
| Déploiement local | Oui | Oui |
pwnproxy peut également importer les configurations de périmètre de Burp.
pwnproxy import burp --config burp-config.json
Voir :
docs/burp-migration.md
pour les détails de migration.
Exécutez des scans sans démarrer le proxy :
pwnproxy scan url https://example.com \
--output sarif \
--output-file report.sarif
Exemple de flux de travail GitHub Actions :
- name: Install pwnproxy
run: |
git clone https://github.com/ericmtzmtz/pwnproxy.git
cd pwnproxy
pip install poetry
poetry install
- name: Security scan
run: |
cd pwnproxy
poetry run pwnproxy scan url ${{ matrix.url }} \
--output sarif \
--output-file report.sarif
continue-on-error: true
- name: Upload SARIF
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: pwnproxy/report.sarif
pwnproxy utilise un stockage SQLite local par session.
Une session peut contenir :
~/.pwnproxy/sessions/<session>/
├── traffic.db
├── scanner_results.db
├── sessions.db
└── tasks.db
Cela maintient les données de test isolées et portables.
Une session complète peut être sauvegardée ou déplacée comme un répertoire.
Pour les déploiements collaboratifs ou d'infrastructure plus importants, la couche de stockage est conçue autour d'abstractions async SQLAlchemy.
Linux / macOS :
./dev.sh
Windows PowerShell :
.\dev.ps1
Cela démarre :
:8080:8000:4321poetry run pytest
Consultez la documentation de contribution pour les détails d'architecture et de développement.
Avant d'ajouter de nouvelles fonctionnalités majeures, le cycle de développement actuel se concentre sur la stabilité et la cohérence architecturales.
P0 — Invariants d'architecture
P1 — Résilience opérationnelle
P2 — Discipline de publication
L'objectif est de renforcer la plateforme avant de continuer à étendre sa surface.
| Sujet | Documentation |
|---|---|
| Installation | docs/installation.md |
| CLI | docs/cli.md |
| API | docs/api.md |
| MCP | docs/mcp.md |
| Architecture | docs/architecture.md |
| Plugins | docs/plugin-architecture.md |
| Scanners | docs/scanners.md |
| Découverte de répertoires | docs/directory-bruteforce.md |
| Migration Burp | docs/burp-migration.md |
| Développement | docs/development.md |
Les contributions sont les bienvenues.
git clone https://github.com/ericmtzmtz/pwnproxy.git
cd pwnproxy
poetry install
poetry run pytest
Avant de soumettre une pull request :
Les modifications architecturales détaillées et les spécifications sont suivies dans :
openspec/openspec/changes/pwnproxy est maintenu par NEXTECH SOLUTIONS — une entreprise de services en cybersécurité basée au Mexique.
La plateforme principale est gratuite et open source sous la licence AGPLv3.
Les services professionnels peuvent inclure :
| Service | Description |
|---|---|
| Évaluations de sécurité | Engagements de pentest professionnels et rapports |
| Développement personnalisé | Scanners, plugins et intégrations personnalisés |
| Formation | Formation pratique en sécurité et DevSecOps |
| Automatisation | Flux de travail de test de sécurité intégrés dans le CI/CD |
Pour toute demande :
pwnproxy est sous licence GNU Affero General Public License v3.0.
Voir :
LICENSE
Vous êtes libre d'utiliser, de modifier et de distribuer pwnproxy selon les termes de l'AGPLv3.
Conçu pour les tests de sécurité au-delà du desktop.