Wybrane wersje serwera Xorg X11 są podatne na ataki typu Privilege Escalation Exploits, OpenBSD i CentOS

Bezpieczeństwo / Wybrane wersje serwera Xorg X11 są podatne na ataki typu Privilege Escalation Exploits, OpenBSD i CentOS 1 minuta czytania

Projekt OpenBSD



Xorg to bardzo znany system okien X używany w systemie Linux. To graficzny interfejs użytkownika wykorzystujący standard X11, który z kolei jest protokołem komunikacyjnym. Xorg został rozwidlony z projektu XFree86, który nie jest już aktywnie rozwijany.

Wykorzystanie eskalacji uprawnień

Wszystkie wersje serwerów Xorg X11 od 1.19.0 do 1.20.3 są podatne na błędy sprawdzania uprawnień, które istnieją dla opcji -modulepath i -logfile. Daje to nieuprzywilejowanym użytkownikom możliwość uruchamiania serwera, uruchamiania dowolnego kodu z podwyższonymi uprawnieniami.



Naukowcy odkryli, że uruchomienie skryptu CRON z załadowanym exploitem sprawia, że ​​SELinux go wymusza. Tworzony jest plik kopii zapasowej crontab.old, który jest zasadniczo zastępowany przez moduł Metasploit nowym plikiem z poleceniami i instrukcjami do wykonania przez demona cron. Nieudana eksploatacja może spowodować uszkodzenie pliku crontab. Xorg musi również mieć uprawnienia SUID, aby exploit działał, co możesz zweryfikować na podstawie poniższego fragmentu kodu.



# testy linux
uname = cmd_exec „uname”
jeśli uname = ~ / linux / i
vprint_status „Uruchamianie dodatkowego sprawdzania w systemie Linux”
if datastore [‘ConsoleLock’] user = cmd_exec „id -un”
chyba że istnieje? „/ Var / run / console / # {użytkownik}”
vprint_error 'Brak blokady konsoli dla # {użytkownik}'
return CheckCode :: Safe
koniec
vprint_good 'Blokada konsoli dla # {użytkownik}'
koniec
jeśli selinux_installed?
jeśli selinux_enforcing?
vprint_error „Selinux wymusza”
return CheckCode :: Safe
koniec
koniec
vprint_good 'Selinux nie jest problemem'
koniec

# kontrola programu suid
xorg_path = cmd_exec „command -v Xorg”
chyba że xorg_path.include? („Xorg”)
vprint_error „Nie można znaleźć pliku wykonywalnego Xorg”
return CheckCode :: Safe
koniec
vprint_good „Ścieżka Xorg znaleziona w # {xorg_path}”
chyba że setuid? xorg_path
vprint_error „Plik binarny Xorg # {xorg_path} nie jest SUID”
return CheckCode :: Safe
koniec
vprint_good „Plik binarny Xorg # {xorg_path} to SUID”

Metodologia testowania

Nad tym exploitem pracowało czterech badaczy:

  • Narendra Shinde - Odkrycie i wykorzystanie
  • Raptor-0xdea - zmodyfikowany exploit dla crona
  • Aaron Ringo - moduł Metasploit
  • Brendan Coles - moduł Metasploit

Zostało to przetestowane na OpenBSD 6.3, 6.4 i CentOS 7 (1708). Zgodnie z uwagami na temat Packetstorm, CentOS z domyślną instalacją będzie wymagał uwierzytelnienia konsoli dla sesji użytkownika.

Jest to poważna luka w zabezpieczeniach, biorąc pod uwagę skalę wykorzystania Xorg. Mimo że exploit do działania potrzebuje pewnych ustawień wstępnych, które mogą nie występować w środowisku zawodowym.

Tagi CentOS OpenBSD Xorg