Juegos de Guerra "Bandit" Overthewire
Published on August 24, 2023 by Gmichet
LINUX BANDIT
9 min READ
Parte número tres de los juegos “Bandit” de la página OverTheWireGames
Skills | Enlace |
---|---|
Cifrado ROT13 | tr ‘A-Za-z’ ‘N-ZA-Mn-za-m’ |
Métodos de cifrado en un archivo | xdd, gzip, bzip2, tar |
Claves privadas ssh | sshkey.private |
Uso de Net Cat | nc localhost |
Conexiones SSL/TLS | openssl s_client |
La contraseña para el siguiente nivel se almacena en el archivo data.txt, donde todas las letras minúsculas (az) y mayúsculas (AZ) se han rotado 13 posiciones.
Iniciamos:
ssh bandit11@bandit.labs.overthewire.org -p 2220
Es una técnica de cifrado simple que se utiliza para ocultar el contenido de un mensaje. En ROT13, cada letra del mensaje se desplaza 13 posiciones hacia la derecha en el alfabeto.
tr 'A-Za-z' 'N-ZA-Mn-za-m'
bandit11@bandit:~$ cat data.txt
Gur cnffjbeq vf WIAOOSFzMjXXBC0KoSKBbJ8puQm5lIEi
bandit11@bandit:~$ cat data.txt | tr 'A-Za-z' 'N-ZA-Mn-za-m'
The password is JVNBBFSmZwKKOP0XbFXOoW8chDz5yVRv
La contraseña para el siguiente nivel se almacena en el archivo data.txt, que es un volcado hexadecimal de un archivo que ha sido comprimido repetidamente.
Para este nivel, puede ser útil crear un directorio bajo /tmp en el que pueda trabajar usando mkdir. Por ejemplo: mkdir /tmp/myname123. Luego copie el archivo de datos usando cp, y cámbiele el nombre usando mv (¡lea las páginas de manual!).
Iniciamos:
ssh bandit12@bandit.labs.overthewire.org -p 2220
El archivo data.txt fue cifrado de varias formas, al tratar de verlo con cat es imposible saber la clave:
bandit12@bandit:~$ cat data.txt
00000000: 1f8b 0808 2773 4564 0203 6461 7461 322e ....'sEd..data2.
00000010: 6269 6e00 0145 02ba fd42 5a68 3931 4159 bin..E...BZh91AY
00000020: 2653 597b 4f96 5f00 0018 ffff fd6f e7ed &SY{O._......o..
00000030: bff7 bef7 9fdb d7ca ffbf edff 8ded dfd7 ................
00000040: bfe7 bbff bfdb fbff ffbf ff9f b001 3b56 ..............;V
00000050: 0400 0068 0064 3400 d341 a000 0680 0699 ...h.d4..A......
00000060: 0000 69a0 0000 1a00 1a0d 0034 0034 d3d4 ..i........4.4..
bandit12@bandit:~$ mkdir /tmp/mechitast
bandit12@bandit:~$ cp data.txt /tmp/mechitast
bandit12@bandit:~$ cd /tmp/mechitast
bandit12@bandit:/tmp/mechitast$ ls
data.txt
xdd
en operaciones relacionadas con la representación hexadecimal de archivos.Y de paso hacemos un redireccionamiento >
que tomará la salida de xxd -r
y la guarda en un archivo llamado “data”.
bandit12@bandit:/tmp/mechitast$ xxd -r data.txt > data
bandit12@bandit:/tmp/mechitast$ ls
data data.txt
.gz
.bandit12@bandit:/tmp/mechitast$ file data
data: gzip compressed data, was "data2.bin", last modified: Sun Apr 23 18:04:23 2023, max compression, from Unix, original size modulo 2^32 581
bandit12@bandit:/tmp/mechitast$ mv data data.gz
bandit12@bandit:/tmp/mechitast$ gzip -d data.gz
bandit12@bandit:/tmp/mechitast$ ls
data data.txt
bandit12@bandit:/tmp/mechitast$ file data
data: bzip2 compressed data, block size = 900k
bandit12@bandit:/tmp/mechitast$ mv data data.bz2
bandit12@bandit:/tmp/mechitast$ ls
data.bz2 data.txt
bandit12@bandit:/tmp/mechitast$ bzip2 -d data.bz2
bandit12@bandit:/tmp/mechitast$ ls
data data.txt
bandit12@bandit:/tmp/mechitast$ file data
data: gzip compressed data, was "data4.bin", last modified: Sun Apr 23 18:04:23 2023, max compression, from Unix, original size modulo 2^32 20480
bandit12@bandit:/tmp/mechitast$ mv data data.gz
bandit12@bandit:/tmp/mechitast$ gzip -d data.gz
bandit12@bandit:/tmp/mechitast$ file data
data: POSIX tar archive (GNU)
El archivo data5.bin
si le haces un file dice que es un archivo comprimido con tar, entonces podemos renombrarlo a “.tar”. Y los otros ya no se utilizan, los puede eliminar:
bandit12@bandit:/tmp/mechitast$ mv data data.tar
bandit12@bandit:/tmp/mechitast$ tar xf data.tar
bandit12@bandit:/tmp/mechitast$ ls
data5.bin data.tar data.txt
bandit12@bandit:/tmp/mechitast$ file data5.bin
data5.bin: POSIX tar archive (GNU)
data5.bin
, extrayendo y mostrando el tipo de archivo a tratar con file:bandit12@bandit:/tmp/mechitast$ mv data5.bin data.tar
bandit12@bandit:/tmp/mechitast$ tar xf data.tar
bandit12@bandit:/tmp/mechitast$ ls
data6.bin
bandit12@bandit:/tmp/mechitast$ file data6.bin
data6.bin: bzip2 compressed data, block size = 900k
bandit12@bandit:/tmp/mechitast$ mv data6.bin data.bz2
bandit12@bandit:/tmp/mechitast$ bzip2 -d data.bz2
bandit12@bandit:/tmp/mechitast$ ls
data
bandit12@bandit:/tmp/mechitast$ file data
data: POSIX tar archive (GNU)
bandit12@bandit:/tmp/mechitast$ mv data data.tar
bandit12@bandit:/tmp/mechitast$ ls
data_borrado data.tar
bandit12@bandit:/tmp/mechitast$ tar xf data.tar
bandit12@bandit:/tmp/mechitast$ ls
data8.bin data_borrado data.tar
bandit12@bandit:/tmp/mechitast$ file data8.bin
data8.bin: gzip compressed data, was "data9.bin", last modified: Sun Apr 23 18:04:23 2023, max compression, from Unix, original size modulo 2^32 49
bandit12@bandit:/tmp/mechitast$ mv data8.bin data.gz
bandit12@bandit:/tmp/mechitast$ gzip -d data.gz
bandit12@bandit:/tmp/mechitast$ ls
data data_borrado data.tar
bandit12@bandit:/tmp/mechitast$ file data
data: ASCII text
bandit12@bandit:/tmp/mechitast$ cat data
The password is wbWdlBxEir4CaE8LaPhauuOo6pwRmrDw
La contraseña para el siguiente nivel se almacena en /etc/bandit_pass/bandit14 y solo puede leerla el usuario bandit14. Para este nivel, no obtiene la siguiente contraseña, pero obtiene una clave SSH privada que puede usarse para iniciar sesión en el siguiente nivel.
La contraseña para el siguiente nivel se almacena en /etc / bandit_pass / bandit14 y solo puede ser leído por el usuario bandido14.
Nota: localhost es un nombre de host que se refiere a la máquina en la que está trabajando
Iniciamos:
ssh bandit13@bandit.labs.overthewire.org -p 2220
El usuario bandit13 tiene un archivo llamado sshkey.private
en su directorio de inicio ~
.
bandit13@bandit:~$ ls
sshkey.private
-
Un archivo con extensión .private
se refiere a una clave privada de SSH. Por lo tanto, es probable que este archivo sea la clave privada SSH que el usuario bandit13 necesita para acceder a la cuenta del usuario bandit14 en el servidor.
Conexión por claves privadas
# Sintaxis
ssh -i clave_privada usuario@direccion_servidor -p n_puerto
bandit13@bandit:~$ ssh -i sshkey.private bandit14@bandit.labs.overthewire.org -p 2220
bandit14@bandit:~$ cat /etc/bandit_pass/bandit14
fGrHPx402xGC7U7rXKDaxiWFTOiF0ENq
La contraseña para el siguiente nivel se puede recuperar enviando la contraseña del nivel actual al puerto 30000 en localhost.
Iniciamos:
ssh bandit14@bandit.labs.overthewire.org -p 2220
Antes que nada ubicamos la contraseña:
bandit14@bandit:~$ cat /etc/bandit_pass/bandit14
fGrHPx402xGC7U7rXKDaxiWFTOiF0ENq
nc
al puerto 30000:bandit14@bandit:~$ echo "fGrHPx402xGC7U7rXKDaxiWFTOiF0ENq" | nc localhost 30000
Correct!
jN2kgmIXJ6fShzhT2avhotn4Zcka6tnt
# Otras formas
bandit14@bandit:~$ cat /etc/bandit_pass/bandit14 | nc localhost 30000
Correct!
jN2kgmIXJ6fShzhT2avhotn4Zcka6tnt
-
Más Información del Comando Netcat
# Transferencia de Datos
nc -l -p puerto > archivo_destino # Uso como servidor
nc destino puerto < archivo_origen # Uso como cliente
# Pruebas de Conexión
nc -vz destino puerto
La contraseña para el siguiente nivel se puede recuperar enviando la contraseña del nivel actual al puerto 30001 en localhost usando encriptación SSL.
Iniciamos:
ssh bandit15@bandit.labs.overthewire.org -p 2220
La encriptación SSL cifra los datos antes de transmitirlos a través de Internet.
OpenSSL
Sirve para realizar una conexión SSL/TLS a un servidor y enviar una solicitud GET (Una petición GET solicita al servidor información o un recurso en concreto).
openssl s_client -connect dominio.com:443
bandit15@bandit:~$ openssl s_client -connect 127.0.0.1:30001
---
read R BLOCK
jN2kgmIXJ6fShzhT2avhotn4Zcka6tnt # Clave nivel 15
Correct!
JQttfApK4SeyHwDlI9SXGR50qclOAil1 # Clave nivel 16
closed