Docker, un laboratorio de Pentesting — OWASP Latam
Uno de los grandes problemas al realizar pentesting o pruebas de seguridad es tener todas las herramientas.
Docker nos ayuda a tener ambientes donde podemos tener diferentes herramientas sin tener que pelear con diferentes librerías o dependencias que necesitan ciertas herramientas.
Docker
Necesitamos instalar docker en nuestros sistema Linux, tenemos las instrucciones para diferentes distribuciones linux.
Conocimientos previos.
Para empezar necesitamos saber los comandos básicos de docker.
docker login
docker ps
docker ps -a
docekr rm <id_image>
docker logs <id_image>
docker inspect
docker-compose ps
docker-compose up
docker-compose down
Herramientas para pentesting
Al trabajar con diferentes herramientas para realizar muchas pruebas a diferentes entornos necesitamos instalar sus dependencias o el software necesario para que funcione este script o herramienta que necesitamos.
Kali Linux
Ya todos conocemos kali Linux y tiene una gran variedad de herramientas que son utiles para realizar diferentes tareas, pero tambien tenemos un docker para poder utilizar kali.
docker@machine:~$ docker pull kalilinux/kali-rolling
docker@machine:~$ docker run -t -i kalilinux/kali-rolling /bin/bash
root@<id_docker>:/# apt-get update && apt-get install metasploit-framework nmap sqlmap
Metasploit
Uno problema que constantemente tengo es la instalación y configuración de mestasploit pero con docker tenemos la facilidad de ejecutarlo de una manera rápida.
Es muy sencillo ejecutarlo y realizar
# ./metasploit-framework/docker/bin/msfconsole
Pero al utilizar metasploit necesitamos tener puertos disponibles para realizar una shell reversa, por defecto se tiene el puerto 444 abierto pero podemos habilitar diferentes puertos en el archivo docker-compose.yml.
NOTA: Agregar 2 lineas para que postgres no solicite una contraseña para conectarse a la DB.
BugBounty tool Kit
docker pull hackersploit/bugbountytoolkit
docker run -it hackersploit/bugbountytoolkit /bin/bash
Binarios para ataques
Laboratorio de pruebas
En muchas ocaciones se necesita desplegar ciertas tecnologías para poder realizar pruebas, y tener que hacer este tipo de despliegues es muy costoso ya que se tiene que configurar muchos servicios.
Con docker nos podemos minimizar este trabajo de despliegue y buscar vulnerabilidades de una manera mas rápida.
wordpress, drupal, apache, nginx
version: '3.1'
services:
wordpress:
image: wordpress
restart: always
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: exampleuser
WORDPRESS_DB_PASSWORD: examplepass
WORDPRESS_DB_NAME: exampledb
volumes:
- wordpress:/var/www/html
db:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: exampledb
MYSQL_USER: exampleuser
MYSQL_PASSWORD: examplepass
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- db:/var/lib/mysql
volumes:
wordpress:
db:
También tenemos imágenes vulnerables donde podemos usarlo para realizar pruebas y análisis de cada vulnerabilidad a mas detalle.
Crea tu propio Docker vulnerable para CTF’s.
Para esto necesitamos desarrollar algún portal o reto para poder crear el docker respectivo, en este caso crearemos un dockerfile para una aplicación en python que utiliza el framework FLASK.
FROM python:2.7
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
EXPOSE 2345
ENTRYPOINT ["python"]
CMD ["app.py"]
Laboratorio de Pentesting y CTF
Ahora que tenemos herramientas y también ambientes para hacer pruebas, podemos utilizarlo para armar un laboratorio de pruebas.
Bueno espero que te haya servido, hasta un proximo post.
Happy hacking.