Tutoriales

Inspector de depósitos S3 automatizado

Miles de depósitos de S3 permanecen abiertos en Internet, lo que los convierte en objetivos fáciles para los delincuentes que desean obtener información privada relacionada con personas u organizaciones a partir de los archivos de estos depósitos.

No existe mucha investigación o software que pueda usar estos depósitos S3 para encontrar exposiciones secretas y buscar archivos de texto para palabras clave específicas o patrones de expresiones regulares.

BucketLoot es un verificador de depósitos S3 automatizado que puede escanear simultáneamente todos los archivos de texto en depósitos S3 abiertos en AWS, DigitalOcean y otros sistemas.

Comprueba archivos de texto públicos:

  • URL, dominios y subdominios
  • Términos exactos | Patrón Regex (proporcionado por el usuario)

Los usuarios finales pueden incluso buscar palabras clave basadas en cadenas o proporcionar patrones de expresiones regulares personalizados que coincidan con el contenido de estos archivos de texto.

Por todas estas razones, BucketLoot es una excelente herramienta de reconocimiento para cazadores de errores y evaluadores de penetración experimentados.

La herramienta permite a los usuarios guardar resultados en formato JSON, lo que facilita el uso de los datos como entrada para productos o plataformas de terceros.

configuración

1. Configuración de herramientas

La herramienta está escrita en Go, así que asegúrese Instalar Instálelo en su sistema antes de continuar. La configuración es muy simple y directa.

Simplemente siga los pasos a continuación para instalar rápidamente y hacer que sus archivos binarios funcionen.

Primero clone el repositorio en cualquier directorio/ruta que desee,

git clone 

Después de eso, simplemente ejecute el siguiente comando para construir el binario de acuerdo con su entorno.

go build

2. Configuración del certificado (opcional)

Para configurar la herramienta en modo de escaneo completo (opcional), debe modificar Credenciales.json archivo y agregue las credenciales de la plataforma de destino para la que desea ejecutar un análisis completo.

Actualmente, BucketLoot solo admite la ejecución de análisis en modo completo en AWS y esperamos lanzar pronto uno o dos módulos adicionales para otras plataformas.

AWS

Para ejecutar módulos de AWS en modo de escaneo completo, debe comenzar con Panel de control de IAM Ir a usuario sección, haga clic en cualquier usuario al que desee utilizar la herramienta para ir Credenciales de seguridad pestaña, haga clic Crear clave de acceso seleccione «Servicio de terceros» y finalmente cree una clave de acceso.

Asegúrese de que el usuario tenga «Acceso completo a AmazonS3«Adjunte la política de permisos, ya que su ausencia puede causar errores y problemas de escaneo.

1. Escaneo básico

Para realizar un escaneo básico sin indicadores adicionales, solo necesita proporcionar la URL de destino o el archivo de destino como parámetros.

umair@redhuntlabs:~/bucketloot$ ./bucketloot 

                    OR

umair@redhuntlabs:~/bucketloot$ ./bucketloot targets.txt

2. Señales adicionales

BucketLoot también proporciona varios indicadores adicionales para ayudar a personalizar sus escaneos y obtener los resultados correctos que necesita.

umair@redhuntlabs:~/bucketloot$ ./bucketloot -h
Usage of ./bucketloot:
  -full
    	Go beyond the 1000 file scan limit [Requires additional setup!]
  -log-errors
    	Log errors in final output
  -max-size string
    	Maximum file size (in bytes)
  -save string
    	Save tool output, should either end with .txt or .json [Default output file name is output.json]
  -search string
    	Keyword(s) to look for during the scan. [Possible values -> keyword, keyword1:::keyword2, keywords.txt]
  -slow
    	Set slow mode for the scan

-lleno

Si desea exceder el límite máximo de 1000 archivos por depósito, puede realizar el modo de escaneo completo de BucketLoot: Establecer credenciales de acceso para la plataforma de destino.

Actualmente solo admitimos el modo de escaneo completo de Amazon Web Services y esperamos lanzar módulos para otras plataformas pronto.

