Capabilities Beispiele

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

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

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

Links