Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Cordon — Ejecute cualquier comando dentro de una vista restringida del sistema de archivos en Linux. | Kitploit
Herramientas/GitHubGitHub/vishnunandan555/cordon
Utilidades de Propósito GeneralSeguridad de ContenedoresAnálisis Dinámico (Sandboxing)Scripting y AutomatizaciónAuditoría de ConfiguraciónVirtualización de SeguridadSeguridad de RedesDevSecOpsSeguridad de Cadena de SuministroArchived
GitHubvishnunandan555/cordon
2hace 3 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Cordon

Ejecute cualquier comando dentro de una vista restringida del sistema de archivos en Linux.

Ver Repositorio

Cordon

⚠️ PROYECTO DEPRECADO

El desarrollo de este proyecto se ha detenido porque otra persona estaba trabajando en la misma idea y construyó una solución mejor.
Recomendamos encarecidamente visitar: Fence by Use-Tusk.

Nota: Este repositorio fue creado originalmente para FOSS HACK 2026, aunque desafortunadamente no pudimos completarlo a tiempo.
Sin embargo, construimos un proyecto similar para Hackathena '26 que ganó el 3er premio!
Si estás interesado, puedes encontrar ese repositorio aquí: A56-A5/lion.

Cordon ejecuta cualquier comando dentro de una vista restringida del sistema de archivos en Linux. Usa namespaces de Linux (a través de bubblewrap) para ocultar todo lo que tu proceso no necesita — tu directorio home, llaves SSH, credenciales de AWS, todo — mientras sigue permitiendo que el comando haga su trabajo.

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

Sin root. Sin contenedores. Sin demonios ejecutándose en segundo plano.


¿Por qué?

Cuando ejecutas npm install o pip install, ese código se ejecuta con todos tus permisos de usuario. Puede leer ~/.ssh/id_rsa, extraerlo a un servidor, modificar archivos que te pertenecen — todo mientras parece que solo está instalando un paquete.

Esto no es paranoia. Ha sucedido:

La respuesta de Cordon: no dejes que el proceso vea lo que no debería, incluso si el código es malicioso.


Cómo funciona

Cada cordon run crea un entorno aislado nuevo:

  • /usr, /bin, /lib se montan en solo lectura — las cosas pueden ejecutarse, no rompen el sistema
  • Tu directorio del proyecto es escribible — npm install crea node_modules/, las compilaciones funcionan
  • src/ está en solo lectura si existe — los archivos fuente no pueden ser reescritos silenciosamente
  • ~/.ssh, ~/.aws, HOME — no se montan en absoluto por defecto
  • La red está desactivada por defecto, o filtrada a través de un proxy integrado de lista blanca de dominios con --net=allow

Cuando el proceso termina, el sandbox desaparece. Nada persiste.

El proxy

El modo --net=allow inicia un proxy HTTP/HTTPS integrado en Rust en un puerto localhost aleatorio y lo inyecta en el sandbox a través de vars de entorno (HTTP_PROXY, https_proxy, npm_config_proxy, etc.). Intercepta túneles CONNECT y verifica cada dominio contra una lista blanca antes de reenviar.

La lista blanca por defecto incluye registry.npmjs.org, pypi.org, crates.io, github.com. Cualquier cosa que no esté en la lista recibe un 403 — incluso si el script postinstall del paquete intenta contactar a su hogar.

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

Opcionalmente, agrega un filtro de llamadas al sistema:

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

Esta es una segunda línea de defensa. Incluso si algo escapa de la restricción del sistema de archivos, todavía no puede llamar a ptrace para adjuntarse a otro proceso o perf_event_open para trabajo de canal lateral.


Instalación

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

O manualmente:

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

Necesitas tener bubblewrap instalado:

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

Primera ejecución después de instalar:

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

Uso

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

Configuración del proyecto (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

Inspeccionar y depurar

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

Perfiles y portabilidad

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

Integración con el 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 -

Capas de configuración

Hay cuatro archivos de configuración, aplicados en este orden:

Las banderas de CLI siempre ganan. cordon.toml supera a un perfil nombrado. El core.toml integrado en el binario no se puede modificar en tiempo de ejecución.


Códigos de salida

Misma convención que bwrap y el shell.


Limitaciones

Cordon no es un contenedor, no es un antivirus y no reemplaza a SELinux o AppArmor. Restringe la visibilidad del sistema de archivos y el acceso a la red — no intenta detectar malware. Si algo tiene un exploit del kernel, escapará. El objetivo es hacer que los ataques a la cadena de suministro sean significativamente más difíciles, no imposibles.

Además: actualmente solo Linux x86_64 y aarch64. Se requiere bubblewrap.


Tecnología

Construido en Rust. Usa bubblewrap para namespacing, seccompiler para compilación de filtros BPF, clap para CLI, tracing para registro estructurado. El proxy de filtrado de dominios está escrito desde cero en Rust puro (sin herramienta proxy externa).

→ COMMANDS.md — referencia completa de banderas
→ SCANNER_LOGIC.md — cómo funciona el escáner del sistema
→ MODULE_INFO.md — cada archivo fuente explicado


Construido con asistencia de IA (Gemini). Arquitectura, modelo de seguridad y decisiones de diseño son trabajo del autor.

Descargar herramienta
AtaqueQué hizo
LiteLLM (2024)Paquete malicioso de PyPI que leyó llaves SSH y variables de entorno en pip install
xz-utils (2024)Puerta trasera en tiempo de compilación inyectada a través del paso make durante la instalación
event-stream (npm, 2018)Paquete npm comprometido que robó silenciosamente billeteras Bitcoin
SolarWindsAtaque a la cadena de suministro a través del pipeline de compilación/actualización
CapaDóndeQuién la escribe
core.tomlcompilado en el binariono editable en tiempo de ejecución (a prueba de manipulaciones)
system.toml~/.config/cordon/cordon scan
profiles.toml~/.config/cordon/cordon profile create
cordon.tomldirectorio del proyectocordon init / cordon set / cordon add
CódigoSignificado
0éxito
1error interno de cordon
2uso incorrecto de CLI
125falló la configuración del sandbox (bwrap faltante, etc.)
126comando encontrado pero no ejecutable dentro del sandbox
127comando no encontrado dentro del sandbox
Nreenviado desde el proceso en sandbox