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