Interesting Groups - Linux Privesc
Grupy Sudo/Administratorów
PE - Metoda 1
Czasami, domyślnie (lub z powodu potrzeb niektórego oprogramowania) w pliku /etc/sudoers można znaleźć niektóre z tych linii:
To oznacza, że każdy użytkownik należący do grupy sudo lub admin może wykonać cokolwiek jako sudo.
Jeśli tak jest, aby stać się rootem, po prostu wykonaj:
PE - Metoda 2
Znajdź wszystkie binarne pliki suid i sprawdź, czy istnieje binarna aplikacja Pkexec:
Jeśli okaże się, że binarny pkexec jest binarnym SUID i należysz do grupy sudo lub admin, prawdopodobnie będziesz mógł wykonywać binarne jako sudo, używając pkexec
. To dlatego, że zazwyczaj te grupy są wewnątrz polityki polkit. Ta polityka określa, które grupy mogą używać pkexec
. Sprawdź to za pomocą:
W tym miejscu dowiesz się, które grupy mają uprawnienia do wykonania pkexec i domyślnie w niektórych dystrybucjach Linuxa grupy sudo i admin są widoczne.
Aby stać się rootem, możesz wykonać:
Jeśli spróbujesz wykonać pkexec i otrzymasz ten błąd:
To nie dlatego, że nie masz uprawnień, ale dlatego, że nie jesteś podłączony bez GUI. Istnieje sposób na obejście tego problemu tutaj: https://github.com/NixOS/nixpkgs/issues/18012#issuecomment-335350903. Potrzebujesz 2 różnych sesji ssh:
Grupa Wheel
Czasami, domyślnie w pliku /etc/sudoers można znaleźć tę linijkę:
To oznacza, że każdy użytkownik należący do grupy wheel może wykonać cokolwiek jako sudo.
Jeśli tak jest, aby stać się rootem, po prostu wykonaj:
Grupa Shadow
Użytkownicy z grupy shadow mogą odczytywać plik /etc/shadow:
Więc, przeczytaj plik i spróbuj złamać kilka hashy.
Grupa Personelu
staff: Umożliwia użytkownikom dodawanie lokalnych modyfikacji do systemu (/usr/local
) bez konieczności posiadania uprawnień roota (zauważ, że pliki wykonywalne w /usr/local/bin
są w zmiennej PATH każdego użytkownika i mogą "nadpisać" pliki wykonywalne w /bin
i /usr/bin
o tej samej nazwie). Porównaj z grupą "adm", która bardziej dotyczy monitorowania/bezpieczeństwa. [źródło]
W dystrybucjach debian, zmienna $PATH
pokazuje, że /usr/local/
będzie uruchamiany jako najwyższy priorytet, niezależnie od tego, czy jesteś uprzywilejowanym użytkownikiem, czy nie.
Jeśli uda nam się przejąć kontrolę nad niektórymi programami w /usr/local
, możemy łatwo uzyskać uprawnienia roota.
Przejęcie kontroli nad programem run-parts
jest łatwym sposobem na uzyskanie uprawnień roota, ponieważ większość programów uruchamia run-parts
(np. crontab, podczas logowania przez ssh).
lub Kiedy następuje nowe logowanie sesji ssh.
Wykorzystanie
Grupa dyskowa
To uprawnienie jest prawie równoważne z dostępem roota, ponieważ umożliwia dostęp do wszystkich danych wewnątrz maszyny.
Pliki: /dev/sd[a-z][1-9]
Zauważ, że używając debugfs możesz również pisać pliki. Na przykład, aby skopiować /tmp/asd1.txt
do /tmp/asd2.txt
, możesz wykonać:
Jednakże, jeśli spróbujesz zapisać pliki należące do roota (takie jak /etc/shadow
lub /etc/passwd
), otrzymasz błąd "Permission denied".
Grupa wideo
Korzystając z polecenia w
, możesz dowiedzieć się kto jest zalogowany w systemie i otrzymasz wynik podobny do poniższego:
tty1 oznacza, że użytkownik yossi jest zalogowany fizycznie do terminala na maszynie.
Grupa video ma dostęp do wyświetlania danych ekranowych. W zasadzie można obserwować ekrany. Aby to zrobić, musisz przechwycić bieżący obraz na ekranie w postaci surowych danych i uzyskać rozdzielczość, jaką ekran używa. Dane ekranu można zapisać w /dev/fb0
, a rozdzielczość tego ekranu można znaleźć w /sys/class/graphics/fb0/virtual_size
.
Aby otworzyć surowy obraz, możesz użyć GIMP, wybrać plik **screen.raw
** i wybrać jako typ pliku Dane obrazu surowego:
Następnie zmodyfikuj Szerokość i Wysokość na te używane na ekranie i sprawdź różne Typy obrazu (i wybierz ten, który najlepiej pokazuje ekran):
Grupa Root
Wygląda na to, że domyślnie członkowie grupy root mogą mieć dostęp do modyfikacji niektórych plików konfiguracyjnych usługi lub niektórych plików bibliotek lub innych interesujących rzeczy, które mogą być wykorzystane do eskalacji uprawnień...
Sprawdź, które pliki członkowie root mogą modyfikować:
Grupa Docker
Możesz podłączyć system plików root hosta do woluminu instancji, więc gdy instancja zostanie uruchomiona, natychmiast wczytuje chroot
do tego woluminu. To efektywnie daje Ci uprawnienia roota na maszynie.
Grupa lxc/lxd
pageInteresting Groups - Linux PrivescGrupa Adm
Zazwyczaj członkowie grupy adm
mają uprawnienia do odczytu plików dziennika znajdujących się wewnątrz /var/log/.
Dlatego jeśli skompromitowałeś użytkownika należącego do tej grupy, zdecydowanie powinieneś przejrzeć dzienniki.
Grupa Auth
Wewnątrz OpenBSD grupa auth zazwyczaj może zapisywać w folderach /etc/skey i /var/db/yubikey jeśli są używane. Te uprawnienia mogą być nadużyte za pomocą następującego exploitu do eskalacji uprawnień do roota: https://raw.githubusercontent.com/bcoles/local-exploits/master/CVE-2019-19520/openbsd-authroot
Last updated