Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Cordon — Exécutez n'importe quelle commande dans une vue restreinte du système de fichiers sous Linux. | Kitploit
Outils/GitHubGitHub/vishnunandan555/cordon
Utilitaires GénérauxSécurité des ConteneursAnalyse Dynamique (Sandboxing)Scripting et AutomatisationAudit de ConfigurationVirtualisation de SécuritéSécurité RéseauDevSecOpsSécurité de la Chaîne LogistiqueArchived
GitHubvishnunandan555/cordon

Cordon

2il y a 3 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →

Exécutez n'importe quelle commande dans une vue restreinte du système de fichiers sous Linux.

Voir le dépôt
Partager

Cordon

⚠️ PROJET DÉPRÉCIÉ

Le développement de ce projet a été arrêté car quelqu'un d'autre travaillait sur la même idée et a construit une meilleure solution.
Nous recommandons vivement de consulter : Fence par Use-Tusk.

Note : Ce dépôt a été créé à l'origine pour FOSS HACK 2026, même si nous n'avons malheureusement pas pu le terminer à temps.
Cependant, nous avons construit un projet similaire pour Hackathena '26 qui a remporté le 3e prix !
Si vous êtes intéressé, vous pouvez trouver ce dépôt ici : A56-A5/lion.

Cordon exécute n'importe quelle commande dans une vue restreinte du système de fichiers sous Linux. Il utilise les espaces de noms Linux (via bubblewrap) pour masquer tout ce dont votre processus n'a pas besoin — votre répertoire personnel, vos clés SSH, vos identifiants AWS, tout — tout en permettant à la commande de faire son travail.

root@kitploit:~
cordon run --net=allow -- npm install
cordon run -- bash setup.sh
cordon run --profile python -- pip install -r requirements.txt

Pas de root. Pas de conteneurs. Pas de démons en arrière-plan.


Pourquoi ?

Lorsque vous exécutez npm install ou pip install, ce code s'exécute avec toutes vos permissions utilisateur. Il peut lire ~/.ssh/id_rsa, l'exfiltrer vers un serveur, modifier des fichiers que vous possédez — tout en ayant l'air de simplement installer un paquet.

Ce n'est pas de la paranoïa. C'est déjà arrivé :

La réponse de Cordon : ne laissez pas le processus voir ce qu'il ne devrait pas, même si le code est malveillant.


Comment ça fonctionne

Chaque cordon run crée un environnement isolé frais :

  • /usr, /bin, /lib sont montés en lecture seule — les choses peuvent s'exécuter sans casser le système
  • Votre répertoire de projet est en écriture — npm install crée node_modules/, les builds fonctionnent
  • src/ est en lecture seule s'il existe — les fichiers sources ne peuvent pas être réécrits silencieusement
  • ~/.ssh, ~/.aws, HOME — pas montés du tout par défaut
  • Le réseau est désactivé par défaut, ou filtré via un proxy intégré avec liste blanche de domaines avec --net=allow

Quand le processus se termine, le bac à sable disparaît. Rien ne persiste.

Le proxy

Le mode --net=allow démarre un proxy HTTP/HTTPS Rust intégré sur un port localhost aléatoire et l'injecte dans le bac à sable via des variables d'environnement (HTTP_PROXY, https_proxy, npm_config_proxy, etc.). Il intercepte les tunnels CONNECT et vérifie chaque domaine par rapport à une liste blanche avant de transmettre.

La liste blanche par défaut inclut registry.npmjs.org, pypi.org, crates.io, github.com. Tout ce qui n'est pas dans la liste reçoit un 403 — même si le script postinstall du paquet tente de contacter son serveur.

root@kitploit:~
# Only reaches npmjs.org and its CDNs — nothing else
cordon run --net=allow -- npm install

# Add a domain for a private registry
cordon run --net=allow --domain my.internal.registry -- npm install

Seccomp

Ajoutez éventuellement un filtre d'appels système :

root@kitploit:~
# Blocks ptrace, kexec_load, mount, perf_event_open, process_vm_*
cordon run --seccomp basic --net=allow -- npm install

# Strict allowlist — only known-safe syscalls
cordon run --seccomp strict -- python3 untrusted.py

C'est une deuxième ligne de défense. Même si quelque chose s'échappe de la restriction du système de fichiers, il ne peut toujours pas appeler ptrace pour s'attacher à un autre processus ou perf_event_open pour un travail sur canal auxiliaire.


Installation

root@kitploit:~
git clone https://github.com/LORDv1shnu/Cordon
cd Cordon
bash install.sh        # builds release binary → ~/.local/bin/cordon

Ou manuellement :

root@kitploit:~
cargo build --release
cp target/release/cordon ~/.local/bin/

Vous avez besoin de bubblewrap installé :

root@kitploit:~
sudo apt install bubblewrap    # Ubuntu/Debian
sudo dnf install bubblewrap    # Fedora
sudo pacman -S bubblewrap      # Arch

Première exécution après installation :

root@kitploit:~
cordon scan    # scans your system once, takes ~30s, writes ~/.config/cordon/system.toml
cordon check   # sanity check — makes sure everything's ready

Utilisation

