hackadvisermx / pentestdocker

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Pentestdocker 2023

Banner

GitHub - Tamaño del código en bytes

Pentestdocker, es una imagen docker con las herramientas más usadas para CTF, Pentesting, Bug Bounty, para ser desplegada fácil y rápidamente en diferentes entornos.

Nota: Pentestdocker puede ser desplegado en la nube de Google o Digital Ocean, se anexa un cupon de crédito gratuito para Digital Ocean

Tabla de Contenido

Características

  • Cuenta con herramientas para CTF, Pentesting y Bug Bounty
  • Conexión a plataformas CTF como hackthebox y tryhackme
  • Servicios de proxy para enviar tráfico web para analisis local con burpsuite
  • Uso de shell zsh con diferentes plugins

Requerimientos

  • Tener instalado el servicio de docker
    • Probado en docker desktop for Mac 3.10 (51484), Enginie 20.10.2

Utilerías instaladas

Utilerías del sistema

  • apache2
  • ccat
  • chromium-browser
  • cifs-utils
  • curl
  • dos2unix
  • jq
  • ftp
  • gotop
  • html2text
  • htop
  • locate
  • lsof
  • nano
  • neofetch
  • p7zip
  • rdate
  • squid
  • ssh
  • tmux
  • tree
  • vim
  • wget
  • unrar
  • unzip
  • xcplip
  • zsh, oh-my-zsh

Utilerias de red

  • chisel
  • dnsenum
  • dnstools (dig, nslookup)
  • fping
  • host
  • iputils-ping
  • netcat
  • netcat (win:nc32.exe,nc64.exe)
  • net-tools (arp, ifconfig, iptunnel)
  • openvpn
  • prips
  • rlwrap
  • socat
  • tcpdump
  • telnetsql
  • traceroute
  • whois

Herramientas de desarrollo

  • awscli
  • git
  • go - 1.17.5
  • nodejs
  • mysql-client
  • php
  • python2
  • python3
  • python3-pip
  • ruby
  • sqlite3

Recon & Enumeration

Scanning

Forensic/Stego

  • binwalk
  • exiftool
  • foremost
  • hexeditor
  • pngcheck
  • steghide
  • strings
  • ztesg

Explotation

Reversing / Pwning

Wordlists

Como usar

Clonando el repositorio

Clonar el repositorio y construir la imagen de pentestdocker localmente:

git clone https://github.com/hackadvisermx/pentestdocker.git
cd pentestdocker
docker build -t pentestdocker .
docker run --rm -it -name pentestdocker pentestdocker /bin/zsh

Descargando de dockerhub

Descargar la imagen preconstruida de pentestdocker desde dockerhub:

docker pull hackadvisermx/pentestdocker
docker run --rm -it -name pentestdocker hackadvisermx/pentestdocker /bin/zsh

Consideraciones al usar pentestdocker

1.Pentesting local

Puedes utilizar el contenedor para pentesting en red local, exponiendo el puerto 80, con persistencia de datos en la carpeta /hackdata:

docker run --rm -it --name pentestdocker -p 80:80 -v /ruta/hackdata:/root/hackdata \
hackadvisermx/pentest-docker /bin/zsh

2.Pentesting vpn y proxy

Puedes usar pentestdocker con soporte vpn, o modo ctf (hackthebox, tryhackme), con el puerto 80 expuesto y persistencia de datos en la carpeta /hackdata. Exponiendo el puerto 3128 para proxy squid lo que permite acceder a http/https de las máquinas dentro de la vpn, además exponiendo el rango de puertos 8080-8090 para servicios adicionales:

docker run --rm -it --name pentest --cap-add=NET_ADMIN --device=/dev/net/tun \
--sysctl net.ipv6.conf.all.disable_ipv6=0  -v /ruta/vpn:/root/vpn -v /ruta/hackdata:/root/hackdata \
-p 3128:3128 -p 80:80 -p8080-8090:8080-8090 hackadvisermx/pentestdocker /bin/zsh

Una vez dentro del contenedor puedes usar los alias definidos shell/alias, de la siguiente forma:

apacheup    - iniciar servidor apache
squidup     - iniciar proxy squid
vpnhtb      - conectar a vpn de hackthebox
vpntry      - conectar a vpn de tryhackme
vpncli      - conectar a vpn personalizada
  • Notas generales para 1 y 2:
    • /ruta/vpn, es la ruta donde están los archivos .ovpn, ahí se guarda el historial del shell también.
    • /ruta/hackdata, es la ruta donde estan los archivos de trabajo, poner ahí lo que se desea persistir entre contenedor y host local

Agradecimientos

Cosas por hacer

  • Usar pipenv para un mejor control de dependencias en la instalación de las utilerías python.
  • Analizar entre descargar y compilar o bajar el release de la herramienta (reducir tiempo vs herramienta actualizada).
  • Automatizar la verificación de las últimas versiones de las herramientas.
  • Personalizar las configuraciones de algunas herramientas: api keys, tokens, etc.
  • Desplegar el pentestdocker en la nube de amazon y microsoft
  • Mejorar la documentación.
  • Abrir a la colaboración (pull requests).

Tabla de Contenido

About


Languages

Language:Dockerfile 32.6%Language:HCL 28.4%Language:Shell 20.6%Language:Jinja 18.4%