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
zerobox — Aislamiento de procesos ligero y multiplataforma, impulsado por el runtime de OpenAI Codex. Aísle cualquier comando con controles de archivos, red y credenciales. | Kitploit
Herramientas/GitHubGitHub/afshinm/zerobox
Seguridad de ContenedoresAnálisis Dinámico (Sandboxing)DevSecOpsSeguridad de IA
GitHubafshinm/zerobox

zerobox

Aislamiento de procesos ligero y multiplataforma, impulsado por el runtime de OpenAI Codex. Aísle cualquier comando con controles de archivos, red y credenciales.

Ver Repositorio
69940hace 3 mesesRevisado por Kitploit

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

SDK de Python para Zerobox

Versión de Zerobox en PyPI Licencia de Zerobox

SDK de Python para zerobox. Aísla en un sandbox cualquier comando con controles de archivos, red y credenciales.

root@kitploit:~
pip install zerobox

Al instalar la rueda, se coloca la CLI de zerobox en el bin/ de tu entorno y expone un SDK de Python.

Para el uso de la CLI, conceptos de secretos, la referencia completa de banderas, números de rendimiento y soporte de plataforma, consulta el README principal.

Inicio rápido

root@kitploit:~
from zerobox import Sandbox

sandbox = Sandbox.create({"allow_write": ["/tmp"]})
print(sandbox.sh("echo hello").text())

Comandos

Tres formas de ejecutar un comando. Cada una devuelve un ShellCommand que puedes terminar con .text(), .json() o .output().

Shell

root@kitploit:~
name = "world"
sandbox.sh(f"echo hello {name}").text()

Python en línea

root@kitploit:~
data = sandbox.py("import json; print(json.dumps({'sum': 1 + 2}))").json()

Comando explícito + argumentos

root@kitploit:~
sandbox.exec("python3", ["-c", "print('hi')"]).text()

Resultados

root@kitploit:~
data = sandbox.sh("cat data.json").json()
result = sandbox.sh("exit 42").output()
# CommandOutput(code=42, stdout='', stderr='')

API Asíncrona

Usa AsyncSandbox en aplicaciones asíncronas para que la espera del subproceso en sandbox no bloquee el bucle de eventos. La forma del comando es la misma que Sandbox, pero la creación y los terminadores se esperan.

root@kitploit:~
from zerobox import AsyncSandbox

sandbox = await AsyncSandbox.create({"allow_write": ["/tmp"]})

text = await sandbox.sh("echo hello").text()
data = await sandbox.sh("printf '{\"ok\": true}'").json()
result = await sandbox.exec("python3", ["-c", "print('hi')"]).output()

Los comandos asíncronos aceptan la misma opción timeout:

root@kitploit:~
import subprocess

try:
    await sandbox.sh("sleep 60").text(timeout=1.0)
except subprocess.TimeoutExpired:
    print("cancelado")

Manejo de errores

La salida no cero lanza SandboxCommandError:

root@kitploit:~
from zerobox import Sandbox, SandboxCommandError

sandbox = Sandbox.create()
try:
    sandbox.sh("exit 1").text()
except SandboxCommandError as e:
    print(e.code, e.stderr)

Secretos

Pasa claves API que el proceso en sandbox nunca ve. El proxy sustituye el valor real solo para hosts aprobados.

root@kitploit:~
import os
from zerobox import Sandbox

sandbox = Sandbox.create({
    "secrets": {
        "OPENAI_API_KEY": {
            "value": os.environ["OPENAI_API_KEY"],
            "hosts": ["api.openai.com"],
        },
        "GITHUB_TOKEN": {
            "value": os.environ["GITHUB_TOKEN"],
            "hosts": ["api.github.com"],
        },
    },
})

sandbox.sh('curl -H "Authorization: Bearer $OPENAI_API_KEY" https://api.openai.com/v1/models').text()

Consulta el README principal para saber cómo funciona la sustitución de marcadores de posición.

Instantáneas

Graba los cambios del sistema de archivos y los revierte automáticamente:

root@kitploit:~
sandbox = Sandbox.create({
    "allow_write": ["."],
    "restore": True,
})
sandbox.sh("npm install").text()

Graba sin revertir:

root@kitploit:~
sandbox = Sandbox.create({
    "allow_write": ["."],
    "snapshot": True,
    "snapshot_exclude": ["node_modules"],
})
sandbox.sh("npm install").text()

Cancelación

Pasa un timeout (segundos) a cualquier terminador:

root@kitploit:~
import subprocess
try:
    sandbox.sh("sleep 60").text(timeout=1.0)
except subprocess.TimeoutExpired:
    print("cancelado")

Variables de entorno

root@kitploit:~
sandbox = Sandbox.create({
    "env": {"NODE_ENV": "production"},
    "allow_env": ["PATH", "HOME"],
    "deny_env": ["AWS_SECRET_ACCESS_KEY"],
})

Consulta el README principal para ver qué se hereda por defecto y los equivalentes de CLI.

Opciones

Sandbox.create(options) acepta una dataclass SandboxOptions o un dict simple. Todos los campos son opcionales.

Claves de dict desconocidas (por ejemplo, allowWrite accidental en lugar de allow_write) lanzan TypeError en el momento de la construcción.

Advertencias

Sandbox.py(code) ejecuta el python3 que esté en PATH dentro del sandbox. Si tu intérprete activo se encuentra fuera de las raíces legibles del sandbox (por ejemplo, Pythons gestionados por uv en ~/.local/share/uv/), recurre a:

root@kitploit:~
import sys
sandbox = Sandbox.create({"allow_read": [sys.prefix]})
sandbox.exec(sys.executable, ["-c", "print('hi')"]).text()

Otros SDKs

  • SDK de TypeScript (npm: zerobox)
  • SDK de Rust (crates.io: zerobox)

Licencia

Apache-2.0

Descargar herramienta
MétodoEn éxitoEn salida no cero
.text()Devuelve stdout como cadenaLanza SandboxCommandError
.json()Analiza stdout como JSONLanza SandboxCommandError
.output()Devuelve CommandOutput(code, stdout, stderr)Devuelve la misma estructura, nunca lanza
CampoTipoDescripción
profilestr | list[str]Perfil(es) con nombre. Una lista se fusiona de izquierda a derecha. Por defecto "workspace".
allow_read / deny_readlist[str]Rutas legibles / bloqueadas.
allow_write / deny_writelist[str]Rutas escribibles / bloqueadas.
allow_netbool | list[str]True permite todo. Una lista lo restringe a esos dominios.
deny_netlist[str]Dominios bloqueados.
allow_allboolAcceso completo al sistema de archivos y la red.
no_sandboxboolDesactivar el sandbox por completo.
strict_sandboxboolFallar en lugar de recurrir a un aislamiento más débil.
cwdstrDirectorio de trabajo.
envdict[str, str]Variables de entorno explícitas.
allow_envbool | list[str]Heredar variables de entorno del proceso padre.
deny_envlist[str]Variables de entorno bloqueadas.
snapshotboolGrabar los cambios del sistema de archivos.
restoreboolGrabar y revertir después de la salida. Implica snapshot.
snapshot_paths / snapshot_excludelist[str]Rutas rastreadas / patrones excluidos.
secretsdict[str, SecretConfig]Secretos con alcances por host.
debugboolImprimir la configuración del sandbox en stderr.