Descripción

We need your help! We have been recently attacked by a group of cybercriminals. We managed to get one of their IP addresses. Using bruteforce we also got an username and a password.
However, it seems that there is nothing there. Can you help us to find the hidden secret?
Connect via ssh to 80.211.141.199, port 12345, user hackiit and password l3tsd0th1s
Good luck!

Write-Up

Nos conectamos usando los datos datos con ssh hackiit@80.211.141.199 -p 12345, e introducimos la contraseña. Vemos que nos hemos conectado a una máquina, y que tenemos una shell bash. Ejecutemos algún comando como pwd para ver dónde nos encontramos y a continuación ls para ver los archivos que hay en nuestra localización. Sin resultado… Hagamos ahora ls -a para ver los archivos ocultos. En efecto, podemos ver que hay algunos archivos ocultos. En concreto hay uno que llama la atención, intentamos ver su contenido con cat .flag pero nos llevamos la triste sorpresa de que no tenemos permisos.

Welcome to Hackiit bash challenge! Good luck searching for the flag.
hackiit@cfafa50443ee:~$ pwd
/home/hackiit
hackiit@cfafa50443ee:~$ ls                                                     
hackiit@cfafa50443ee:~$ ls -a                                                  
.  ..  .bash_history  .bash_logout  .bashrc  .cache  .flag  .profile
hackiit@cfafa50443ee:~$ cat .flag                                              
cat: .flag: Permission denied

Busquemos algún otro archivo que contenga flag en el nombre con find / -iname *flag*. Nos sale un archivo flag en la carpeta etc, lo intentamos abrir pero una vez más nos dice permiso denegado. En este momento empezamos a sospechar, y verificamos los permisos de los dos archivos encontrados.

hackiit@cfafa50443ee:~$ find / -iname *flag*                                   
/home/hackiit/.flag
find: '/home/hackiit/.cache': Permission denied
/etc/flag
hackiit@cfafa50443ee:~$ cat /etc/flag                                          
cat: /etc/flag: Permission denied
hackiit@cfafa50443ee:~$ ls -l /etc/flag                                        
-rw-r----- 1 root root 40 Feb 13 09:02 /etc/flag
hackiit@cfafa50443ee:~$ ls -l .flag                                            
-rw-r--r-- 1 root root 73 Feb 23 08:16 .flag

Al comparar los permisos de ambos archivos vemos que no tenemos permisos de lectura sobre el que se localiza en la carpeta etc, pero que sí tenemos sobre el primero que encontramos. Esto nos indica que efectivamente nos está enseñando el archivo, cuyo contenido parecer ser cat: .flag: Permission denied. Sin embargo, al no haber nada más en la máquina, concluímos que la flag debe estar ahí, oculta de alguna manera, quizás por algún carácter extraño. Y entonces es cuando reparamos en la opción -v de cat, y descubrimos el truco.

hackiit@cfafa50443ee:~$ cat --help                                             
Usage: cat [OPTION]... [FILE]...
Concatenate FILE(s) to standard output.

With no FILE, or when FILE is -, read standard input.

  -A, --show-all           equivalent to -vET
  -b, --number-nonblank    number nonempty output lines, overrides -n
  -e                       equivalent to -vE
  -E, --show-ends          display $ at end of each line
  -n, --number             number all output lines
  -s, --squeeze-blank      suppress repeated empty output lines
  -t                       equivalent to -vT
  -T, --show-tabs          display TAB characters as ^I
  -u                       (ignored)
  -v, --show-nonprinting   use ^ and M- notation, except for LFD and TAB
      --help     display this help and exit
      --version  output version information and exit

Examples:
  cat f - g  Output f's contents, then standard input, then g's contents.
  cat        Copy standard input to standard output.

GNU coreutils online help: 
Report cat translation bugs to 
Full documentation at: 
or available locally via: info '(coreutils) cat invocation'
hackiit@cfafa50443ee:~$ cat -v .flag                                           
hackiit_flag{easy_h1dden_mess4g3}^Mcat: .flag: Permission denied

La flag estaba oculta por un retorno de carro que restablece el cursor al inicio de la linea, de manera que los siguientes caracteres sobrescriben la flag. Esto se puede probar con echo -e "mensajeoculto\raqui no hay nada", que efectivamente nos mostrará solamente aqui no hay nada.

hackiit_flag{easy_h1dden_mess4g3}

Leave a comment

Your email address will not be published. Required fields are marked *