Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
dufflebag — Buscar secretos en volúmenes EBS expuestos | Kitploit
Herramientas/GitHubGitHub/bishopfox/dufflebag
Análisis de VulnerabilidadesRecopilación de InformaciónSeguridad en la NubeDetección de Secretos
GitHubbishopfox/dufflebag

dufflebag

Buscar secretos en volúmenes EBS expuestos

Ver Repositorio
305393hace 3 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Dufflebag

Dufflebag es una herramienta que busca secretos que puedan haber quedado accidentalmente en instantáneas públicas de Elastic Block Storage (EBS). ¡Te sorprenderá la cantidad de contraseñas y secretos que simplemente están por ahí!

La herramienta está organizada como una aplicación de Elastic Beanstalk ("EB", no confundir con EBS), y definitivamente no funcionará si intentas ejecutarla en tu propia máquina.

Dufflebag tiene muchas piezas móviles porque en la práctica es bastante complicado leer volúmenes EBS. Debes estar en un entorno AWS, clonar la instantánea, crear un volumen a partir de la instantánea, adjuntar el volumen, montar el volumen, etc... Por eso está hecha como una aplicación de Elastic Beanstalk, para que pueda escalar automáticamente hacia arriba o hacia abajo tanto como quieras, y para que todo se pueda desmontar fácilmente cuando hayas terminado.

Solo mantén un ojo en tu consola de AWS para asegurarte de que nada se descontrole y genere facturas. Hemos intentado pensar en todas las contingencias y proporcionar manejo de errores... ¡pero ya has sido advertido!

Comenzando

Permisos

Necesitarás agregar algunos permisos adicionales de AWS IAM al rol: aws-elasticbeanstalk-ec2-role. Alternativamente, puedes crear un rol completamente nuevo con estos permisos y configurar EB para que use ese rol, pero es un poco más complicado. En cualquier caso, necesitarás agregar:

  • AttachVolume (ec2)
  • CopySnapshot (ec2)
  • CreateVolume (ec2)
  • DeleteSnapshot (ec2)
  • DeleteVolume (ec2)
  • DescribeSnapshots (ec2)
  • DescribeVolumes (ec2)
  • DetachVolume (ec2)
  • PurgeQueue (sqs)
  • ListQueues (sqs)
  • ListAllMyBuckets (s3)
  • PutObject (s3)

Compilación

Descargar herramienta

La aplicación principal está escrita en Go, por lo que necesitarás un compilador Golang. Pero la aplicación EB se compila en un archivo .zip (así es como funciona EB), por lo que el makefile te generará un zip.

  1. Verifica tu región. Dufflebag solo puede operar en una región de AWS a la vez. Si deseas buscar en todas las regiones, tendrás que implementar esa cantidad de instancias. Para cambiar la región, modifica el contenido del archivo fuente region.go.

  2. Instala las dependencias: Ubuntu 18.04 x64:

root@kitploit:~
sudo apt install make golang-go git
go get -u github.com/aws/aws-sdk-go
go get -u github.com/deckarep/golang-set
go get -u github.com/lib/pq
go get -u lukechampine.com/blake3
  1. Luego compila la aplicación EB en un archivo zip con:
root@kitploit:~
make

Ahora deberías ver un archivo dufflebag.zip en el directorio raíz del proyecto.

  1. Por último, necesitarás crear un bucket de S3. Configurar esto automáticamente dentro de Dufflebag podría ser posible, pero en realidad sería bastante difícil. Así que simplemente hazlo tú mismo. Solo necesitas crear un bucket de S3 con permisos predeterminados y que su nombre comience con dufflebag. Los nombres de los buckets de S3 deben ser globalmente únicos, por lo que probablemente necesitarás algún sufijo que sea un montón de galimatías o algo así.

Despliegue en Elastic Beanstalk

Ve a tu consola de AWS y busca la opción de menú Elastic Beanstalk. Esto probablemente también se pueda hacer mediante la CLI, pero esta descripción usará la consola. Selecciona Actions -> Create Environment.

Create Environment

Luego, en la siguiente ventana, elige Worker environment y presiona Select.

Worker Environment

En la siguiente ventana, elige Preconfigured -> Go para la Platform.

Go  Platform

Bajo Application Code, elige Upload your Code.

Upload You Code

Presiona el botón Upload y selecciona el archivo dufflebag.zip que acabas de compilar.

Code Origins

Finalmente, presiona Create Environment para comenzar.

Tomará unos minutos para que AWS cree todo y se ponga en marcha. Una vez creado, Dufflebag comenzará de inmediato. No es necesario hacer nada más.

Eliminar la Válvula de Seguridad

Una vez que tengas esto funcionando, puedes intentarlo de nuevo con la válvula de seguridad eliminada. Por defecto, Dufflebag solo busca en 20 instantáneas de EBS. (Para que no se descontrole en tu primer intento). Para ampliar la búsqueda a toda la región, ve a populate.go, elimina la siguiente línea de código y recompila:

