Despliega tu entorno para pentesting con Docker y KrakenRDI
2022-11-23 16:0:3 Author: thehackerway.com(查看原文) 阅读量:20 收藏

Demostración en vídeo de éste post

Hace algún tiempo he empezado el proyecto de KrakenRDI en los pocos ratos que he tenido libres y aunque algunos de vosotros ya lo conocéis y me habéis aportado algunas ideas sobre cómo mejorarlo (muchas gracias a todos), es la primera vez que escribo sobre esto en el blog y ya era hora, creo). Docker es una plataforma estupenda a la hora de crear pequeñas «cajas» conocidas como contenedores, los cuales incluyen todo lo necesario para ejecutar diferentes tipos de aplicaciones. Es flexible, rápido y liviano, a diferencia de las máquinas virtuales tradicionales que se caracterizan por ser pesadas y obligarte a gestionar un sistema operativo independiente del anfitrión. Aunque en mi opinión Docker aún es bastante mejorable, especialmente a la hora de crear imágenes,  es más que suficiente para crear un entorno de pentesting completo, al mejor estilo de distribuciones como Kali o Parrot, pero sin necesidad de sacrificar 50GB de disco duro o más y sin tener que pegarse con los problemas tan habituales en ese tipo de sistemas. Este es precisamente el objetivo de KrakenRDI: permitirte crear una imagen Docker con las herramientas de pentesting que tu quieras usar, seleccionas las que necesitas en un momento, creas la imagen Docker y luego el contenedor. Este modelo tiene varias ventajas en mi opinión:

  1. No va a consumir tanta memoria ni espacio en disco como una VM. Una imagen con todo un «arsenal» de herramientas puede pesar entre 6 y 10 GB como mucho.
  2. Los contenedores que creas partiendo de la imagen los puedes destruir y volver a crear cuando quieras. Si algo no te funciona o la has liado haciendo cambios en ficheros de configuración o instalando programas, no pasa nada: Tiras el contenedor y levantas uno nuevo.
  3. Vas a tener las últimas versiones de las herramientas que hayas seleccionado y además, la probabilidad de incompatibilidades en librerías serán menores ya que solamente se instala lo estrictamente necesario.
  4. Puedes montar el entorno donde quieras, solo hace falta tener Docker instalado.
  5. Puedes crear las imágenes a tu gusto, ya sea partiendo de un fichero Dockerfile o descargando una de las que ya están disponibles en Docker Hub
  6. KrakenRDI soporta cerca de 50 herramientas y utilidades, aunque poco a poco se irán introduciendo más. Me faltan manos 😉
  7. Si echas en falta alguna herramienta que usas habitualmente, puedes abrir el Dockerfile correspondiente e incluirla, construir nuevamente la imagen y con esto ya podrías crear un contenedor con esa utilidad instalada.

Es posible clonar el repositorio de GitHub y luego construir una imagen con el comando «docker build», lo único que hay que tener en cuenta es que existen varios ficheros Dockerfile ubicados en <KRAKENRDI-HOME>/core/docker. Como podrás ver en los nombres de cada uno de estos ficheros, representan alguna de las etapas de una auditoría de pentesting o una campaña de RedTeam, solamente el fichero Dockerfile-base es el que soporta todas las herramientas disponibles en el proyecto. Esto quiere decir que puedes instalar solo las herramientas que necesitas para la etapa de reconocimiento (Dockerfile-recon), explotación (Dockerfile-exploitation), elevación de privilegios (Dockerfile-escalation), etc.
Por ejemplo, para construir una imagen con las herramientas de anonimato (Dockerfile-anon) se ejecutaría el comando:

docker build -t adastraa/krakenrdi:anon -f Dockerfile-anon .

Si quieres las herramientas para la etapa de reconocimiento, usarías Dockerfile-recon con el comando: docker build -t adastraa/krakenrdi:common -f Dockerfile-common .

Y así para todas las etapas de una auditoría. Para saber exactamente que herramientas se incluyen en cada fichero Dockerfile puedes leer la documentación aquí

Como he mencionado antes, también existe la posibilidad de seleccionar manualmente las herramientas y crear una imagen personalizada. El resultado final será un contenedor con únicamente las herramientas que deseas y para ello hay que usar el fichero Dockerfile-base e indicar durante la construcción de la imagen qué herramientas se deben incluir. Por ejemplo:

docker build -f Dockerfile-base -t adastraa/krakenrdi:base –build-arg RECON_NMAP=True –build-arg RECON_SPIDERFOOT=True –build-arg WEAPON_DEMIGUISE=True .

El comando anterior creará una imagen llamada «adastraa/krakenrdi:base» y todos los contenedores creados a partir de ella tendrán instaladas las herramientas Nmap, Demiguise y Spiderfoot. Como puedes ver, para indicar qué herramienta habilitar en la imagen es necesario utilizar la opción «–build-arg» y además, el nombre de la herramienta. Para ver los nombres soportados en KrakenRDI puedes ver la documentación en GitHub aquí.

Ahora bien, si no quieres construir las imágenes manualmente, puedes descargar las que he subido a DockerHub, aunque dichas imágenes habilitan todas las herramientas disponibles en cada uno de los ficheros Dockerfile-* y pesan bastante más, no obstante es una buena alternativa si quieres probar el proyecto rápidamente.

Una vez que creas la imagen, es el momento de levantar un contenedor partiendo de ella. Como ocurre con cualquier contenedor en Docker, si quieres preservar la información que en él se va a almacenar, lo mejor es montar volúmenes y guardar en ellos lo que quieres conservar una vez se destruya el contenedor. En todo caso, la creación de un contenedor con una imagen de KrakenRDI no tiene ningún misterio, basta con ejecutar un comando como «docker run» e indicar las opciones que se quiera junto con el nombre de la imagen. Por ejemplo, la siguiente captura de pantalla enseña cómo se ha creado un contenedor partiendo de la imagen «adastraa/krakenrdi:anon».

Como puedes ver, es posible acceder al contenedor con una shell en bash y ejecutar cualquier tipo de comando, con la ventaja evidente de que ya viene todo montado en dicho contenedor gracias a la imagen seleccionada.

Espero que este proyecto te sea de utilidad y si quieres aportar los PRs siempre son bienvenidos o simplemente prueba el entorno y reporta fallos, eso también ayuda.
En otros artículos describiré con mayor detalle cómo crear imágenes personalizadas, las herramientas disponibles y la API Rest disponible en el proyecto.

Un saludo y Happy Hack!
Adastra.


文章来源: https://thehackerway.com/2022/11/23/despliega-tu-entorno-para-pentesting-con-docker-y-krakenrdi/
如有侵权请联系:admin#unsafe.sh