StegBrute es una herramienta de fuerza bruta para esteganografía escrita en Rust que utiliza también hilos para lograr una ejecución más rápida.
El mundo de la esteganografía es vasto y complejo, y se han creado muchas herramientas para ayudar a ocultar datos. Con esta herramienta, te mostraremos cómo utilizar una herramienta de fuerza bruta de esteganografía para descubrir datos ocultos.
Dependencias
Stegbrute no puede funcionar sin steghide!, para instalar steghide ejecuta:
apt-get install -y steghide
Si no estás en una distribución Debian puedes descargarlo desde la web de steghide
Instalación
stegbrute se puede instalar de diferentes maneras:
Cargo
a través de cargo (gestor de paquetes de Rust)
si no tienes cargo puedes instalarlo desde apt o descargando Rust lang
cargo install stegbrute
esto funcionará para todas las plataformas
Distribuciones Debian
si tienes Ubuntu/Kali u otras distribuciones basadas en Debian puedes instalar el archivo .deb que encuentras en la sección de releases, luego descomprimir el archivo y ejecutarlo
wget https://github.com/R4yGM/stegbrute/releases/download/0.1.1/stegbrute_0.1.1_amd64.deb &&
dpkg --install stegbrute_0.1.1_amd64.deb
Docker
si no tienes docker instalado puedes seguir su guía
primero tienes que pull la imagen docker (sólo 4.93 MB) del registro docker, puedes verla aquí, si no quieres pull la imagen también puedes clonar el repositorio y luego construir la imagen desde el Dockerfile
docker pull r4yan/stegbrute:latest
también puedes decidir pull diferentes imágenes sustituyendo ‘latest’ por una versión de stegbrute, ejemplo:
docker pull r4yan/stegbrute:0.1.0
si no quieres pull la imagen puedes descargar/copiar el Dockerfile de stegbrute que puedes encontrar aquí y luego construir la imagen desde el Dockerfile
entonces si quieres lanzar el contenedor tienes que crear primero un volumen para compartir tus archivos al contenedor
docker volume create --name stegbrute_data
entonces mueve o copia los archivos que quieres usar para stegbrute dentro de la carpeta del volumen que normalmente está aquí
/var/lib/docker/volumes/stegbrute_data/_data
Simplemente haciendo:
cp wordlist.txt /var/lib/docker/volumes/stegbrute_data/_data && cp file.jpg /var/lib/docker/volumes/stegbrute_data/_data
y ahora ejecuta stegbrute
docker run -v stegbrute_data:/stegbrute_data -it --rm --name stegbrute r4yan/stegbrute:latest <options>
sustituye <options>
por las opciones/argumentos que quieras dar a stegbrute, una vez que lo hayas hecho todo no tendrás que volver a pull/construir la imagen sólo si hay nuevas actualizaciones o características.
Guarda siempre tus resultados dentro del volumen y no en el contenedor porque entonces los resultados se borrarán! puedes guardarlos añadiendo esta opción:
-x /$VOLUME_NAME/results.txt
--extract-file /$VOLUME_NAME/results.txt
Si añades esto y haces todo correctamente al final de cada ataque encontrará los resultados dentro de la carpeta
/var/lib/docker/volumes/stegbrute_data/_data
esto funcionará para todas las plataformas
Ejecutable
También puede descargar el programa ya compilado y luego ejecutarlo, ejemplo:
wget https://github.com/R4yGM/stegbrute/releases/download/0.1.1/stegbrute && chmod +x stegbrute
mv stegbrute /usr/local/bin/
Uso
stegbrute es muy sencillo de usar y te da muchas opciones, puedes ver la ayuda del programa con la opción -h
o --help
============================================================
____ _ ____ _
/ ___|| |_ ___ __ _| __ ) _ __ _ _| |_ ___
\___ \| __/ _ \/ _` | _ \| '__| | | | __/ _ \
___) | || __/ (_| | |_) | | | |_| | || __/
|____/ \__\___|\__, |____/|_| \__,_|\__\___|
|___/
StegBrute v0.1.1 - By R4yan
https://github.com/R4yGM/StegBrute
StegBrute 0.1.1
R4yan <yessou.rayan@gmail.com>
Steganography bruteforce tool
USAGE:
stegbrute [FLAGS] [OPTIONS] --file-name <file-name> --wordlist <wordlist>
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
-v, --verbose shows every try the program does
OPTIONS:
-x, --extract-file <extract-file> the file name path where you want to write the results [default:
stegbrute_results.txt]
-f, --file-name <file-name> the file name path you want to crack
-t, --threads <threads> number of threads to bruteforce the file [default: 3]
-w, --wordlist <wordlist> path of the wordlist
Por ejemplo:
Opciones:
-x
o--extract-file
con<nombre_de_archivo>
guardará los resultados de los datos extraídos en el nombre_de_archivo, si no se especifica ningún archivo stegbrute guardará tus resultados dentro del archivo ./stegbrute_results.txt-t
o--threads
con<número_de_hilos>
lanzará un número de programas que forzarán el archivo simultáneamente, incrementar el número de hilos no siempre significa que se ejecutará más rápido, todo depende de cuántos hilos pueda manejar tu máquina-f
o--file_name
con<nombre_del_archivo>
el nombre del archivo que stegbrute va a atacar, debe ser uno de estos formatos soportados : JPEG, BMP, WAV o AU-w
o--wordlist
con<wordlist>
el archivo donde stegbrute va a tomar las contraseñas línea por línea y luego empezar a probarlas con el archivo que quieres crackear, si no tieness uno puedes instalar por ejemplo rockyou.txt
Referencia
stegbrute benchmark en diferentes listas de palabras utilizando 3 hilos
Lista de contraseñas | Tiempo |
---|---|
100 | 841.12ms |
1000 | 8.57s |
10000 | 77.79s |
100000 | 775.93s |
stegbrute (este enlace se abre en una nueva ventana) por R4yGM (este enlace se abre en una nueva ventana)
Fast Steganography bruteforce tool written in Rust useful for CTF’s