Bandit 0 -–❯ 5


Juegos de Guerra "Bandit" Overthewire

Published on August 23, 2023 by Gmichet

LINUX BANDIT

9 min READ

Este post tendrá información acerca de los juegos de guerra o mejor conocido como OverTheWireGames en especifíco de los juegos bandit (bandido). Esa página proporciona una base muy buena sobre conceptos de linux, en los que tendrás que enfrentarte a ciertos desafíos. Puedes visitar el enlace anterior para más información.

SkillsEnlace
sshConexión ssh
Mostrar contenido de un archivo “-“Entrada stdin
Archivo con espacios“spaces in this filename”
Mostrar archivos ocultos.hidden
Buscando por archivos ASCIIASCII text
Búsquedas con findfind ruta opciones

Indice


Bandit Nivel 0

El objetivo de este nivel es que inicies sesión en el juego usando SSH. El host al que debe conectarse es bandit.labs.overthewire.org, en el puerto 2220. El nombre de usuario es bandit0 y la contraseña es bandit0.

Una vez conectado, ve al Nivel 1 página para descubrir cómo vencer al nivel 1).

Resolviendo Nivel 0 al 1

Entramos por ssh

ssh bandit0@bandit.labs.overthewire.org -p 2220
  • En la salida te debe mostrar lo siguiente e introducimos la clave bandit0:
                         _                     _ _ _   
                        | |__   __ _ _ __   __| (_) |_ 
                        | '_ \ / _` | '_ \ / _` | | __|
                        | |_) | (_| | | | | (_| | | |_ 
                        |_.__/ \__,_|_| |_|\__,_|_|\__|
                                                       

                      This is an OverTheWire game server. 
            More information on http://www.overthewire.org/wargames

bandit0@bandit.labs.overthewire.org's password: bandit0
  • Una vez dentro podemos listar los archivo en ese directorio:
bandit0@bandit:~$ ls
readme
  • Ahora leer el contenido del readme, ya que es la clave para acceder al nivel 1:
bandit0@bandit:~$ cat readme 
NH2SXQwcBdpmTEzi3bvBHMM9H66vVXjL

Bandit 1 al 2

La contraseña para el siguiente nivel se almacena en un archivo llamado - ubicado en el directorio de inicio.

Sitio Oficial

Material de Apoyo

El guión “-“ en linux

Iniciamos el nivel conectandonos por ssh:

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

Resolviendo Nivel 1

Listamos con ls:

  • Si ves un guion “-“ en lugar de un nombre de archivo o directorio después de usar el comando ls, es posible que el programa esté esperando una entrada a través de stdin antes de proporcionar más resultados.
bandit1@bandit:~$ ls
-

bandit1@bandit:~$ du -a
4	./-
4	./.profile
4	./.bashrc
4	./.bash_logout
20	.

.

Qué es Stdin

Es el flujo a través del cual un programa recibe datos de entrada. Es la forma en que un programa obtiene información de entrada (datos) desde el teclado u otra fuente.

  • El comando file - se utiliza para identificar el tipo de archivo que se encuentra en la entrada estándar (stdin).
bandit1@bandit:~$ file -
# Presiona enter para mostrar
/dev/stdin: very short file (no magic)

La salida sería un stdout los resultados se muestran en la pantalla de la terminal por defecto.

Encontrando la llave

Para encontrar la llave teniendo en cuenta que necesita un dato de entrada para poder ejecutarse el stdin usemos un cat para mostrar todos los archivos en el directorio actual:

bandit1@bandit:~$ cat ./*
rRGizSaX8Mk1RTb1CNQoXTcYZWU6lgzi

# Otras formas 

bandit1@bandit:~$ cat ./-
rRGizSaX8Mk1RTb1CNQoXTcYZWU6lgzi

bandit1@bandit:~$ find ./ -name "-" | xargs cat
rRGizSaX8Mk1RTb1CNQoXTcYZWU6lgzi

Bandit 2 al 3

La contraseña para el siguiente nivel se almacena en un archivo llamado spaces in this filename en el directorio de inicio

Sitio Oficial

Iniciamos

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

Resolviendo Nivel 2

Cuando tenemos un archivo que contiene espacios solo basta con hacerle un cat y presionar el tabulador, automáticamente se va a completar:

bandit2@bandit:~$ cat spaces\ in\ this\ filename 
aBZ0W5EmUfAf7kHTQeOwd8bauFJ2lAiG
  • También se puede colocar el nombre entre comillas:
bandit2@bandit:~$ cat "spaces in this filename"
aBZ0W5EmUfAf7kHTQeOwd8bauFJ2lAiG

Bandit 3 al 4

La contraseña para el siguiente nivel se almacena en un archivo oculto en el directorio inhere.

Sitio Oficial

Iniciamos

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

Resolviendo Nivel 3

En archivos que no estan ocultos se pueden mostrar con un simple ls pero los que están ocultos se deben mostrar con un ls -a en donde “a” hace referencia a todos “all”.

bandit3@bandit:~$ ls
inhere
bandit3@bandit:~$ cd inhere/
bandit3@bandit:~/inhere$ ls
bandit3@bandit:~/inhere$ 
  • Listando todos los archivos, te mostrará esos archivos que fueron creados con un punto al inicio e indicando que son ocultos:
bandit3@bandit:~/inhere$ ls -a
.  ..  .hidden
  • Conociendo lo anterior podemos aplicar el mismo principio para poder mostrar el contenido de los archivos ocultos:
bandit3@bandit:~/inhere$ cat .hidden 
2EW7BBsr6aMMoJ2HjW067dm8EgX26xNe

Bandit 4 al 5

La contraseña para el siguiente nivel se almacena en un directorio inhere y el archivo que es “only human-readable”.

Sitio Oficial

Iniciamos

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

Resolviendo Nivel 4

Accedemos al directorio inhere a su vez que listamos todo lo que se almacena en dicho directorio:

bandit4@bandit:~$ cd inhere/
bandit4@bandit:~/inhere$ 
bandit4@bandit:~/inhere$ ls
-file00  -file01  -file02  -file03  -file04  -file05  -file06  -file07  -file08  -file09
  • Recordemos que utilizando file podemos saber con que tipo de archivo estamos tratando:

data: Contiene información en forma de datos.

ASCII text: Contiene texto legible.

Non-ISO extended-ASCII text, with no line terminators: ASCII extendido no estándar. El término “no-ISO” sugiere que no cumple con las normas ISO convencionales.

bandit4@bandit:~/inhere$ file ./*
./-file00: data
./-file01: data
./-file02: data
./-file03: data
./-file04: data
./-file05: data
./-file06: data
./-file07: ASCII text
./-file08: data
./-file09: Non-ISO extended-ASCII text, with no line terminators
  • Conociendo el archivo que solo es legible para humanos, podemos realizarle un cat:
bandit4@bandit:~/inhere$ cat ./-file07
lrIWWI6bB37kxfiCQZqUdOIYfr6eEeqR

Bandit 5 al 6

La contraseña para el siguiente nivel se almacena en un archivo en algún lugar del directorio inhere y tiene todas las siguientes propiedades:

  • human-readable
  • 1033 bytes in size
  • not executable

Sitio Oficial

Iniciamos:

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

Resolviendo Nivel 5

Muy bien ahora podemos observar que en el directorio inhere hay muchas carpetas que a su vez contienen muchos archivos:

bandit5@bandit:~$ ls
inhere

bandit5@bandit:~$ cd inhere/

bandit5@bandit:~/inhere$ ls -a
.   maybehere00  maybehere02  maybehere04  maybehere06  maybehere08  maybehere10  maybehere12  maybehere14  maybehere16  maybehere18
..  maybehere01  maybehere03  maybehere05  maybehere07  maybehere09  maybehere11  maybehere13  maybehere15  maybehere17  maybehere19

bandit5@bandit:~/inhere$ cd maybehere00

bandit5@bandit:~/inhere/maybehere00$ ls 
-file1  -file2  -file3  spaces file1  spaces file2  spaces file3

  • Para resolver este nivel se puede utilizar el comando find

Uso del Find

El comando find (buscar) como su nombre lo indica buscará archivos basandose en las diferentes opciones que especifiques.

Ruta

  • / Buscar en el directorio raíz, en todo el sistema.
  • . Buscar en la carpeta en la que estas ubicado (pwd para saber tú ubicación).
  • ~ Para buscar desde el directorio home.

Sintaxis básica

find [ruta] [opciones]

.

Ejemplos útiles del comando find

Buscando un directorio por nombre poemas desde el directorio raíz (2❯ /dev/null) se utiliza para evitar que te salgan mensajes de error.

❯ find / -name poemas 2> /dev/null
/home/gabriel/Documentos/Bash/Udemy/Scripts-Bash/Tareas/Regedex/poemas
/mnt/HDD1/Contenido/Practico/poemas
  • Búsqueda por dos parámetros:
❯ find / -type f -name 'IP*.sh' 2> /dev/null
/home/gabriel/Scripts/Bash/IPv4.sh
/mnt/HDD1/BackupME/Archivos/Scripts/Bash/IPv4.sh
  • Buscando por tres parámetros:
❯ find ~ -maxdepth 4 -type d -iname '*ath' 2> /dev/null
/home/gabriel/.oh-my-zsh/plugins/shrink-path
/home/gabriel/.oh-my-zsh/plugins/copypath
/home/gabriel/Documentos/Office/Math
  • Buscar archivos ocultos en un directorio:
❯ find . -name ".*" -maxdepth 1 ./.hidden_file

.

Opción especial con find

La opción -exec se basa en la ejecución de cualquier comando en todos los elementos que encontro previamente el find.

Sintaxis

find [ruta] [opciones] -exec <comando> '{}' ';'
  • Buscamos en el directorio home ~ ficheros con un peso mayor a un gigabyte +1G y con -exec le pasamos el comando que queremos ejecutar al resultado de la búsqueda anterior. Y por último terminanos el comando con ’;’.
❯ find ~ -size +1G -exec ls '{}' ';'
/home/gabriel/Descargas/Loc-OS-22-LXDE-i386.iso

-

Encontrando el archivo correcto

Ahora es momento de poner en práctica lo aprendido. Como sabemos el directorio en donde se encuentra el archivo y sus especificaciones, podemos utilizar el siguiento comando:

bandit5@bandit:~/inhere$ find ./* -type f -size 1033c -not -executable -exec file '{}' ';'
./maybehere07/.file2: ASCII text, with very long lines (1000)
  • Conociendo el archivo podemos ver su contenido:
bandit5@bandit:~/inhere$ cd ./maybehere07/

bandit5@bandit:~/inhere/maybehere07$ cat .file2
P4L4vucdmLnm8I7Vl7jG1ApGSfjYKqJU

Gmichet

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

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