
Offensive Docker es una imagen con las herramientas ofensivas más utilizadas para crear un entorno fácil y rápidamente para lanzar evaluaciones a los objetivos.
Offensive Docker es una imagen con las herramientas más utilizadas para crear un entorno de pentest de forma fácil y rápida.
➡️ Nota: Revisa el siguiente repositorio para saber cómo lanzar offensive docker en un VPS en Google Cloud Platform o Digital Ocean (crédito gratis incluido). Offensive Docker VPS
Consulta la wiki del proyecto para obtener documentación.
Puedes usar la imagen docker mediante las siguientes dos opciones:
git clone --depth 1 https://github.com/aaaguirrep/offensive-docker.git
cd offensive-docker
docker build -t offensive-docker .
docker run --rm -it --name my-offensive-docker offensive-docker /bin/zsh
Usa la imagen desde Docker Hub: aaaguirrep/offensive-docker
docker pull aaaguirrep/offensive-docker
docker run --rm -it --name my-offensive-docker aaaguirrep/offensive-docker /bin/zsh
Existen diferentes casos de uso para la imagen y deberías saber cómo ejecutar el contenedor correctamente.
Usar el contenedor para acceder a máquinas HTB (Hack the Box) mediante la VPN de HTB.
docker run --rm -it --cap-add=NET_ADMIN --device=/dev/net/tun --sysctl net.ipv6.conf.all.disable_ipv6=0 --name my-offensive-docker aaaguirrep/offensive-docker /bin/zsh
Compartir información desde tu directorio local al directorio del contenedor y guardar información en tu directorio local. Debes guardar la información bajo el directorio /offensive.
docker run --rm -it -v /ruta/al/directorio/local:/offensive --name my-offensive-docker aaaguirrep/offensive-docker /bin/zsh
Exponer los servicios internos del contenedor (apache, squid) para tu entorno local.
docker run --rm -it --name my-offensive-docker -p 80:80 -p 3128:3128 aaaguirrep/offensive-docker /bin/zsh
Dentro del contenedor, inicia los servicios apache2 y squid con los alias.
apacheUp
squidUp
Montar directorios usando el comando umount.
docker run --rm -it --privileged --name my-offensive-docker aaaguirrep/offensive-docker /bin/zsh
Las herramientas se descargan en el directorio /tools.
Puedes configurar la imagen docker con configuraciones útiles como:
Para usar claves de acceso, tokens o API Keys en el docker, revisa el siguiente repositorio Offensive Docker Custom
Para usar ambas opciones, debes usar la opción -v para mapear el directorio local con el directorio /offensive del contenedor.
Agrega la siguiente línea en el paso "Create shortcuts" del Dockerfile, construye una nueva imagen y ejecuta un nuevo contenedor con la opción -v.
RUN echo "alias vpnhtb=\"openvpn /offensive/ruta/al/archivo/ovpn\"" >> /root/.zshrc
Crea un nuevo Dockerfile con los siguientes pasos, construye una nueva imagen y ejecuta un nuevo contenedor con la opción -v.
FROM aaaguirrep/offensive-docker
# Crear un acceso directo y cargar el archivo ovpn desde la estación de trabajo
RUN echo "alias vpnhtb=\"openvpn /offensive/ruta/al/archivo/ovpn\"" >> /root/.zshrc
Cuando eliminas un contenedor, toda la información se elimina, incluido el historial de comandos. La siguiente configuración te ofrece una opción para guardar el historial de comandos en tu entorno local y cargarlo cuando ejecutes un nuevo contenedor. De esta forma, no perderás tu historial de comandos al ejecutar un nuevo contenedor.
Para usar ambas opciones, debes usar la opción -v para mapear el directorio local con el directorio /offensive del contenedor.
Agrega la siguiente línea en el paso "Create shortcuts" del Dockerfile, construye una nueva imagen y ejecuta un nuevo contenedor.
# Guardar y cargar el historial de comandos en tu entorno local
RUN sed -i '1i export HISTFILE="/history/.zsh_history"' /root/.zshrc
Crea un nuevo Dockerfile con los siguientes pasos, construye una nueva imagen y ejecuta un nuevo contenedor.
FROM aaaguirrep/offensive-docker
# Guardar y cargar el historial de comandos en tu entorno local
RUN sed -i '1i export HISTFILE="/history/.zsh_history"' /root/.zshrc
La imagen fue probada en los siguientes entornos:
Servicio Docker para Mac
Docker version 19.03.13, build 4484c46d9d
Servicio Docker para instancia Linux en Google Cloud Platform
Docker version 19.03.6, build 369ce74a3c
Servicio Docker para droplet Linux en Digital Ocean
Docker version 19.03.6, build 369ce74a3c
No guardes información en los directorios del contenedor porque se perderá después de eliminar el contenedor. Debes guardar la información en tu entorno local usando el parámetro -v al ejecutar el contenedor. Por ejemplo:
docker run --rm -it -v /ruta/al/directorio/local:/offensive --name my-offensive-docker aaaguirrep/offensive-docker /bin/zsh
El comando anterior especifica una ruta de directorio local mapeada con el directorio /offensive del contenedor. Debes guardar toda la información bajo el directorio /offensive.
Usa hashcat y john the ripper en entornos controlados como CTF. Puedes experimentar problemas.
Gracias por tus donaciones, siempre son apreciadas.
Mientras tomo el café, reviso más herramientas para agregar a la imagen docker.
¡Gracias a todos nuestros contribuidores!
Copyright (c) 2020, Arsenio Aguirre