// 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;}
Nadpisywanie pliku w celu eskalacji uprawnień
Typowe pliki
Dodaj użytkownika z hasłem do /etc/passwd
Zmień hasło w /etc/shadow
Dodaj użytkownika do sudoers w /etc/sudoers
Wykorzystaj docker przez gniazdo docker, zazwyczaj w /run/docker.sock lub /var/run/docker.sock
Nadpisywanie biblioteki
Sprawdź bibliotekę używaną przez jakiś binarny plik, w tym przypadku /bin/su:
Symbole audit_open, audit_log_acct_message, audit_log_acct_message i audit_fd pochodzą prawdopodobnie z biblioteki libaudit.so.1. Ponieważ libaudit.so.1 zostanie nadpisana przez złośliwą bibliotekę współdzieloną, te symbole powinny być obecne w nowej bibliotece współdzielonej, w przeciwnym razie program nie będzie w stanie znaleźć symbolu i zakończy działanie.