Capabilities Beispiele: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(→Test) |
(→Test) |
||
| Zeile 24: | Zeile 24: | ||
;als normaler Benutzer | ;als normaler Benutzer | ||
*su - xinux | *su - xinux | ||
| − | * ping-orig 1.1.1.1 | + | *ping-orig 1.1.1.1 |
ping-orig: socktype: SOCK_RAW | ping-orig: socktype: SOCK_RAW | ||
ping-orig: socket: Operation not permitted | ping-orig: socket: Operation not permitted | ||
ping-orig: => missing cap_net_raw+p capability or setuid? | ping-orig: => missing cap_net_raw+p capability or setuid? | ||
| + | *sudo setcap cap_net_raw+p /usr/local/bin/ping-orig | ||
| + | *sudo getcap /usr/local/bin/ping-orig | ||
| + | /usr/local/bin/ping-orig cap_net_raw=p | ||
| + | *ping-orig 1.1.1.1 | ||
| + | PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data. | ||
| + | 64 bytes from 1.1.1.1: icmp_seq=1 ttl=56 time=4.86 ms | ||
==Links== | ==Links== | ||
*http://unixetc.co.uk/2016/05/30/linux-capabilities-and-ping/ | *http://unixetc.co.uk/2016/05/30/linux-capabilities-and-ping/ | ||
Version vom 15. Januar 2023, 08:26 Uhr
password
User-SBit
- Das Programm "password" muss auf die Datei /etc/shaddow zugreifen.
- Wenn ein Benutzer dieses Programm auf ruft läuft der Prozess unter seiner UID
- Diese hat kein Recht die Datei /etc/shaddow zu beschreiben.
- Darum gibt es das User-SBIT Recht, dies hat zur Folge, das der Prozess unter der UID des Besitzers des Programms läuft.
- ls -l /bin/passwd
-rwsr-xr-x 1 root root 63960 Feb 7 2020 /bin/passwd
Lösung per Capabilities
- cp /bin/passwd /bin/pw
- chmod u-s /bin/pw
- setcap cap_dac_override=ep /bin/pw
ping
- Ping braucht Privilegien, um die speziellen ICMP-Pakete ins LAN senden zu dürfen.
- Normalerweise verschafft das Set-UID-Root-Bit dem Tool diese Fähigkeiten.
- siehe Oben.
- Debian hat ping so kompiliert das es die nicht braucht.
- Wir nutzen deshalb ein selbst kompiliertes ping
Download
- cd /usr/local/bin
- wget https://xinux.de/downloads/ping-orig
- chmod +x ping-orig
Test
- als normaler Benutzer
- su - xinux
- ping-orig 1.1.1.1
ping-orig: socktype: SOCK_RAW ping-orig: socket: Operation not permitted ping-orig: => missing cap_net_raw+p capability or setuid?
- sudo setcap cap_net_raw+p /usr/local/bin/ping-orig
- sudo getcap /usr/local/bin/ping-orig
/usr/local/bin/ping-orig cap_net_raw=p
- ping-orig 1.1.1.1
PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data. 64 bytes from 1.1.1.1: icmp_seq=1 ttl=56 time=4.86 ms