Capabilities Beispiele: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
 
*[[Capabilities Beispiel readlogs]]
 
*[[Capabilities Beispiel readlogs]]
 
+
*[[Capabilities Beispiel passwd]]
=password=
+
*[[Capabilities Beispiel ping]]
==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=
 
=Download=
 
*cd /usr/local/bin
 
*cd /usr/local/bin

Version vom 12. Mai 2024, 13:05 Uhr

Download

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?

Lösung per Capabilities

  • 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