LaCasaDePapel con tematica en la serie de Netflix, expone la consola de desarrollo Psy Shell por medio de la cual obtuvimos certificados para acceder a un area restringida. Escribimos nuestra clave publica en los archivos SSH para obtener acceso. Finalmente escalamos privilegios mediante un CronJob.
Informacion de la Maquina
Nombre | LaCasaDePapel |
---|---|
OS | Linux |
Puntos | 20 |
Dificultad | Facil |
IP | 10.10.10.131 |
Maker | |
|
MASSCAN & NMAP
Escaneo de todos los puertos tcp/udp.
|
|
Escaneo de puertos encontrados con MASSCAN.
|
|
Agregamos lacasadepapel.htb a nuestro archivo /etc/hosts
.
HTTPS
Al visitar la pagina en https nos muestra un error de certificado.
HTTP
Al visitar la pagina nos muestra una imagen QR.
FTP
Encontramos ftp en su version vftpd 2.3.4
el cual tiene una vulnerabilidad de backdoor, utilizamos exploit escrito en python para ejecutar comandos, cuando lo ejecutamos nos muestra un mensaje de Psy Shell
, intentamos conectarnos al puerto 6200
, y encontramos una shell de Psysh,y con el comando dir la clase $tokyo
.
Utilizamos el comando ‘show $tokyo’ para mostrar el codigo que en este se encuentra.
|
|
Al parecer es una clase que crea un certificado para tener acceso a la pagina en https, vamos a generar el nuestro utilizando la key (ca.key) que utiliza la funcion. Para leer este archiv utilizamos: file_get_contents(archivo)
.
Generamos nuestro certificado para firefox con los siguientes comandos:
|
|
|
|
Importamos nuestro certificado a firefox y al visitar la pagina nos muestra lo siguiente:
Al visitar SEASON-1 nos muestra una lista de videos en formato avi al visitar o dar click a uno de ellos nos descarga un archivo, vacio.
01.avi
https://lacasadepapel.htb/file/U0VBU09OLTEvMDEuYXZp
Dicha url en su parte final (/U0VBU09OLTEvMDEuYXZp
) esta codificada en base64
, por lo que al decodificarla obtenemos el valor de SESEASON-1/01.avi
, sabiendo esto podemos codificar ../../../../etc/passwd
en base64 para observar que pasa si codificamos una ruta de un archivo para descargarla.
Asi es como obtenemos el archivo /etc/passwd
, ahora que sabemos como descargar archivos vamos a descargar el id_rsa
(../.ssh/id_rsa
) del usuario berlin
y asi conectarnos mediante el servicio ssh.
Por alguna razon el id_rsa
del usuario berlin
no funciona en si mismo, funciona con el usuario professor
y dali
. En el caso de dali debemos de agregar nuestra clave al archivo authorized_keys
mediante PSYSH
.
USUARIO DALI PSYSH
Utilizando psysh en el puerto 6200 mediante telnet podemos leer y escribir archivos, en este caso vamos a leer el archivo /etc/passwd.
$file = file_get_contents('/etc/passwd');echo $file;
Al revisar dicho archivo vemos que el usuario dali
tiene como shell psysh y su directorio principal es /home/dali.
Ya que sabemos que psysh es ejecutado por el usuario dali y tenemos acceso a su directorio principal, podemos generar y agregar nuestra id_rsa.pub
a el archivo authorized_keys
del usuario dali
, para luego poder conectarnos por medio de ssh.
|
|
Escribimos y verificamos.
Ahora nos conectamos con la clave de ‘berlin’.
USUARIO PROFESSOR - SSH
Para el usuario professor utilizamos la misma clave para conectarnos y obtenemos una sesion ssh.
USER - FLAG
Al enumerar las carpetas de los usuarios encontramos nuestra bandera user.txt
en la carpeta de berlin, para obtenernuestra bandera encodeamos la direccion en base64 y la descargamos de la misma forma que la clave de berlin.
PRIVILEGE ESCALATION
Utilizamos pspy64 para ver los crons que se ejecutan.
Encontramos un proceso que se ejecuta que utiliza node y un archivo memcached.js
.
El archivo memcached.js se encuentra en nuestra carpeta principal (/home/professor
) pero no tenemos permisos, tambien se encuentra otro archivo llamadao memcached.ini
que contiene un comando que ejecuta node con el archivo memcached.js
.
Hacemos una prueba de ping con el usuario root a nuestra ip, agregamos lo siguiente a memcached.ini, pero primero renombramos el archivo anterior a otro ya que no tenemos permisos, creamos un nuevo archivo con el mismo nombre y agregamos lo siguiente.
Y obtenemos la respuesta de la maquina.
Para obtener una shell inversa creamos un archivo con nuestra shell inversa dentro, y agregamos su ejecucion dentro del archivo memcached.ini
.
batman.sh
|
|
|
|