NFsec Logo

systemd – nazwy użytkowników zaczynające się od liczb otrzymują roota

16/07/2017 (2 tygodnie temu) w Bezpieczeństwo Brak komentarzy.  (artykuł nr 614, ilość słów: 182)

L

uka została ujawniona podczas zgłoszenia błędu na githubie. systemd nie potrafi obsłużyć odpalenia procesu użytkownika, którego login zaczyna się od liczby np. 0day i tym samym uruchamia proces z prawami administratora zamiast owego użytkownika. Brzmi to dość drastycznie:

> In case of bug report: Expected behaviour you didn’t see
The process started by systemd should be user previlege

> In case of bug report: Unexpected behaviour you saw
The process started by systemd was root previlege


Jeśli przyjrzymy się poniższemu plikowi unit to proces socat powinien zostać wystartowany z prawami użytkownika „0day

[Unit]
Description=0day socat service
After=network.target

[Service]
User=0day
Restart=always
Type=simple
WorkingDirectory=/home/0day/
ExecStart=/usr/bin/socat TCP-LISTEN:18086,reuseaddr,fork EXEC:"/opt/run-elf"

[Install]
WantedBy=multi-user.target

– niestety zostanie on cofnięty do standardowej polityki dla pola User= i uruchomiony z prawami użytkownika root. Definitywnie jest to błąd, ponieważ takie dystrybucje jak RedHat/CentOS, czy Ubuntu/Debian pozwalają na tego typu nazwy użytkowników. Wydawać się to może problemem bezpieczeństwa, ale luka ta jest dość specyficzna w eksploatacji. Przed jej wykorzystaniem potrzebne są już podwyższone uprawnienia, aby stworzyć lub edytować wybrany plik unit. Dokonać tego można poprzez oszukanie administratora jakimś trikiem lub spreparowanym, wrogim pakietem, który umożliwi nam dalszą eskalację uprawnień.

Kategorie K a t e g o r i e : Bezpieczeństwo

Tagi T a g i : , , ,

Zostaw odpowiedź.

Musisz być zalogowany by móc komentować.