
Auditeur d'exposition défensif pour Plex2Shell et php2shell — trouvez les vôtres avant qu'ils ne vous trouvent.
____ _ _ _____ _ _ ____ ____ _____ ______
/ ___|| | | | ____| | | | / ___| / ___|| _ \| ____|
\___ \| |_| | _| | | | | \___ \| | | |_) | |__
___) | _ | |___| |___ | |___ ___) | |___ | _ <| __|
|____/|_| |_|_____|_____|_____||____/ \____||_| \_\_____|
Auditeur d'exposition 2shell — trouvez les vôtres avant qu'ils ne vous trouvent.
shellscope vérifie un réseau autorisé pour deux grappes de CVE de 2026 :
session.upload_progress)Il lit les bannières de version et les en-têtes HTTP. Il n'exploite pas, ne s'authentifie pas, ne téléverse pas et ne déclenche pas le bug mémoire.
pipx install shellscope
# or
python -m pip install shellscope
Fonctionnalités
git clone https://github.com/example/security-scanner.git
cd security-scanner
pip install -r requirements.txt
pip install security-scanner
security-scanner scan /path/to/project
security-scanner scan /path/to/project \
--format sarif \
--output results.sarif \
--severity high \
--exclude "tests/*"
Créez un fichier .scanner.yml à la racine de votre projet :
scan:
exclude:
- "node_modules/*"
- "vendor/*"
severity: medium
rules:
- secrets
- dependencies
- configuration
Le scanner est livré avec un ensemble complet de règles intégrées. Chaque règle est conçue pour détecter des problèmes de sécurité spécifiques tout en minimisant les faux positifs.
| ID de règle | Description | Sévérité |
|---|---|---|
| SEC001 | Clé d'API AWS exposée | Critique |
| SEC002 | Clé privée exposée | Critique |
| SEC003 | Mot de passe codé en dur | Élevée |
| SEC004 | Jeton GitHub exposé | Critique |
| SEC005 | Chaîne de connexion à la base de données | Élevée |
| ID de règle | Description | Sévérité |
|---|---|---|
| DEP001 | Dépendance vulnérable connue | Variable |
| DEP002 | Dépendance obsolète | Moyenne |
| DEP003 | Dépendance non épinglée | Faible |
name: Security Scan
on: [push, pull_request]
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run security scanner
run: |
pip install security-scanner
security-scanner scan . --format sarif --output results.sarif
- name: Upload SARIF
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: results.sarif
security-scan:
image: python:3.11
script:
- pip install security-scanner
- security-scanner scan . --format json --output results.json
artifacts:
paths:
- results.json
Les contributions sont les bienvenues ! Veuillez lire le fichier CONTRIBUTING.md pour plus de détails sur notre code de conduite et le processus de soumission des pull requests.
Ce projet est sous licence MIT — voir le fichier LICENSE pour plus de détails.
python -m pip install -e ".[dev]"
# prove the install works, no network traffic
shellscope --self-test
# see what would be scanned
shellscope --cidr 192.168.1.0/24 --dry-run
# audit your network
shellscope --cidr 10.0.0.0/24 --authorized
# inventory CSV: host,port,owner,environment
shellscope --inventory-csv assets.csv --authorized --html report.html
# CI gate
shellscope --inventory-csv assets.csv --authorized --fail-on high --quiet
--authorized est requis pour un scan réel. C'est votre attestation que vous possédez le
réseau ou que vous disposez d'une autorisation écrite pour le tester.
| Ensemble de CVE | Sonde | Verdict |
|---|---|---|
| Plex2Shell | GET /identity → version | < 1.43.3.10861 → CRITICAL |
| php2shell | GET / → Server, X-Powered-By, PHPSESSID | Apache + PHP inférieur au correctif → HIGH |
| php2shell | idem | nginx/LiteSpeed + inférieur au correctif → MEDIUM |
| php2shell | idem | Apache + version masquée → MEDIUM (à vérifier) |
| — | port ouvert, aucune empreinte | INFO |
Versions PHP corrigées (basées sur des fuites jusqu'à l'avis officiel) : 8.2.35 / 8.3.36 / 8.4.27 / 8.5.12.
La distinction HIGH/MEDIUM est intentionnelle : la faille php2shell encore présente n'est signalée que pour
Apache prefork + mod_php, et non comme une RCE PHP générique.
--out audit.csv — une ligne par résultat (par défaut shellscope-results.csv)--json audit.json — métadonnées + résultats--html audit.html — rapport sombre et autonome avec filtre et tri$ shellscope --cidr 127.0.0.1/32 --ports 32400,8888 --force-checks --authorized
[scope] 1 assets / 2 checks
CRITICAL 127.0.0.1:32400 Plex Media Server 1.43.2.10664 Vulnerable to Plex2Shell
HIGH 127.0.0.1:8888 PHP 8.2.34 PHP 8.2.34 < 8.2.35 on Apache
SUMMARY
CRITICAL 1 #
HIGH 1 #
TOTAL 2
--authorized est obligatoire pour un scan réel.--allow-public.--max-hosts, --workers et --delay encadrent le scan.Utilisez-le uniquement sur des réseaux que vous possédez ou pour lesquels vous disposez d'une autorisation écrite de test. Un périmètre de bug bounty n'est pas une licence pour scanner l'internet ; il autorise les actifs listés selon les règles de ce programme.
Server peut décrire Cloudflare, et non la version de PHP.X-Powered-By est souvent désactivé. Un en-tête absent ne prouve pas qu'un correctif est appliqué.| Code | Signification |
|---|---|
| 0 | Scan terminé, aucun résultat à/au-dessus de --fail-on |
| 1 | Résultats à/au-dessus de --fail-on |
| 2 | Garde d'utilisation ou d'autorisation |
python -m pip install -e ".[dev]"
python -m pytest
python -m ruff check src tests
python -m shellscope --self-test
MIT. Usage autorisé uniquement.