Si por alguna razón la herramienta encuentra algún problema de autenticación o permiso durante un análisis completo, volverá automáticamente al modo de rastreo para ese único depósito.

umair@redhuntlabs:~/bucketloot$ ./bucketloot  -full

-Errores de registro

BucketLoot permite a los usuarios guardar todos los errores encontrados durante el escaneo en la salida de la herramienta. Esto es especialmente útil durante la depuración e incluso puede ayudarnos a comprender mejor los problemas informados.

Este indicador crea una matriz adicional denominada Errores en la salida JSON.

umair@redhuntlabs:~/bucketloot$ ./bucketloot  -log-errors

-tamaño más grande

Los usuarios suelen encontrar depósitos que contienen archivos enormes. Esto aumenta el tiempo de finalización del análisis y puede no ser ideal para sistemas con anchos de banda más pequeños.

El indicador -max-size permite a los usuarios proporcionar el tamaño máximo de archivo (en bytes) que desean escanear.

umair@redhuntlabs:~/bucketloot$ ./bucketloot  -max-size 13521

-ahorrar

Guarde la salida JSON producida por la herramienta para que el usuario la vea o la analice para su posterior procesamiento.La herramienta guarda el resultado en un archivo llamado salida.json Por defecto si se proporciona la bandera. Los usuarios pueden proporcionar nombres de archivos de salida personalizados en formato .txt o .json.

umair@redhuntlabs:~/bucketloot$ ./bucketloot  -save

                                    OR
                                
umair@redhuntlabs:~/bucketloot$ ./bucketloot  -save myscan.json

Los usuarios pueden utilizar el indicador -search para buscar palabras clave específicas o expresiones regulares en el contenido del archivo del depósito público. Hay varias formas de pasar palabras clave a la herramienta.

  1. Buscar una sola palabra clave/consulta de expresión regular
umair@redhuntlabs:~/bucketloot$ ./bucketloot  -search 'admin'
  1. Busque múltiples consultas de palabras clave/regex (use ::: como delimitador)
umair@redhuntlabs:~/bucketloot$ ./bucketloot  -search 'admin:::login:::password:::API:::.*dev-instance'
  1. Busque múltiples palabras clave/consultas de expresiones regulares (usando el archivo .txt que contiene la lista)
umair@redhuntlabs:~/bucketloot$ ./bucketloot  -search queries.txt

-lento

El indicador -slow está diseñado para sistemas con bajo ancho de banda de red donde la coherencia de los resultados es importante, lo que permite que todos los análisis se ejecuten de forma secuencial en lugar de simultáneamente. [Fast mode] Este es el comportamiento predeterminado de la herramienta.

Si bien esto ciertamente aumentará el tiempo total de escaneo, la herramienta proporcionará resultados consistentes y al mismo tiempo garantizará que pueda ejecutarse sin problemas a nivel local.

umair@redhuntlabs:~/bucketloot$ ./bucketloot  -slow

3. Salida

BucketLoot devuelve una salida JSON al final de cada escaneo. La herramienta tiene la siguiente estructura:

type bucketLootOpStruct struct {
	Results []struct {
		BucketUrl string `json:"bucketUrl"`
		Assets    []struct {
			URL       string `json:"url"`
			Domain    string `json:"domain"`
			Subdomain string `json:"subdomain"`
		} `json:"Assets"`
		Secrets []struct {
			Name string `json:"name"`
			URL  string `json:"url"`
		} `json:"Secrets"`
		Keywords []struct {
			URL     string `json:"url"`
			Keyword string `json:"keyword"`
			Type    string `json:"type"`
		} `json:"Keywords,omitempty"`
	} `json:"Results"`
	Version string   `json:"version"`
	Scanned []string `json:"Scanned"`
	Skipped []string `json:"Skipped"`
	Errors  []string `json:"Errors,omitempty"`
}

Las matrices Palabras clave y Errores solo se muestran si sus respectivos indicadores se proporcionan como entrada y, por lo tanto, se ignoran si están vacíos.

