// 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;}
Yetkileri artırmak için bir dosyayı üzerine yazma
Yaygın dosyalar
/etc/passwd dosyasına şifreli kullanıcı ekle
/etc/shadow dosyasında şifreyi değiştir
/etc/sudoers dosyasına kullanıcı ekle
Genellikle /run/docker.sock veya /var/run/docker.sock içinde bulunan docker soketini kötüye kullan
Bir kütüphaneyi üzerine yazma
Bu durumda /bin/su olan bazı ikili dosyalar tarafından kullanılan bir kütüphaneyi kontrol et:
Bu durumda /lib/x86_64-linux-gnu/libaudit.so.1 dosyasını taklit etmeye çalışalım.
Bu kütüphanenin su ikili dosyası tarafından kullanılan fonksiyonlarını kontrol edin:
The symbols audit_open, audit_log_acct_message, audit_log_acct_message ve audit_fd muhtemelen libaudit.so.1 kütüphanesindendir. libaudit.so.1 kötü niyetli paylaşılan kütüphane tarafından üzerine yazılacağından, bu semboller yeni paylaşılan kütüphanede mevcut olmalıdır, aksi takdirde program sembolü bulamayacak ve çıkacaktır.