// Privesc to user id: 1000#define_GNU_SOURCE#include<stdlib.h>#include<unistd.h>intmain(void) {char*const paramList[10] = {"/bin/bash","-p",NULL};constint id =1000;setresuid(id, id, id);execve(paramList[0], paramList,NULL);return0;}
Sobrescribiendo un archivo para escalar privilegios
Archivos comunes
Agregar usuario con contraseña a /etc/passwd
Cambiar contraseña dentro de /etc/shadow
Agregar usuario a sudoers en /etc/sudoers
Abusar de docker a través del socket de docker, generalmente en /run/docker.sock o /var/run/docker.sock
Sobrescribiendo una biblioteca
Verificar una biblioteca utilizada por algún binario, en este caso /bin/su:
En este caso, intentemos suplantar /lib/x86_64-linux-gnu/libaudit.so.1.
Así que, verifiquemos las funciones de esta biblioteca utilizadas por el su binario:
Los símbolos audit_open, audit_log_acct_message, audit_log_acct_message y audit_fd probablemente provienen de la biblioteca libaudit.so.1. Como la libaudit.so.1 será sobrescrita por la biblioteca compartida maliciosa, estos símbolos deberían estar presentes en la nueva biblioteca compartida; de lo contrario, el programa no podrá encontrar el símbolo y saldrá.