Bandit 11 -–❯ 15


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

SkillsEnlace
Cifrado ROT13tr ‘A-Za-z’ ‘N-ZA-Mn-za-m’
Métodos de cifrado en un archivoxdd, gzip, bzip2, tar
Claves privadas sshsshkey.private
Uso de Net Catnc localhost
Conexiones SSL/TLSopenssl s_client

Indice


Bandit 11 al 12

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.

Sitio Oficial

Iniciamos:

ssh bandit11@bandit.labs.overthewire.org -p 2220

Resolviendo Nivel 11

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'
  • Rot13 el cifrado más básico de todos:
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

Bandit 12 al 13

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!).

Sitio Oficial

Iniciamos:

ssh bandit12@bandit.labs.overthewire.org -p 2220

Resolviendo Nivel 12

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..
  • Primero creamos nuestra carpeta temporal y copiamos el archivo data.txt:
bandit12@bandit:~$ mkdir /tmp/mechitast
bandit12@bandit:~$ cp data.txt /tmp/mechitast
bandit12@bandit:~$ cd /tmp/mechitast

bandit12@bandit:/tmp/mechitast$ ls
data.txt
  • El contenido que muestra el archivo data.txt está en hexadecimal, podemos hacer un 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
  • Ahora con file podemos saber de el tipo de archivo que es, dependieno el tipo de archivo lo renombramos con mv. Como era un archivo gzip la extensión es .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
  • Extrayendo el archivo data.gz, realizamos el mismo proceso con file para saber que tipo de archivo es:
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
  • Nuevamente cambiamos la extensión del archivo con mv, luego pasamos a descomprimirlo:
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
  • De nuevo repetimos el mismo proceso, hasta que el archivo al hacerle un file no muestre que este comprimido:
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)
  • Renombrando y descomprimiendo con tar:

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)
  • Renombrando archivo 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
  • Renombrando a bz2, extrayendo y mostrando:
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)
  • Lo mismo pero con tar
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
  • Lo mismo pero con gzip
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
  • Mostrando el contenido del archivo data:
bandit12@bandit:/tmp/mechitast$ cat data
The password is wbWdlBxEir4CaE8LaPhauuOo6pwRmrDw

Bandit 13 al 14

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

Sitio Oficial

Iniciamos:

ssh bandit13@bandit.labs.overthewire.org -p 2220

Resolviendo Nivel 13

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
  • Nos conectamos al momento de conectarnos nos piden la confirmación colocas “yes”:
bandit13@bandit:~$ ssh -i sshkey.private bandit14@bandit.labs.overthewire.org -p 2220
  • Ahora que estamos conectados como el usuario bandit14 buscamos la contraseña en /etc/bandit_pass/bandit14.
bandit14@bandit:~$ cat /etc/bandit_pass/bandit14 
fGrHPx402xGC7U7rXKDaxiWFTOiF0ENq

Bandit 14 al 15

La contraseña para el siguiente nivel se puede recuperar enviando la contraseña del nivel actual al puerto 30000 en localhost.

Sitio Oficial

Iniciamos:

ssh bandit14@bandit.labs.overthewire.org -p 2220

Resolviendo Nivel 14

Antes que nada ubicamos la contraseña:

bandit14@bandit:~$ cat /etc/bandit_pass/bandit14 
fGrHPx402xGC7U7rXKDaxiWFTOiF0ENq
  • Ahora podemos enviar la contraseña por net cat 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

Bandit 15 al 16

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.

Sitio Oficial

Iniciamos:

ssh bandit15@bandit.labs.overthewire.org -p 2220

Resolviendo Nivel 15

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
  • Realizamos la conexión por openssl como clientes en el puerto local “127.0.0.1” y en el puerto “30001”
bandit15@bandit:~$ openssl s_client -connect 127.0.0.1:30001

---
read R BLOCK
jN2kgmIXJ6fShzhT2avhotn4Zcka6tnt # Clave nivel 15
Correct!
JQttfApK4SeyHwDlI9SXGR50qclOAil1 # Clave nivel 16

closed

Gmichet

Autodidacta apasionado por la informática y entusiasta de los CTF. Constantemente aprendiendo.

2024 | WhatATheme - A Theme made with by Gmichet Powered by Jekyll