Aquí, Resultados es una matriz que almacena datos de escaneo para cada depósito mal configurado que se escaneó y del que se exportaron los resultados. El identificador único aquí es el campo BucketURL.

Fuera de la matriz tenemos el campo de versión que contiene la versión de la herramienta, Escaneada es una matriz que muestra las URL escaneadas correctamente y Omitida almacena todas las URL que no se escanearon porque no eran puntos finales S3 válidos, eran privadas o tenían ciertas propiedades. Hubo un problema al realizar la solicitud.

La matriz de errores (opcional) almacena todos los errores capturados durante el análisis como cadenas sin formato.

A continuación se muestra un resultado de muestra de un escaneo básico para darle una idea de cómo funciona la herramienta.

➜  bucketloot git:(master) ✗ ./bucketloot 

,.--'''''''''--.,  ____             _        _   _                 _   
(\'-.,_____,.-'/) |  _ \           | |      | | | |               | |  
 \\-.,_____,.-//  | |_) |_   _  ___| | _____| |_| |     ___   ___ | |_ 
 ;\\         //|  |  _ <| | | |/ __| |/ / _ \ __| |    / _ \ / _ \| __|
 | \\  ___  // |  | |_) | |_| | (__|   <  __/ |_| |___| (_) | (_) | |_ 
 |  '-[___]-'  |  |____/ \__,_|\___|_|\_\___|\__|______\___/ \___/ \__|
 |             |                                                       
 |             |  An Automated S3 Bucket Inspector                                             
 |             |  Developed by Umair Nehri (@umair9747) and Owais Shaikh (@4f77616973)             
 ''-.,_____,.-''                                                        
 

 
Processing arguments...

 
Discovered a total of 3 bucket files...
Total bucket files of interest: 3

 
Starting to scan the files... [FAST]
Discovered SECRET[AWS Access Key ID Value] in credentials.json
Discovered SECRET[AWS Access Key ID] in credentials.json
Discovered URL(s) in credentials.json
Discovered SECRET[Google API key] in config.php
Discovered URL(s) in dashboard.html
Discovered URL(s) in config.php

{
  "Results": [
    {
      "bucketUrl": "",
      "Assets": [
        {
          "url": "https://blackhat.com/",
          "domain": "blackhat.com",
          "subdomain": ""
        },
        {
          "url": "https://certificates.blackhat.com/",
          "domain": "blackhat.com",
          "subdomain": "certificates.blackhat.com"
        },
        {
          "url": "https://google.com/login",
          "domain": "google.com",
          "subdomain": ""
        },
        {
          "url": "https://firecat.toolswatch.org/",
          "domain": "toolswatch.org",
          "subdomain": "firecat.toolswatch.org"
        },
        {
          "url": "https://www.google.com",
          "domain": "google.com",
          "subdomain": "www.google.com"
        },
        {
          "url": "http://example.com/dashboard",
          "domain": "example.com",
          "subdomain": ""
        },
        {
          "url": "https://www.openai.com",
          "domain": "openai.com",
          "subdomain": "www.openai.com"
        },
        {
          "url": "https://www.example.com/admin",
          "domain": "example.com",
          "subdomain": "www.example.com"
        },
        {
          "url": "https://www.example.com/login.php",
          "domain": "example.com",
          "subdomain": "www.example.com"
        },
        {
          "url": "https://www.example.com/reset-password",
          "domain": "example.com",
          "subdomain": "www.example.com"
        },
        {
          "url": "https://example.com/api/endpoint",
          "domain": "example.com",
          "subdomain": ""
        }
      ],
      "Secrets": [
        {
          "name": "AWS Access Key ID Value",
          "url": "credentials.json"
        },
        {
          "name": "AWS Access Key ID",
          "url": "credentials.json"
        },
        {
          "name": "Google API key",
          "url": "config.php"
        }
      ]
    }
  ],
  "version": "1.0",
  "Scanned": [
    ""
  ],
  "Skipped": null
}

LEER  7 comandos de Linux para recopilar información del sistema

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba