En el post de hoy les vamos a enseñar como instalar y utilizar docker, así como la instalación de diferentes sistemas operativos orientados al pentesting.
Índice
¿Qué es Docker?
Docker es un software de código libre que permite que una aplicación y sus dependencias se empaqueten como un contenedor. Estos contenedores son ligeros y portables, permitiendo de esta forma poder compartir código independientemente del sistema operativo sobre el que trabajemos siempre y cuando esté docker instalado.
Docker utiliza imágenes para crear los contenedores. Una imagen podríamos definirla como un sistema operativo que consta de un nombre y un tag para representar las distintas versiones.
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 maquina que ejecuta el contenedor.
A nivel de productividad Docker es uno de los mejores candidatos entre las aplicaciones indispensables para un administrador de sistemas, porque es ágil y liviana. Además tiene un catálogo de contenedores indispensable, entre los que se incluye un contenedor para crear nuestro Kali Linux.
Instalación de Docker
Antes de nada y para evitar posibles problemas si utilizamos una versión anterior de kernel, debemos comprobar si nuestro kernel es superior a la versión 3.14 para para asegurarnos que nuestro sistema soporte AUFS (Another Union File System). Para ello lanzamos el siguiente comando
1 |
uname -r |
En caso de que sea inferior, lo actualizaremos con el siguiente comando (en el caso de debian)
1 |
apt-get install linux-image-extra-‘uname –r’ |
Una vez comprobado este punto, comencemos con la instalación. En mi caso he creado un script pero, podéis lanzar cada comando independiente si os sentís más a gusto con ello.
Creamos el fichero con vim
1 |
vim docker-install.sh |
Y añadimos dentro el siguiente código
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
#!/bin/bash # update apt-get export DEBIAN_FRONTEND="noninteractive" sudo apt-get update # remove previously installed Docker sudo apt-get remove docker docker-engine docker.io* lxc-docker* # install dependencies 4 cert sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common # add Docker repo gpg key curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - echo "deb [arch=amd64] https://download.docker.com/linux/debian stretch stable" >> /etc/apt/sources.list sudo apt-get update # install Docker sudo apt-get install docker-ce # run Hellow World image sudo docker run hello-world # configure Docker to start on boot sudo systemctl enable docker |
Guardamos el fichero, le damos permisos de ejecución y lo lanzamos
1 2 |
chmod +x docker-install.sh ./docker-install.sh |
Con esto ya tendríamos docker instalado y funcionando.
Comandos más utilizados en docker
En docker hay infinidad de comandos disponibles que podemos obtener a través de su página oficial pero, en este caso sólo vamos a comentar los más utilizados
Para ver las imágenes
1 |
docker images |
Para descargar alguna imagen
1 |
docker pull nombre-imagen |
Para ver nuestros contenedores
1 |
docker ps -a |
Para ejecutar dentro del contenedor
1 |
docker run ubuntu ps |
Para entrar al contenedor
1 |
docker run -it ubuntu bash |
Para crear un contenedor con nombre x
1 |
$ docker run --name x ubuntu ls |
En caso que queramos eliminar contenedor
1 |
$ docker rm felipe |
Filtrar contenedor
1 2 |
$ docker ps --filter="exited=0" |
1 |
$ docker logs -f container |
Eliminar contenedor
1 2 |
$ docker rm |
1 |
$ docker rm -f |
Para eliminar todos los contenedores detenidos.
Imprimimos solo el id del contenedor
1 2 |
$ docker ps -a -q |
1 |
$ docker rm $(docker ps -a -q) |
Instalación de la imagen de Kali Linux
1 |
docker pull kalilinux/kali-linux-docker |
Una vez instalado accedemos a la máquina con el siguiente comando
1 |
docker run -t -i kalilinux/kali-linux-docker /bin/bash |
Imágenes de docker para auditorías de seguridad
1 |
docker pull kalilinux/kali-linux-docker |
1 |
docker pull owasp/zap2docker-stable |
1 |
docker pull wpscanteam/wpscan |
1 |
docker pull pandrew/metasploit |
Damn Vulnerable Web Application (DVWA)
1 |
docker pull citizenstig/dvwa |
Vulnerable WordPress Installation
1 |
docker pull wpscanteam/vulnerablewordpress |
Vulnerability as a service: Shellshock
1 |
docker pull hmlio/vaas-cve-2014-6271 |
Vulnerability as a service: Heartbleed
1 |
docker pull hmlio/vaas-cve-2014-0160 |
1 |
docker pull opendns/security-ninjas |
1 |
docker pull usertaken/archlinux-pentest-lxde |
1 |
docker pull diogomonica/docker-bench-security |
1 |
docker pull ismisepaul/securityshepherd |
OWASP WebGoat Project docker image
1 |
docker pull danmx/docker-owasp-webgoat |
1 |
docker-compose build && docker-compose up |
OWASP Mutillidae II Web Pen-Test Practice Application
1 |
docker pull citizenstig/nowasp |