// 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;}
Перезапис файлу для ескалації привілеїв
Загальні файли
Додати користувача з паролем до /etc/passwd
Змінити пароль у /etc/shadow
Додати користувача до sudoers у /etc/sudoers
Зловживати docker через сокет docker, зазвичай у /run/docker.sock або /var/run/docker.sock
Перезапис бібліотеки
Перевірте бібліотеку, що використовується деяким бінарним файлом, у цьому випадку /bin/su:
У цьому випадку спробуємо видати себе за /lib/x86_64-linux-gnu/libaudit.so.1.
Отже, перевірте функції цієї бібліотеки, які використовуються бінарним файлом su:
Символи audit_open, audit_log_acct_message, audit_log_acct_message та audit_fd ймовірно походять з бібліотеки libaudit.so.1. Оскільки libaudit.so.1 буде перезаписано шкідливою спільною бібліотекою, ці символи повинні бути присутніми в новій спільній бібліотеці, інакше програма не зможе знайти символ і завершить роботу.