pwndrop Autohospedaje Payloads Equipo Rojo
pwndrop Autohospedaje Payloads Equipo Rojo

pwndrop: Autohospedaje de Payloads para Equipo Rojo

CRÉDITOS NO HEREDADOS

El siguiente contenido es una traducción no oficial del repositorio original (Github) citado al final del artículo. La única intención es la comprensión de la herramienta en idioma español.

pwndrop es un servicio de alojamiento de archivos auto-desplegable para enviar payloads del Red Team o compartir de forma segura tus archivos privados a través de HTTP y WebDAV.

Si alguna vez has necesitado configurar rápidamente un servidor web nginx/apache para alojar tus archivos y nunca estuviste contento con las limitaciones de python -m SimpleHTTPServerpwndrop es definitivamente para ti!

Demo pwndrop
Demo pwndrop

Con pwndrop puedes:

  • Sube y comparte inmediatamente varios archivos usando tu propio VPS privado, usando el método de arrastrar y soltar.
  • Decide hacer que los archivos estén disponibles o no disponibles para su descarga con un solo clic.
  • Configurar URLs de descarga personalizadas, para archivos compartidos, sin jugar con la estructura de directorios.
  • Prepara los archivos de fachada, que serán servidos en lugar del archivo original cuando te apetezca.
  • Configurar redirecciones automáticas para falsificar la extensión del archivo en un enlace compartido.
  • Cambiar el tipo de MIME del archivo servido para cambiar el comportamiento del navegador cuando se hace clic en un enlace de descarga.
  • Servir los archivos a través de HTTP, HTTPS y WebDAV. 
  • Instalar y configurar todo usando un bash oneliner (una sola línea).
  • Configura pwndrop para que funcione como un servidor de nombres y responda con un registro DNS A válido a cualquier subdominio que elijas.
  •  Protege tu panel de administración detrás de una ruta URL secreta personalizada e inicia sesión de forma segura con tu propio nombre de usuario y contraseña.
  • No te preocupes por configurar los certificados HTTPS ya que pwndrop hace todo por ti en segundo plano (incluyendo las auto-renovaciones).

Su principal objetivo es hacer que el intercambio de archivos sea tan fácil e intuitivo como sea posible, a la vez que se implementan características adicionales para ayudar en las evaluaciones del equipo rojo.

El Frontend de pwndrop está desarrollada en puro Vue.js + Bootstrap sin dependencias de npm o webpack. El backend sirve REST API y maneja una base de datos local, impulsada por el lenguaje GO.

Redacción

Si quieres aprender a usar pwndrop o quieres saber qué nuevas características se han implementado en las últimas versiones, asegúrate de revisar las entradas en el blog:

Guía en vídeo

Echa un vistazo al fantástico vídeo realizado por Luke Turvey (@TurvSec), que explica completamente cómo empezar a usar pwndrop.

Requisitos previos

Si aún no tienes el servidor para desplegarlo en Digital Ocean, te recomiendo encarecidamente. El servidor Debian 9 más barato a 5 dólares por mes con 25 GB de espacio de almacenamiento hará maravillas por ti. Puedes usar mi enlace de referencia para obtener $100 extra para gastar en tus servidores en 60 días de forma gratuita.

Registra un nuevo dominio y apunta sus registros DNS A a tu IP VPS. También puedes registrar un dominio y apuntar sus servidores de nombre ns1 y ns2 a la IP de la instancia pwndrop – responderá automáticamente con respuestas DNS A válidas.

  1. Nombre de dominio registrado que apunta a IP de instancia pwndrop como registros DNS A o como servidor de nombres.
  2. Servidor con al menos 512 MB de RAM.

Si quieres configurar pwndrop sin un dominio, comprueba más abajo cómo configurar una instancia local, que no generará automáticamente los certificados HTTPS.

Instalación

Asegúrate de que no haya ningún servidor DNS o HTTP(S) funcionando antes de intentar instalar pwndrop.

Oneliner

No recomiendo ejecutar oneliners, antes de descargar y comprobar el código del script, pero si realmente tienes prisa, aquí está:

curl https://raw.githubusercontent.com/kgretzky/pwndrop/master/install_linux.sh | sudo bas

Esto descargará el último binario de la versión amd64 e instalará completamente un daemon que se ejecuta en segundo plano.

Desde el binario

Primero tienes que descargar el paquete de lanzamiento que quieres de: https://github.com/kgretzky/pwndrop/releases

