Artículo · Administración de Servidores

Docker para Penetration Testing & Security Training.

Felipe BarriosFelipe Barrios 3 min de lectura

Hola, el siguiente artículo tiene como objetivo introducirnos en el mundo de docker, de manera rápida y enfocada a traspasar conocimientos en corto periodo con una pequeña introducción. Además, vamos a ver un enfoque de cómo podemos utilizar docker como pentester.

¿Qué es docker?

Docker es un programa de código abierto que permite que una aplicación Linux y sus dependencias se empaqueten como un contenedor. La virtualización basada en contenedores aísla las aplicaciones entre sí en un sistema operativo (OS) compartido.

Instalación

Instalación de Docker para Mac.

$ curl -sSL get.docker.com |sh
$ docker-machine ls
NAME     ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER        ERRORS
dinghy   *        virtualbox   Running   tcp://192.168.99.100:2376           v17.03.0-ce

Si queremos realizar la instalación para windows o linux:

Docker for windows.

Si queremos obtener información sobre nuestro servidor:

docker info
docker version

¿Qué es una imagen?

Lo podríamos definir como un sistema operativo con aplicaciones instaladas, las imágenes tienen un nombre y tag para representar distintas versiones, en caso si no se especifica tomara lasted.

Para ver las imágenes

 

docker images

Para descargar alguna imagen ubuntu:

docker pull ubuntu

¿Qué es un contenedor?

Un contenedor se crea a partir de una imagen, contiene todo lo necesario para que una aplicación pueda funcionar. Una de sus ventajas es que es más ligero, ya que utiliza el sistema operativo que tiene instalado la máquina que ejecuta el contenedor.

 

Comandos

Para ver nuestros container:

docker ps -a

Para ejecutar dentro del container:

docker run ubuntu ps 

Para entrar al container:

docker run -it ubuntu bash

Para crear un contenedor con nombre felipe

docker run --name felipe ubuntu ls

En caso que queramos eliminar container

docker rm felipe

Filtrar container:

docker ps --filter="exited=0"
docker logs -f container

Eliminar container:

docker rm
docker rm -f

Para eliminar todos los contenedores detenidos.

Imprimimos solo él, id del contenedor

docker ps -a -q
docker rm $(docker ps -a -q)

Imágenes de Docker para auditorías de seguridad 

Kali Linux

docker pull kalilinux/kali-linux-docker 

OWASP ZAP

docker pull owasp/zap2docker-stable 

WPScan

docker pull wpscanteam/wpscan

Metasploit

docker pull pandrew/metasploit

Damn Vulnerable Web Application (DVWA)

docker pull citizenstig/dvwa 

Vulnerable WordPress Installation

docker pull wpscanteam/vulnerablewordpress 

Vulnerability as a service: Shellshock

docker pull hmlio/vaas-cve-2014-6271 

Vulnerability as a service: Heartbleed

docker pull hmlio/vaas-cve-2014-0160 

Security Ninjas

docker pull opendns/security-ninjas 

Arch Linux Penetration Tester

docker pull usertaken/archlinux-pentest-lxde 

Docker Bench for Security

docker pull diogomonica/docker-bench-security

OWASP Security Shepherd

docker pull ismisepaul/securityshepherd 

OWASP WebGoat Project docker image

docker pull danmx/docker-owasp-webgoat 

OWASP NodeGoat

docker-compose build && docker-compose up

OWASP Mutillidae II Web Pen-Test Practice Application

docker pull citizenstig/nowasp 

docker pull bkimminich/juice-shop - OWASP Juice Shop

 

También tenemos una serie de herramientas que podemos automatizar como nessus, nmap que veremos más adelante con un concepto denominado Dockerfile, en él vamos a crear nuestras propias recetas y conoceremos servicios.

¿Quieres aprender estas técnicas en profundidad?

Continúa tu ruta con Penetration Testing Professional.

Felipe Barrios

Escrito por

Felipe Barrios

CEO at Backtrack Academy

I'm Felipe Barrios CEO of Backtrack Academy ethical hacking community. entrepreneur and developer ruby on rails, Ror became my preferred language, the basis of all my projects, I consider myself a proactive person and passionate about what he does. Currently working as a software developer in scuit, computer security lover I like to work on projects related to digital enterprise.