🐳 Kali en Docker + Herramientas de Pentesting: Laboratorio Red Team Portátil
At varius vel pharetra vel turpis
¿Quieres un entorno de pentesting listo para desplegar en segundos, portátil y sin levantar máquinas virtuales pesadas? Este artículo te guía paso a paso para construir y usar kali, una imagen Docker basada en Kali Linux con herramientas clave para Red Team y análisis OSINT.
Ideal para consultores, formadores, y pentesters que necesitan rapidez, ligereza y control
📦 1. Descripción General
kali es una imagen Docker personalizada basada en Kali Linux Rolling, pensada para:
🧰 Incluir herramientas básicas de pentesting y OSINT.
🔐 Permitir acceso remoto por SSH (puerto 22222).
🚫 Excluir servicios innecesarios (como HTTP, FTP, SMB).
📁 2. Estructura del Proyecto
Ubicación esperada:
C:\Users\user\Desktop\Docker\Kali\
Archivos necesarios:
Dockerfile
📄 3. Contenido del Dockerfile
FROM kalilinux/kali-rolling
LABEL maintainer="user"
ENV DEBIAN_FRONTEND=noninteractive
# Instalación de herramientas y servicios
RUN apt update && apt upgrade -y && \
apt install -y metasploit-framework nmap sqlmap hydra john \
nikto recon-ng amass dnsenum gobuster wfuzz dirb \
iproute2 tcpdump python3 python3-pip openssh-server \
git curl wget vim htop socat && \
apt clean
# Configuración SSH (puerto 22222)
RUN mkdir -p /var/run/sshd && \
echo 'root:toor' | chpasswd && \
sed -i 's/#Port 22/Port 22222/' /etc/ssh/sshd_config && \
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
EXPOSE 22222
CMD ["/bin/bash", "-c", "service ssh start && tail -f /dev/null"]
✏️ 4. Renombrar Dockerfile si está como .txt
Desde PowerShell:
Rename-Item "Dockerfile.txt" "Dockerfile"
🏗️ 5. Construcción de la Imagen
Ubicado dentro de la carpeta del proyecto, ejecuta:
docker build -t kali
Esto creará la imagen Docker con nombre kali
🚀 6. Crear y Ejecutar el Contenedor
Básico:
docker run -d --name Kali -p 22222:22 kali
Versión avanzada (modo Red Team):
docker run -it --name Kali \ --cap-add=NET_RAW \ --cap-add=NET_ADMIN \ --network bridge \ -p 22222:22222 kali
🔐 7. Acceso al Contenedor
SSH remoto:
ssh root@localhost -p 22222 # Contraseña: password
Acceso directo desde el host:
docker exec -it Kali bash
🌐 8. Crear Red Interna entre Contenedores (opcional)
docker network create redinterna docker run -d --name Kali --network redinterna -p 22222:22 kali
🧱 9. Integrar Metasploit con PostgreSQL
Verificar servicio:
sudo service postgresql start
sudo service postgresql status
Debe aparecer: 17/main (port 5432): online
Crear base de datos:
sudo -u postgres psql
En el prompt de psql:
CREATE USER msf WITH PASSWORD 'msf';
CREATE DATABASE msf OWNER msf; \q
Conectar desde Metasploit:
msfconsole db_connect msf:msf@127.0.0.1/msf db_status
Resultado esperado: Connected to msf.
Autoconexión:
Edita ~/.msf4/msfconsole.rc y añade:
db_connect msf:msf@127.0.0.1/msf
✅ 10. Comprobaciones y Control
Ver contenedores activos:
docker ps -a
Ver logs:
docker logs Kali
Eliminar contenedor:
docker rm -f Kali
Eliminar imagen:
docker rmi kali
🛡️ Aviso Legal y Ético
⚠️ Este contenido tiene fines exclusivamente educativos y de concienciación en ciberseguridad.
Las herramientas, técnicas o procedimientos descritos en este artículo deben utilizarse únicamente en entornos controlados, sistemas propios o con autorización expresa del titular.
El uso indebido de estos conocimientos puede constituir un delito tipificado por la legislación vigente.
UXVconsultoría no se responsabiliza del uso inapropiado de la información aquí expuesta.