root@kitploit:~
# The basics
cordon run -- echo "hello"
cordon run --net=allow -- npm install
cordon run --net=allow -- pip install -r requirements.txt
cordon run --net=full -- curl https://example.com   # unrestricted (no filtering)

# Seccomp
cordon run --seccomp basic --net=allow -- npm install

# GUI apps
cordon run --gui -- code .
cordon run --gui --optional audio_pipewire --optional dbus_session -- discord

# Built-in profiles (pre-configured for common runtimes)
cordon run --profile node -- npm install
cordon run --profile python -- python3 script.py
cordon run --profile rust -- cargo build

# Debug what's being blocked
cordon run --trace -- node server.js              # strace wrapper, reports denied paths
cordon add --from-trace ~/.config/cordon/logs/last-trace.log  # batch-add missing paths

# Resource limits (needs systemd)
cordon run --mem 512M --cpu 2.0 --timeout 60 -- npm install

# Dry run / verbose
cordon run --dry-run -- npm install               # print the bwrap command, don't run it
cordon run --verbose -- npm install               # print each bwrap arg as it runs

Configuration du projet (cordon.toml)

root@kitploit:~
cordon init                            # auto-detects Cargo.toml / package.json / pyproject.toml
cordon set --net=allow                 # persist flags so you don't type them every time
cordon add /path/to/assets --mode ro   # expose extra paths into the sandbox
cordon edit                            # open cordon.toml in $EDITOR

Inspection et débogage

root@kitploit:~
cordon check               # health check: bwrap, namespaces, AppArmor, modules
cordon doctor              # deeper: kernel version, distro quirks, exact fix suggestions
cordon status              # show what's in system.toml right now
cordon list                # show every mount that would be active on next run
cordon log --errors        # tail the last run's log, errors only
cordon syscalls --preset basic   # list what each seccomp preset blocks

Profils et portabilité

root@kitploit:~
# Named profiles (stored in ~/.config/cordon/profiles.toml)
cordon profile create ci-node --net=allow --optional ld_so_cache
cordon run --profile ci-node -- npm test

# Lockfile for reproducible environments
cordon lock update          # SHA-256 all mount paths → cordon.lock
cordon lock verify          # check nothing drifted

# Share sandbox config with the team
cordon export > sandbox.json
cordon import sandbox.json

Intégration au shell

root@kitploit:~
# Tab completions
cordon completions zsh > ~/.zfunc/_cordon

# Transparent wrappers — make "npm" always run sandboxed
cordon wrap npm
cordon wrap pip
npm install                # actually runs: cordon run -- npm install "$@"
cordon unwrap npm

# Man page
cordon man | man -l -

Couches de configuration

Il y a quatre fichiers de configuration, appliqués dans l'ordre :

Les drapeaux CLI l'emportent toujours. cordon.toml l'emporte sur un profil nommé. Le core.toml intégré au binaire ne peut pas être modifié à l'exécution.


Codes de sortie

Même convention que bwrap et le shell.


Limitations

Cordon n'est pas un conteneur, ni un antivirus, ni un remplacement pour SELinux ou AppArmor. Il restreint la visibilité du système de fichiers et l'accès réseau — il n'essaie pas de détecter les malwares. Si quelque chose possède une exploitation du noyau, il s'échappera. L'objectif est de rendre les attaques de la chaîne d'approvisionnement considérablement plus difficiles, pas impossibles.

Aussi : actuellement uniquement Linux x86_64 et aarch64. bubblewrap est requis.


Technologies

Construit en Rust. Utilise bubblewrap pour les espaces de noms, seccompiler pour la compilation de filtres BPF, clap pour la CLI, tracing pour la journalisation structurée. Le proxy de filtrage de domaine est écrit de zéro en Rust pur (aucun outil proxy externe).

→ COMMANDS.md — référence complète des drapeaux
→ SCANNER_LOGIC.md — comment fonctionne le scanner système
→ MODULE_INFO.md — chaque fichier source expliqué


Construit avec l'aide de l'IA (Gemini). L'architecture, le modèle de sécurité et les décisions de conception sont le travail de l'auteur.

Télécharger l’outil
AttaqueCe qu'elle a fait
LiteLLM (2024)Paquet PyPI malveillant a lu les clés SSH et les variables d'environnement lors de pip install
xz-utils (2024)Porte dérobée au moment de la compilation, injectée via l'étape make pendant l'installation
event-stream (npm, 2018)Paquet npm compromis a volé silencieusement des portefeuilles Bitcoin
SolarWindsAttaque de la chaîne d'approvisionnement via le pipeline de construction/mise à jour
CoucheOùQui l'écrit
core.tomlcompilé dans le binairenon modifiable à l'exécution (inviolable)
system.toml~/.config/cordon/cordon scan
profiles.toml~/.config/cordon/cordon profile create
cordon.tomlrépertoire du projetcordon init / cordon set / cordon add
CodeSignification
0succès
1erreur interne de cordon
2mauvaise utilisation de la CLI
125échec de la configuration du bac à sable (bwrap manquant, etc.)
126commande trouvée mais non exécutable dans le bac à sable
127commande introuvable dans le bac à sable
Ntransféré depuis le processus isolé