Entonces haz lo siguiente (esto realiza las mismas acciones al oneliner):

tar zxvf pwndrop-linux-amd64.tar.gz
./pwndrop stop
./pwndrop install
./pwndrop start
./pwndrop status

Desde el código fuente

En primer lugar, asegúrate de que has instalado el GO con la versión 1.13 como mínimo: https://golang.org/doc/install

Entonces haz lo siguiente:

git clone https://github.com/kgretzky/pwndrop
cd pwndrop
make
make install

Inicio Rápido

Asegúrate de que el pwndrop está funcionando.

  1. Abra la URL secreta para autorizar a tu navegador: https://tudiminio.com/pwndrop (este es un valor por defecto; asegúrate de usar el camino secreto, configurado previamente)
  2. Abre la URL del panel de administración en tu navegador: https://tudiminio.com/ (ya que has autorizado tu navegador, ahora verás una página de acceso al panel de administración)
  3. Crea tu cuenta de administrador o inicia sesión.
  4. Haz clic en el engranaje de configuración en la esquina superior izquierda y asegúrate de cambiar la ruta secreto a algo que no sea /pwndrop.

¡Estás listo!

Ejecutando desde el CLI

No tienes que instalar pwndrop como un daemon y puedes ejecutarlo directamente desde la consola.

usage: pwndrop [start|stop|install|remove|status] [-config <config_path>] [-debug] [-no-autocert] [-no-dns] [-h]

daemon management:
    start           : start the daemon
    stop            : stop the daemon
    install         : install the daemon using the available system manager (systemd, systemv and upstart supported)
    remove          : uninstall the daemon
    status          : check status of the installed daemon

parameters:
    -config         : specify a custom path to a config file (def. 'pwndrop.ini' in same directory as the executable)
    -debug          : enable debug output 
    -no-autocert    : disable automatic TLS certificate retrieval from LetsEncrypt; useful when you want to connect over IP or/and in a local network
    -no-dns         : do not run a DNS server on port 53 UDP; use this if you don't want to use pwndrop as a nameserver
    -h              : usage help

Configuración

En el primer lanzamiento, pwndrop, por defecto, creará un nuevo archivo de configuración pwndrop.ini en el mismo directorio que un ejecutable. Más tarde podrás modificarlo o suministrar el tuyo propio, por ejemplo para pre-configurar pwndrop antes de la instalación para automatizar aún más el despliegue de una herramienta.

Aquí hay un ejemplo de archivo de configuración con todas las variables de configuración disponibles con comentarios:

[pwndrop]
listen_ip = "190.33.86.22"                  # the external IP of your pwndrop instance (must be set if you want to use the nameserver feature)
http_port = 80                              # listening port for HTTP and WebDAV
https_port = 443                            # listening port for HTTPS
data_dir = "./data"                         # directory path where data storage will reside (relative paths are from executable directory path)
admin_dir = "./admin"                       # directory path where the admin panel files reside (relative paths are from executable directory path)

[setup]                                     # optional: put in if you want to pre-configure pwndrop (section will be deleted from the config file on first run)
username = "admin"                          # username of the admin account
password = "secretpassword"                 # password of the admin account
redirect_url = "https://www.somedomain.com" # URL to which visitors will be redirected to if they supply a path, which doesn't point to any shared file (put blank if you want to return 404)
secret_path = "/pwndrop"                    # secret URL path, which upon visiting will allow your browser to access the login page of the admin panel (make sure to change the default value)

Si quieres preconfigurar tu instancia pwndrop antes del despliegue usando cualquiera de los scripts de instalación, coloca tu archivo de configuración en /usr/local/pwndrop/pwndrop.ini y será parseado en el momento en que el daemon pwndrop se ejecute por primera vez.

Créditos

¡Muchas gracias a @jaredhaight por inspirarme a aprender Vue, con su framework Faction C2.

También muchas gracias a todas las personas que me dieron comentarios previos al lanzamiento y me apoyaron con sus opiniones sobre la herramienta!

Licencia

pwndrop está hecho por Kuba Gretzky (@mrgretzky) y está liberado bajo licencia GPL3.

Dark Mode

pwndrop (este enlace se abre en una nueva ventana) por kgretzky (este enlace se abre en una nueva ventana)

Self-deployable file hosting service for red teamers, allowing to easily upload and share payloads over HTTP and WebDAV.

Más artículos
TugaRecon Enumeración de Subdominios
TugaRecon: Herramienta Enumeración de Subdominios