← Volver al listado de tecnologías
Bandit Nivel 12→13 - Hexdump y Compresión Múltiple
Bandit Nivel 12→13 - Hexdump y Compresión Múltiple
Objetivo
data.txt es un hexdump de un archivo que ha sido comprimido repetidamente. Debes revertir el hexdump y descomprimir hasta encontrar la contraseña.
Preparación
Trabaja en un directorio temporal:
mkdir /tmp/midir
cp data.txt /tmp/midir/
cd /tmp/midir
Teoría: Hexdump
Un hexdump es una representación hexadecimal de datos binarios.
00000000 48 65 6c 6c 6f 0a |Hello.|
│ │ │
│ │ └── ASCII
│ └── Bytes en hexadecimal
└── Offset
Revertir Hexdump
xxd -r archivo.hex > archivo.bin
Teoría: Formatos de Compresión
Identificar el formato
file archivo
| Formato | Identificación | Extensión |
|---|---|---|
| gzip | gzip compressed data | .gz |
| bzip2 | bzip2 compressed data | .bz2 |
| tar | POSIX tar archive | .tar |
| xz | XZ compressed data | .xz |
Descomprimir cada formato
| Formato | Comando |
|---|---|
| gzip | gzip -d archivo.gz o gunzip archivo.gz |
| bzip2 | bzip2 -d archivo.bz2 o bunzip2 archivo.bz2 |
| tar | tar -xf archivo.tar |
| xz | xz -d archivo.xz |
Solución Paso a Paso
Paso 1: Revertir hexdump
xxd -r data.txt > data.bin
file data.bin
Paso 2: Ciclo de descompresión
Repite estos pasos según el tipo detectado:
# Si es gzip
mv data.bin data.gz
gzip -d data.gz
file data
# Si es bzip2
mv data.bin data.bz2
bzip2 -d data.bz2
file data
# Si es tar
mv data.bin data.tar
tar -xf data.tar
ls
file *
Proceso típico
Este nivel requiere ~8 descompresiones anidadas. Ejemplo:
xxd -r data.txt > f1
file f1 # gzip
mv f1 f1.gz && gunzip f1.gz
file f1 # bzip2
mv f1 f1.bz2 && bunzip2 f1.bz2
file f1 # gzip
mv f1 f1.gz && gunzip f1.gz
file f1 # tar
mv f1 f1.tar && tar xf f1.tar
# ... continúa hasta obtener ASCII text
Script Automatizado
#!/bin/bash
while true; do
TYPE=$(file -b data* | head -1)
case "$TYPE" in
*gzip*)
mv data* data.gz
gunzip data.gz
;;
*bzip2*)
mv data* data.bz2
bunzip2 data.bz2
;;
*tar*)
tar -xf data*
rm data.tar 2>/dev/null
;;
*ASCII*)
cat data*
break
;;
esac
done
Comandos de Compresión Resumidos
| Acción | gzip | bzip2 | xz |
|---|---|---|---|
| Comprimir | gzip f | bzip2 f | xz f |
| Descomprimir | gzip -d f.gz | bzip2 -d f.bz2 | xz -d f.xz |
| Ver contenido | zcat f.gz | bzcat f.bz2 | xzcat f.xz |
| Mantener original | gzip -k f | bzip2 -k f | xz -k f |
Magic Numbers
Los primeros bytes identifican el formato:
| Formato | Magic Bytes (hex) |
|---|---|
| gzip | 1f 8b |
| bzip2 | 42 5a 68 (BZh) |
| tar | 75 73 74 61 72 (ustar) |
| xz | fd 37 7a 58 5a |
xxd archivo | head -1
Comandos Aprendidos
| Comando | Descripción |
|---|---|
xxd -r | Revertir hexdump |
gzip -d | Descomprimir gzip |
bzip2 -d | Descomprimir bzip2 |
tar -xf | Extraer tar |
file | Identificar tipo |
Conexión al Siguiente Nivel
ssh [email protected] -p 2220