
Extrae secretos (contraseñas, claves de API, tokens) de archivos web WARC utilizando reglas de Gitleaks. Soporta HTTP, S3, archivos locales y archivos comprimidos con procesamiento concurrente.
Troll-A es una herramienta de línea de comandos para extraer secretos como contraseñas, claves API y tokens de archivos WARC (Web
ARChive). Troll-A es una solución fácil de usar, completa y rápida para encontrar
secretos en archivos web.
*.megawarc.warc.zst).c7g.12xlarge. Esto se puede mejorar aún más
limitando los registros WARC a procesar, mediante la opción --filter.Troll-A se distribuye como binarios precompilados, como imagen Docker o en forma de código fuente.Troll-A está disponible en el registro de contenedores de
GitHub y se puede usar de la siguiente manera:
docker run --rm ghcr.io/crissyfield/troll-a [flags] [url]
Troll-A también está disponible en forma binaria para macOS y Linux en la
página de lanzamientos.
[!NOTA] A diferencia de la imagen Docker, los binarios precompilados están compilados usando las expresiones regulares estándar de Go y son por lo tanto notablemente más lentos. Si se prefieren binarios nativos y el rendimiento es crucial, se recomienda compilar los binarios desde el código fuente.
Para un mejor rendimiento, se recomienda compilar Troll-A desde el código fuente, ya que esto permite usar el motor de
expresiones regulares optimizado proporcionado por go-re2. Para que esto funcione, la
dependencia RE2 debe instalarse primero.
# Instalar dependencias
brew install re2
# Instalar con RE2 activado
go install -tags re2_cgo github.com/crissyfield/[email protected]
# Instalar dependencias
sudo apt install -u build-essential libre2-dev
# Instalar con RE2 activado
go install -tags re2_cgo github.com/crissyfield/[email protected]
Uso:
troll-a [flags] [url]
Esta herramienta permite extraer secretos (potenciales) como contraseñas, claves API y tokens
de archivos WARC (Web ARChive). La información extraída se muestra como texto estructurado o
JSON, lo que simplifica el procesamiento posterior de los datos.
"url" puede ser una referencia HTTP o HTTPS normal ("https://dominio/ruta"), una referencia
de Amazon S3 ("s3://bucket/ruta"), una ruta de archivo (ya sea "file:///ruta" o simplemente "ruta"),
o un guión ("-") para leer desde STDIN. Si se omite "url", los datos se leen desde STDIN. Si los
datos de entrada están comprimidos con GZip, BZip2, XZ o ZStd, se descomprimen automáticamente.
También se maneja de forma transparente ZStd con un diccionario personalizado antepuesto (como se usa
en archivos "*.megawarc.warc.zstd").
Esta herramienta utiliza reglas del proyecto Gitleaks (https://gitleaks.io) para detectar secretos.
Banderas:
-c, --custom stringArray regla personalizada adicional a aplicar. Los secretos que coincidan con
la expresión regular dada (usando sintaxis RE2) también se
reportarán. Se puede especificar varias veces.
-e, --enclosed sólo reportar secretos que estén encerrados dentro de su contexto
-f, --filter string filtro para la URL de destino de cada registro WARC. Sólo los registros
WARC que coincidan con la expresión regular dada (usando sintaxis RE2)
serán revisados en busca de secretos. Un filtro vacío coincidirá
con todo.
-h, --help ayuda para troll-a
-j, --jobs uint detectar secretos con este número de trabajos concurrentes (por defecto 8)
-s, --json emitir secretos detectados como JSON
-p, --preset rules-preset preajuste de reglas a usar. Puede ser uno de los siguientes:
all: Se aplicarán todas las reglas conocidas, lo que puede
resultar en una cantidad significativa de ruido para
conjuntos de datos grandes.
most: Se aplican la mayoría de las reglas, saltando los
mayores culpables de falsos positivos.
secret: Sólo se aplican las reglas que tienen más probabilidades
de resultar en una fuga real de un secreto.
none: No se aplica ninguna regla. Esto se puede usar
en combinación con reglas personalizadas a través del
interruptor --custom/-c.
No se permiten otros valores. (por defecto secret)
-q, --quiet suprimir mensajes de éxito
-r, --retry retry-strategy estrategia de reintento a usar. Puede ser uno de los siguientes:
never: Esta estrategia fallará después del primer error de
descarga y no intentará reintentar.
constant: Esta estrategia intentará reintentar hasta 5
veces, con un retraso de 5s después de cada intento.
exponential: Esta estrategia intentará reintentar durante 15
minutos, con un retraso que aumenta exponencialmente
después de cada intento.
always: Esta estrategia intentará reintentar para siempre,
sin ningún retraso después de cada intento.
No se permiten otros valores. (por defecto never)
-t, --timeout duration tiempo de espera de descarga (no aplica a archivos) (por defecto 30m0s)
-v, --version versión para troll-a