Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
kali-linux-docker — kali-linux-docker | Kitploit
Herramientas/GitHubGitHub/nu11secur1ty/kali-linux-docker
Escáneres de VulnerabilidadesSeguridad de ContenedoresFrameworks de ExploitsScripting y AutomatizaciónRecopilación de InformaciónVirtualización de SeguridadSeguridad WebPruebas de PenetraciónSeguridad en la NubeDevSecOpsAprendizaje y Educación
118hace 6 añosAún no revisado
GitHub
nu11secur1ty/kali-linux-docker

kali-linux-docker

kali-linux-docker

Ver RepositorioSitio web

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Docker Oficial de Kali Linux

Esta imagen Docker de Kali Linux proporciona una instalación base mínima de la última versión de la Distribución Rolling de Kali Linux. No se añaden herramientas a esta imagen, por lo que necesitarás instalarlas tú mismo. Para más detalles sobre los metapaquetes de Kali Linux, visita https://www.kali.org/news/kali-linux-metapackages/


Docker Hub: https://hub.docker.com/r/nu11secur1ty/kali-linux-docker

REQUIERE QUE EXPERIMENTAL ESTÉ ACTIVADO

Debido a que se pasa --squash al demonio de Docker, si las características experimentales no están activadas en tu demonio, el script build.sh fallará.

En Kali, esto se hace mediante /etc/docker/daemon.json con el siguiente contenido:

root@kitploit:~
{
    "experimental": true
}

Nota: Esto es solo un requisito para nosotros en Offensive Security para reducir el tamaño de la imagen cuando subimos una nueva imagen a Docker Hub. Si estás construyendo para uso personal, puedes eliminar la opción --squash en build.sh

Tue May 21 13:59:06 EDT 2019

Configuración de una imagen Docker de Kali Linux

Obviamente, para poner esto en funcionamiento, necesitas instalar Docker. Para Docker en OSX puedes usar brew, mientras que para la mayoría de otras distribuciones, puedes instalarlo usando tu gestor de paquetes local. Una vez instalado y configurado, solo es cuestión de descargar nuestra imagen desde el repositorio de Docker:

Descargar herramienta
  • Ejemplo de ejecución de Docker y Metasploit + vim + git
root@kitploit:~
nu11secur1ty:~ # docker pull nu11secur1ty/kali-linux-docker
nu11secur1ty:~ # docker run -t -i nu11secur1ty/kali-linux-docker /bin/bash
root@7e2a35940eff:/# apt update
root@7e2a35940eff:/# apt dist-update
root@7e2a35940eff:/# apt update && apt install metasploit-framework
root@7e2a35940eff:/# apt update && apt install git
root@7e2a35940eff:/# apt update && apt install vim
root@7e2a35940eff:/# service postgresql start
root@7e2a35940eff:/# ss -ant
root@7e2a35940eff:/# msfdb init
root@7e2a35940eff:/# msfconsole

Otro software:

  • sqliv2
root@kitploit:~
git clone https://github.com/nu11secur1ty/sqliv2.git
cd sqliv2

. uso enlace:sqliv2


  • nu11secur1ty pack

. Obtener:

root@kitploit:~
git clone https://github.com/nu11secur1ty/nu11secur1ty.git

enlace:nu11secur1ty

######################################################

Construyendo tu propia imagen Docker de Kali Linux

Si quieres construir tus propias imágenes de Kali en lugar de usar las predefinidas, lo hemos hecho fácil con el siguiente script alojado en Kali Linux Docker en Github. Estas imágenes se construyen mejor en un sistema Linux o cualquier otro SO que pueda usar debootstrap.

root@kitploit:~
#!/bin/bash
# Install dependencies (debootstrap)
sudo apt-get install debootstrap
# Fetch the latest Kali debootstrap script from git
curl "https://gitlab.com/kalilinux/packages/debootstrap.git;a=blob_plain;f=scripts/kali;hb=HEAD" > kali-debootstrap &&\
sudo debootstrap kali ./kali-root http://http.kali.org/kali ./kali-debootstrap &&\
# Import the Kali image into Docker
sudo tar -C kali-root -c . | sudo docker import - kalilinux/kali &&\
sudo rm -rf ./kali-root &&\
# Test the Kali Docker Image
docker run -t -i kalilinux/kali cat /etc/debian_version &&\
echo "Build OK" || echo "Build failed!"

      • Último lanzamiento:

DOCUMENTACIÓN DE OTRO SOFTWARE, INSTALACIÓN Y ELIMINACIÓN DE IMÁGENES DOCKER


¿Cómo accedo por SSH a un contenedor en ejecución?

Existe un comando docker exec que se puede usar para conectarse a un contenedor que ya está en ejecución.

  • Usa docker ps para obtener el nombre del contenedor existente
  • Usa el comando docker exec -it <nombre del contenedor> /bin/bash para obtener un shell bash en el contenedor
  • Genéricamente, usa docker exec -it <nombre del contenedor> <comando> para ejecutar cualquier comando que especifiques en el contenedor.

¿Cómo ejecuto un comando en mi contenedor?

La forma adecuada de ejecutar un comando en un contenedor es: docker-compose run <nombre del contenedor> <comando>. Por ejemplo, para obtener un shell en tu contenedor web podrías ejecutar docker-compose run web /bin/bash

Para ejecutar una serie de comandos, debes envolverlos en un solo comando usando un shell. Por ejemplo: docker-compose run <nombre en yml> sh -c '<comando 1> && <comando 2> && <comando 3>'

En algunos casos, es posible que desees ejecutar un contenedor que no esté definido por un archivo docker-compose.yml, por ejemplo, para probar una nueva configuración de contenedor. Usa docker run para iniciar un nuevo contenedor con una imagen determinada: docker run -it <nombre de imagen> <comando>

El comando docker run acepta opciones de línea de comandos para especificar montajes de volúmenes, variables de entorno, el directorio de trabajo y más.

Obteniendo un shell para operaciones de construcción/herramientas

Obtener un shell en un contenedor de construcción para ejecutar cualquier operación es el enfoque más simple. Simplemente deseas acceder al contenedor cli que definimos en el archivo compose. El comando docker-compose -f build.yml run cli iniciará una instancia de la imagen phase2/devtools-build y ejecutará un shell bash para ti. Desde allí eres libre de usar drush, grunt o lo que tu pequeño corazón desee.

Ejecutando comandos, pero no desde un shell dedicado

Otro concepto en el mundo Docker es iniciar un contenedor para ejecutar un solo comando y permitir que el contenedor se detenga cuando el comando se complete. Esto es excelente si ejecutas comandos con poca frecuencia, o no deseas tener otro contenedor ejecutándose constantemente. Ejecutar tus comandos en contenedores de esta manera también es adecuado para comandos que no generan archivos en el sistema de archivos o, si lo hacen, escriben esos archivos en volúmenes montados en el contenedor.

El contenedor drush definido en el archivo de ejemplo build.yml es un contenedor diseñado específicamente para ejecutar drush en un solo directorio de trabajo tomando solo los comandos como argumentos. Este enfoque nos permite proporcionar un mecanismo rápido y fácil para ejecutar cualquier comando drush, como sqlc, cache-rebuild y otros, en tu sitio Drupal de manera rápida y sencilla.

También hay otros ejemplos de un contenedor de comando grunt similar a drush y un contenedor de comando aún más específico para ejecutar un solo comando, drush make, para construir el sitio a partir de un archivo make/dependencias.


La carpeta webapp en el host se montará en la raíz de Apache del contenedor

Contribuir

  • Reportar problemas
  • Abrir un Pull Request

Docker proporciona un solo comando que limpiará cualquier recurso — imágenes, contenedores, volúmenes y redes — que estén huérfanos (no asociados a un contenedor):

root@kitploit:~
docker system prune

Para eliminar adicionalmente cualquier contenedor detenido y todas las imágenes no utilizadas (no solo imágenes huérfanas), agrega la bandera -a al comando:

root@kitploit:~
docker system prune -a

Eliminar una o más imágenes específicas

Usa el comando docker images con la bandera -a para localizar el ID de las imágenes que deseas eliminar. Esto te mostrará cada imagen, incluyendo las capas intermedias. Cuando hayas localizado las imágenes que deseas eliminar, puedes pasar su ID o etiqueta a docker rmi:

  • Listar:
root@kitploit:~
docker images -a
  • Eliminar:
root@kitploit:~
docker rmi Image Image

Eliminar imágenes huérfanas

Las imágenes de Docker constan de múltiples capas. Las imágenes huérfanas son capas que no tienen relación con ninguna imagen etiquetada. Ya no sirven para nada y consumen espacio en disco. Se pueden localizar agregando la bandera de filtro, -f con un valor de dangling=true al comando docker images. Cuando estés seguro de que deseas eliminarlas, puedes usar el comando docker images purge:

NOTA

root@kitploit:~
If you build an image without tagging it, the image will appear on the list of dangling images because it has no association with a tagged image. You can avoid this situation by providing a tag when you build, and you can retroactively tag an images with the docker tag command.
  • Listar:
root@kitploit:~
docker images -f dangling=true
  • Eliminar:
root@kitploit:~
docker images purge

Eliminar imágenes según un patrón

Puedes encontrar todas las imágenes que coincidan con un patrón usando una combinación de docker images y grep. Una vez que estés satisfecho, puedes eliminarlas usando awk para pasar los IDs a docker rmi. Ten en cuenta que estas utilidades no son proporcionadas por Docker y no están necesariamente disponibles en todos los sistemas:

  • Listar:
root@kitploit:~
docker images -a |  grep "pattern"
  • Eliminar:
root@kitploit:~
docker images -a | grep "pattern" | awk '{print $3}' | xargs docker rmi

Eliminar todas las imágenes

Todas las imágenes Docker en un sistema se pueden listar agregando -a al comando docker images. Una vez que estés seguro de que deseas eliminarlas todas, puedes agregar la bandera -q para pasar el ID de la imagen a docker rmi:

  • Listar:
root@kitploit:~
docker images -a
  • Eliminar:
root@kitploit:~
docker rmi $(docker images -a -q)

Eliminar un contenedor al salir

Si sabes al crear un contenedor que no querrás conservarlo una vez que hayas terminado, puedes ejecutar docker run --rm para eliminarlo automáticamente cuando salga.

  • Ejecutar y eliminar:
root@kitploit:~
 docker run --rm image_name

Eliminar todos los contenedores detenidos

Puedes localizar contenedores usando docker ps -a y filtrarlos por su estado: created, restarting, running, paused, o exited. Para revisar la lista de contenedores detenidos, usa la bandera -f para filtrar según el estado. Cuando hayas verificado que deseas eliminar esos contenedores, usa -q para pasar los IDs al comando docker rm.

  • Listar:
root@kitploit:~
docker ps -a -f status=exited
  • Eliminar:
root@kitploit:~
docker rm $(docker ps -a -f status=exited -q)

Eliminar contenedores usando más de un filtro

Los filtros de Docker se pueden combinar repitiendo la bandera de filtro con un valor adicional. Esto resulta en una lista de contenedores que cumplen cualquiera de las condiciones. Por ejemplo, si deseas eliminar todos los contenedores marcados como Created (un estado que puede resultar cuando ejecutas un contenedor con un comando no válido) o Exited, puedes usar dos filtros:

  • Listar:
root@kitploit:~
docker ps -a -f status=exited -f status=created
  • Eliminar:
root@kitploit:~
docker rm $(docker ps -a -f status=exited -f status=created -q)

Eliminar contenedores según un patrón

Puedes encontrar todos los contenedores que coincidan con un patrón usando una combinación de docker ps y grep. Cuando estés satisfecho de tener la lista que deseas eliminar, puedes usar awk y xargs para proporcionar el ID a docker rmi. Ten en cuenta que estas utilidades no son proporcionadas por Docker y no están necesariamente disponibles en todos los sistemas:

  • Listar:
root@kitploit:~
docker ps -a |  grep "pattern”
  • Eliminar:
root@kitploit:~
docker ps -a | grep "pattern" | awk '{print $3}' | xargs docker rmi

Detener y eliminar todos los contenedores

Puedes revisar los contenedores en tu sistema con docker ps. Agregar la bandera -a mostrará todos los contenedores. Cuando estés seguro de que deseas eliminarlos, puedes agregar la bandera -q para proporcionar los IDs a los comandos docker stop y docker rm:

  • Listar:
root@kitploit:~
docker ps -a
  • Eliminar:
root@kitploit:~
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)

Eliminando volúmenes

Eliminar uno o más volúmenes específicos - Docker 1.9 y posteriores

Usa el comando docker volume ls para localizar el nombre o los nombres de los volúmenes que deseas eliminar. Luego puedes eliminar uno o más volúmenes con el comando docker volume rm:

  • Listar:
root@kitploit:~
docker volume ls
  • Eliminar:
root@kitploit:~
docker volume rm volume_name volume_name

Eliminar volúmenes huérfanos - Docker 1.9 y posteriores

Dado que el propósito de los volúmenes es existir independientemente de los contenedores, cuando se elimina un contenedor, un volumen no se elimina automáticamente al mismo tiempo. Cuando un volumen existe y ya no está conectado a ningún contenedor, se llama volumen huérfano. Para localizarlos y confirmar que deseas eliminarlos, puedes usar el comando docker volume ls con un filtro para limitar los resultados a volúmenes huérfanos. Cuando estés satisfecho con la lista, puedes eliminarlos todos con docker volume prune:

  • Listar:
root@kitploit:~
docker volume ls -f dangling=true
  • Eliminar:
root@kitploit:~
docker volume prune

Eliminar un contenedor y su volumen

Si creaste un volumen sin nombre, se puede eliminar al mismo tiempo que el contenedor con la bandera -v. Ten en cuenta que esto solo funciona con volúmenes sin nombre. Cuando el contenedor se elimina correctamente, se muestra su ID. Nota que no se hace referencia a la eliminación del volumen. Si no tiene nombre, se elimina silenciosamente del sistema. Si tiene nombre, permanece silenciosamente presente.

  • Eliminar:
root@kitploit:~
docker rm -v container_name

Conclusión

Esta guía cubre algunos de los comandos comunes utilizados para eliminar imágenes, contenedores y volúmenes con Docker. Hay muchas otras combinaciones y banderas que se pueden usar con cada uno. Para una guía completa de lo disponible, consulta la documentación de Docker sobre docker system prune, docker rmi, docker rm y docker volume rm. Si hay tareas de limpieza comunes que te gustaría ver en la guía, por favor pregunta o haz sugerencias en los comentarios.


Vulnerabilidades

Paquetes proporcionados

¡Buena suerte a todos! ;)

¡Diviértete con tu imagen Docker de Kali! :)