root@kitploit:~
//#####################################################################
//####                    Safety Valve                             ####
//#### Remove this line of code below to search all of your region ####
//#####################################################################
snapshots = snapshots_result.Snapshots[0:20]

Escalado

Una de las razones por las que Dufflebag está diseñado como una aplicación de Elastic Beanstalk es para que puedas escalar el programa automáticamente hacia arriba o hacia abajo fácilmente. Por defecto, se ejecutará en una sola instancia y será bastante lento. Pero si deseas acelerarlo un poco, ajusta el autoescalado en Elastic Beanstalk. Las opciones completas están un poco fuera del alcance de este documento, así que te dejo que juegues con ellas. Pero en la práctica, he encontrado que un simple disparador de uso de CPU funciona bastante bien.

Al configurar el entorno anterior, encontrarás las opciones bajo el botón Configure more options (en lugar de presionar Create environment) y luego presiona Scaling.

Scaling

Obtener el Botín

Dufflebag copiará cualquier archivo interesante al bucket de S3 que creaste anteriormente. (Técnicamente, Dufflebag usará el primer bucket de S3 que encuentre cuyo nombre comience con "dufflebag").

Puedes simplemente ver los archivos llegar uno por uno en tu bucket de S3. Se nombrarán:

nombre_archivo_original_blake3sum_volumeid

Verificar el Estado

Si todo va bien, no deberías necesitar leer los registros. Pero por si acaso, Elastic Beanstalk permite que las aplicaciones escriban en archivos de registro mientras se ejecutan, y estos se capturan navegando a la pestaña Logs. Luego presiona Request Logs y Last 100 Lines. Esto te dará el lote más reciente de registros de Dufflebag. Presiona el botón Download para leerlo. Este archivo contendrá muchos otros registros del sistema, pero la parte de Dufflebag está bajo "/var/log/web-1.log" en la parte superior.

Para ver el historial completo de registros, selecciona Full Logs en lugar de Last 100 Lines. (Ten en cuenta que EB rotará los registros de manera bastante agresiva por defecto).

Adicionalmente, puedes tener una idea del progreso general mirando la cola SQS del entorno. Los entornos de trabajo de Elastic Beanstalk usan SQS para gestionar el flujo de trabajo. Cada mensaje en la cola de Dufflebag representa un volumen EBS a procesar:

Code Origins

La columna Messages Available muestra cuántos volúmenes aún no se han procesado. La columna Messages in Flight muestra cuántos volúmenes se están procesando en este momento.

Ajustar qué Buscar

Dufflebag está programado para buscar cosas que pensamos que probablemente serían "interesantes". Claves privadas, contraseñas, claves de AWS, etc... Pero, ¿y si realmente quieres buscar algo específico para TI? Por ejemplo, tal vez trabajas para bank.com y te gustaría ver qué hay por ahí que hace referencia a bank.com.

Hacerlo requerirá una modificación menor del código de Dufflebag, pero no mucha. ¡No te preocupes! La lógica de qué buscar ocurre en inspector.go. La función pilfer() es una goroutine que se encarga de inspeccionar un archivo. El código allí puede parecer un poco intimidante al principio, pero esto es lo que hace. (Y cómo puedes modificarlo sin mucha dificultad)

Listas negras de nombres de archivo:

  1. Verifica el nombre del archivo contra una lista negra. (blacklist_exact)
  2. Verifica el nombre del archivo contra una lista negra de "contiene". (Rechaza el archivo si contiene una cadena determinada) (blacklist_contains)
  3. Verifica el nombre del archivo contra una lista negra de prefijo. (Rechaza el archivo si comienza con una cadena determinada) (blacklist_prefix)

Puedes modificar la lógica de búsqueda aquí con bastante facilidad simplemente cambiando lo que hay en esas tres listas. Aunque en general recomendaría dejarlas intactas. Estas listas negras están diseñadas para cubrir archivos aburridos que están presentes en muchos sistemas de archivos y evitan que Dufflebag necesite inspeccionar en profundidad cada archivo en toda AWS. Los datos sensibles que buscas PODRÍAN estar en esos archivos... pero probablemente no.

Lista blanca de nombres de archivo:

  1. La función IsSensitiveFileName() verifica el nombre del archivo contra una expresión regular que encuentra nombres de archivo sensibles. (Como /etc/shadow, bash_history, etc...)

Contenido de archivos:

  1. La función checkContentsRegex() verifica el contenido del archivo contra un conjunto de expresiones regulares. (El argumento de entrada del archivo es línea por línea, por lo que la entrada a esta función es una línea de un archivo, no todo el archivo). Por lo tanto, para buscar palabras clave relacionadas con tu organización, solo cambia las expresiones regulares dentro de checkContentsRegex().