Muestra las diferencias entre dos versiones de la página.
| — |
tutorial:docker [2026/01/22 06:30] (actual) truper creado |
||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| + | ====== 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 ==== | ||
| + | <code bash> | ||
| + | sudo apt update && sudo apt install ca-certificates curl gnupg | ||
| + | </code> | ||
| + | |||
| + | ==== Configuración de Repositorios y Llaves ==== | ||
| + | Es crítico usar el codename de Ubuntu (Noble/Jammy) según la base de tu Mint. | ||
| + | <code bash> | ||
| + | # 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 | ||
| + | |||
| + | </code> | ||
| + | |||
| + | ==== Instalación Final ==== | ||
| + | <code bash> | ||
| + | sudo apt update && sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin | ||
| + | </code> | ||
| + | |||
| + | ===== 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 | | ||
| + | |||
| + | <code dockerfile> | ||
| + | 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 | ||
| + | |||
| + | </code> | ||
| + | |||
| + | ===== 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 ==== | ||
| + | <code bash> | ||
| + | sudo docker run -it --rm \ | ||
| + | -v "$(pwd)/Seclists:/usr/share/wordlists/seclists" \ | ||
| + | kali-custom | ||
| + | </code> | ||
| + | |||
| + | ==== 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. | ||