kali linux docker

Kali Linux en docker

by Mayra Salas

Este Dockerfile proporciona una imagen de Kali Linux en docker actualizada con una selección de herramientas útiles para propósitos de seguridad informática y desarrollo. Desde herramientas básicas de red hasta utilidades avanzadas de seguridad, esta imagen está diseñada para ser un entorno completo y funcional para profesionales de la ciberseguridad y entusiastas de la tecnología.

Requisitos previos:

Para utilizar este Dockerfile y construir la imagen resultante, necesitarás tener Docker instalado en tu sistema operativo. Además, se recomienda tener un conocimiento básico de Docker y cómo funciona la construcción de imágenes mediante Dockerfile.

Características destacadas:

  • Herramientas comunes y útiles: La imagen incluye herramientas como curl, wget, vim, git, net-tools, y más para facilitar tareas comunes de administración y desarrollo.
  • Lenguajes de programación: Python 3 con pip, Golang, Node.js y npm están preinstalados, proporcionando un entorno versátil para el desarrollo de aplicaciones y scripts.
  • Paquete «Top 10» de Kali Linux y herramientas de seguridad: Se instala el metapaquete «Top 10» de Kali Linux, que contiene herramientas esenciales para pruebas de penetración y análisis de seguridad, como exploitdb, nikto, wpscan, uniscan, y más.
  • Tor y proxychains: La imagen incluye Tor y proxychains para proporcionar anonimato y capacidad de redireccionamiento de tráfico a través de proxies.
  • Configuración personalizada de ZSH: La shell ZSH se instala con una configuración personalizada utilizando Oh My Zsh, lo que proporciona una experiencia de línea de comandos mejorada.
  • Configuración del servidor SSH: Se configura un servidor SSH para facilitar el acceso remoto al contenedor, con la capacidad de iniciar sesión como usuario root con la contraseña predeterminada ‘toor’.
  • Puerto SSH expuesto: El puerto SSH (22) se expone para permitir la conexión remota al contenedor a través de SSH.

Con estos componentes, la imagen resultante ofrece un entorno robusto y completo para tareas de seguridad informática, desarrollo y administración de sistemas, todo dentro de un contenedor Docker fácilmente portable y reproducible.

FROM kalilinux/kali-rolling

# Set working directory to /root
WORKDIR /root

# Update, upgrade, and clean
RUN apt -y update && \
    DEBIAN_FRONTEND=noninteractive apt -y dist-upgrade && \
    apt -y autoremove && \
    apt clean
RUN apt install ca-certificates -y
# Install common and useful tools
RUN apt -y install curl wget vim git net-tools whois netcat-traditional pciutils usbutils

# Install useful languages
RUN apt -y install python3-pip golang nodejs npm

# Install Kali Linux "Top 10" metapackage and a few cybersecurity useful tools
RUN DEBIAN_FRONTEND=noninteractive apt -y install kali-tools-top10 exploitdb man-db dirb nikto wpscan uniscan lsof apktool dex2jar ltrace strace binwalk

# Install Tor and proxychains, then configure proxychains with Tor
RUN apt -y install tor proxychains
COPY config/proxychains.conf /etc/proxychains.conf

# Install ZSH shell with custom settings and set it as default shell
RUN apt -y install zsh
RUN sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
COPY config/.zshrc .

# Configure SSH server
RUN apt -y install openssh-server
RUN mkdir -p /etc/ssh
RUN echo 'root:toor' | chpasswd
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config

# Expose SSH port
EXPOSE 22

# Start SSH server when container starts
#CMD ["/usr/sbin/sshd", "-D"]

# Set default shell
ENTRYPOINT ["/bin/zsh"]

Comandos para construir la imagen:

docker build -t kali-with-tools .

Con estos archivos, puedes construir la imagen y luego utilizar docker-compose para iniciar un contenedor basado en esa imagen, con el puerto SSH mapeado al puerto 2222 del host.

version: '3'
services:
  kali:
    image: kali-with-tools
    ports:
      - "2222:22"  # Map host port 2222 to container SSH port 22
    restart: unless-stopped

si deseas omitir este proceso, puedes utilizar la imagen ya construida:

version: '3'

services:
  kali:
    image: de0xys/kali:1
    container_name: kali
    ports:
      - "2222:22"  # Mapear el puerto 22 del contenedor al puerto 2222 del host
    restart: unless-stopped
    stdin_open: true  # Abrir STDIN incluso si no está conectado
    tty: true  # Asignar una pseudo terminal (TTY) para interactuar con el contenedor

para ingresar al contenedor debemos ingresar los siguientes comandos

docker exec -ti "nombre de contenedor o id" /bin/zsh
ejemplo : docker exec -ti 9e43710b822b /bin/zsh

o como tiene el servicio ssh ejecutandose

ssh root@localhost -p 2222

Related Posts

Leave a Comment