// 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 socket, συνήθως στο /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 θα αντικατασταθεί από τη κακόβουλη κοινή βιβλιοθήκη, αυτά τα σύμβολα θα πρέπει να είναι παρόντα στη νέα κοινή βιβλιοθήκη, αλλιώς το πρόγραμμα δεν θα μπορεί να βρει το σύμβολο και θα τερματιστεί.