Interesting Groups - Linux Privesc
Last updated
Last updated
Dowiedz się i praktykuj Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Dowiedz się i praktykuj Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
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, wystarczy wykonać:
Znajdź wszystkie binarne pliki suid i sprawdź, czy istnieje binarny plik 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 pliki jako sudo za pomocą pkexec
.
Dzieje się tak, ponieważ zazwyczaj te grupy są wewnątrz polityki polkit. Polityka ta określa, które grupy mogą korzystać z 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ć polecenie 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óżne sesje ssh:
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 wykonywać cokolwiek jako sudo.
Jeśli tak jest, aby stać się rootem, wystarczy wykonać:
Użytkownicy z grupy shadow mogą odczytywać plik /etc/shadow:
Więc, przeczytaj plik i spróbuj złamać kilka hashy.
personel: 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
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 jeśli spróbujesz zapisać pliki należące do roota (takie jak /etc/shadow
lub /etc/passwd
), otrzymasz błąd "Permission denied".
Za pomocą polecenia w
możesz sprawdzić 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 przeglądania wyjścia ekranu. W zasadzie można obserwować ekrany. Aby to zrobić, musisz przechwycić bieżący obraz na ekranie w postaci surowych danych i uzyskać rozdzielczość, którą 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, wybierz plik **screen.raw
** i wybierz 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):
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 mogą być modyfikowane przez członków root:
Możesz zamontować system plików root hosta do woluminu instancji, więc gdy instancja zostanie uruchomiona, natychmiast wczytuje chroot
do tego woluminu. W rezultacie otrzymujesz uprawnienia roota na maszynie.
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.
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