Skip to content

TheNullPigeons/nihil

Repository files navigation

Nihil

Docker container manager for pentesting - Inspired by Exegol but simplified.

📚 Documentation complète disponible dans le dossier docs/

✨ Fonctionnalités

  • 🐳 Gestion de conteneurs Docker - Création, démarrage, arrêt automatiques
  • 🎨 Image Arch Linux customisée - zsh, oh-my-zsh, yay, Chaotic-AUR
  • ⌨️ Auto-complétion - Support bash et zsh
  • 📜 Historique des commandes - Fichier texte simple, facile à copier/coller
  • 📦 Dépôt Arch Linux - Installation automatique des paquets nihil
  • 🚀 Interface CLI intuitive - Commandes simples et puissantes

🚀 Quick Installation

1. Build the Docker image

cd nihil-images
docker build -t nihil:local .

2. Install Nihil

cd ..
pipx install -e .

📖 Usage

Start a container (automatic creation)

nihil start my-pentest

The container will be created automatically if it doesn't exist, then started and a shell will be opened.

Start options

Privileged mode (for network tools):

nihil start my-container --privileged

Mount a workspace:

nihil start my-container --workspace ~/path/to/folder

Host network mode:

nihil start my-container --network host

Start without opening a shell:

nihil start my-container --no-shell

Stop a container

nihil stop my-container

Remove containers

# Remove a single container
nihil remove my-container

# Remove multiple containers at once
nihil remove container1 container2 container3 --force

Display information

nihil info

Displays:

  • Available nihil images
  • Existing containers with their status

Execute a command in a container

nihil exec my-container
nihil exec my-container ls -la
nihil exec my-container python3 script.py

Auto-complétion

# Bash
nihil completion bash | sudo tee /etc/bash_completion.d/nihil

# Zsh
nihil completion zsh > ~/.zfunc/_nihil

Voir Auto-complétion pour plus de détails.

Historique des commandes

Toutes les commandes sont automatiquement enregistrées dans ~/.config/nihil/history.log.

# Consulter l'historique
cat ~/.config/nihil/history.log

# Copier-coller une commande directement

Voir Historique pour plus de détails.

🎯 Usage Examples

Pentest web

nihil start pentest-web --workspace ~/projects/pentest-web
# Work in the container...
# Your files in ~/projects/pentest-web are accessible in /workspace

CTF with full network access

nihil start ctf --privileged --network host

Lightweight container for scripting

nihil start scripts --workspace ~/scripts --no-shell
nihil exec scripts python3 my-script.py

📁 Project Architecture

nihil/
├── nihil.py                   # Entry point
├── pyproject.toml             # Project configuration
├── requirements.txt           # Dependencies
├── README.md                  # This file
├── docs/                      # Documentation complète
│   ├── README.md             # Index de la documentation
│   ├── installation.md       # Guide d'installation
│   ├── usage.md              # Guide d'utilisation
│   ├── docker-image.md       # Documentation de l'image
│   ├── autocompletion.md     # Auto-complétion
│   ├── history.md            # Historique des commandes
│   ├── arch-repo.md          # Dépôt Arch Linux
│   ├── development.md        # Guide de développement
│   └── faq.md                # Questions fréquentes
└── nihil/
    ├── __init__.py           # Version and metadata
    ├── nihilController.py    # Main controller with CLI
    ├── nihilManager.py       # Docker management
    ├── nihilHelp.py          # CLI parser
    ├── nihilFormatter.py     # Output formatting
    ├── nihilError.py         # Error handling
    ├── nihilDoctor.py        # Diagnostics
    └── nihilHistory.py       # Command history

🔧 Available Commands

start

Start a container (creates it automatically if it doesn't exist)

nihil start <name> [options]
  --privileged       Privileged mode (full network access)
  --network <mode>   Network mode (e.g., host)
  --workspace <path> Mount a working directory
  --no-shell         Don't open shell after starting

stop

Stop a running container

nihil stop <name>

exec

Execute a command in a container

nihil exec <name> [command]
# Default: zsh

completion

Generate shell completion script

nihil completion <bash|zsh>

doctor

Run diagnostics checks

nihil doctor

uninstall

Remove nihil images

nihil uninstall [image1 image2 ...] [--force]

remove

Remove one or more containers

nihil remove <name> [name2 name3 ...] [--force]

info

Display available images and containers

nihil info

🛠️ Configuration

Environment Variables

  • DOCKER_HOST: Docker host (default: local Unix socket)

Image Customization

Modify nihil-images/build/modules/ to add custom installation modules.

🔥 Tips

Quick cleanup of multiple containers

nihil remove test1 test2 test3 --force

Persistent workspace

# Your files in ~/my-project are preserved even after container removal
nihil start project --workspace ~/my-project

🛠️ Outils disponibles

Le dépôt nihil fournit plusieurs outils de pentest :

  • netpath - Découverte intelligente de chemins d'attaque réseau avec interface TUI
  • netexec - The Network Execution tool (successor to CrackMapExec)
  • Autres outils disponibles via pacman -Sl nihil

Installation dans un conteneur :

nihil start my-pentest
# Dans le conteneur :
pacman -S netpath netexec

📚 Documentation complète

Pour plus de détails, consultez la documentation complète :

🤝 Authors

  • 0xbbuddha
  • Goultarde

📄 License

MIT License - Voir le fichier LICENSE pour plus de détails.

About

Comprehensive penetration testing environment

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages