====== Entorno de Pentesting: Kali Linux en Docker ======
Este documento técnico describe el proceso de despliegue de un laboratorio de seguridad personalizado sobre **Linux Mint (2026)** utilizando contenedores.
===== 1. Instalación de Docker (Host Mint/Ubuntu) =====
Instalación del motor de Docker desde los repositorios oficiales para garantizar la última versión estable.
==== Dependencias de sistema ====
sudo apt update && sudo apt install ca-certificates curl gnupg
==== Configuración de Repositorios y Llaves ====
Es crítico usar el codename de Ubuntu (Noble/Jammy) según la base de tu Mint.
# Crear directorio de llaves
sudo install -m 0755 -d /etc/apt/keyrings
# Descargar llave oficial GPG
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# Registrar el repositorio oficial
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$UBUNTU_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
==== Instalación Final ====
sudo apt update && sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
===== 2. Configuración del Dockerfile =====
Archivo de definición para la imagen personalizada basada en **Kali Rolling**.
^ Archivo ^ Descripción ^
| **Dockerfile** | Debe guardarse sin extensión en la carpeta raíz del proyecto |
FROM kalilinux/kali-rolling
# Evitar preguntas interactivas durante la instalación
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y \
# Herramientas de ataque/fuzzing
nmap ffuf feroxbuster gobuster metasploit-framework \
hydra wpscan nikto exploitdb \
# Esteganografía y diccionarios
steghide stegseek crunch cewl \
princeprocessor \
# Utilidades de sistema y red (Corrección de sintaxis aquí)
xxd \
netcat-traditional \
dnsutils \
python3-pip \
curl \
wget \
git \
ruby \
# Limpieza de caché
&& apt-get clean && rm -rf /var/lib/apt/lists/*
# Instalación de Droopescan (Usando el flag necesario en 2026)
RUN pip3 install --break-system-packages --no-cache-dir droopescan
# Instalación de Drupalgeddon2 (Corrección de la URL de GitHub)
RUN git clone https://github.com/dreadlocked/Drupalgeddon2.git /opt/drupalgeddon2 \
&& chmod +x /opt/drupalgeddon2/drupalgeddon2.rb \
&& ln -s /opt/drupalgeddon2/drupalgeddon2.rb /usr/local/bin/drupalgeddon2
WORKDIR /root
===== 3. Comandos de Construcción (Build) =====
Comandos para generar la imagen a partir del Dockerfile.
* **Construir imagen:** ''sudo docker build -t kali-custom .''
* **Verificar imagen:** ''sudo docker images''
* **Guardar imagen:** ''sudo docker save -o mi-kali.tar kali-custom''
===== 4. Ejecución y Montaje de Volúmenes =====
Para que la máquina sea persistente y acceda a diccionarios externos como **SecLists**, se utiliza el parámetro de volumen.
==== Comando de Lanzamiento ====
sudo docker run -it --rm \
-v "$(pwd)/Seclists:/usr/share/wordlists/seclists" \
kali-custom
==== Explicación de Parámetros ====
^ Comando ^ Función ^
| **-it** | Inicia el modo interactivo con una terminal TTY. |
| **--rm** | Borra el contenedor automáticamente al escribir 'exit'. Mantiene el sistema limpio. |
| **-v** | Monta un directorio del PC dentro del contenedor (Bind Mount). |
| **$(pwd)** | Variable que inserta automáticamente la ruta actual absoluta. |
===== 5. Verificación de Herramientas =====
Comandos rápidos para probar que todo se instaló correctamente:
* **Escáneres:** ''nmap -h'', ''ffuf -V''
* **Exploits:** ''searchsploit drupal''
* **CMS:** ''droopescan --help'', ''drupalgeddon2 -h''
* **Diccionarios:** ''ls /usr/share/wordlists/seclists''
===== 6. Mantenimiento del Sistema =====
Docker puede ocupar mucho espacio en disco (aprox. 7GB para esta imagen).
* **Borrar todo lo que no se usa:** ''sudo docker system prune -a''
* **Ver espacio ocupado:** ''sudo docker system df''
**ADVERTENCIA:** El uso de estas herramientas debe limitarse a entornos controlados o con autorización expresa.