Interesting Groups - Linux Privesc
Last updated
Last updated
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Czasami, domyślnie (lub ponieważ niektóre oprogramowanie tego potrzebuje) w pliku /etc/sudoers możesz znaleźć niektóre z tych linii:
To oznacza, że każdy użytkownik, który należy do grupy sudo lub admin, może wykonywać cokolwiek jako sudo.
Jeśli tak jest, aby stać się rootem, wystarczy wykonać:
Znajdź wszystkie binarki suid i sprawdź, czy istnieje binarka Pkexec:
Jeśli stwierdzisz, że binarny plik pkexec jest binarnym plikiem SUID i należysz do sudo lub admin, prawdopodobnie możesz wykonywać binaria jako sudo za pomocą pkexec
.
Dzieje się tak, ponieważ zazwyczaj są to grupy w ramach polkit policy. Ta polityka zasadniczo identyfikuje, które grupy mogą używać pkexec
. Sprawdź to za pomocą:
Tam znajdziesz, które grupy mają prawo do wykonywania pkexec, a domyślnie w niektórych dystrybucjach Linuksa pojawiają się grupy sudo i admin.
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ś połączony bez GUI. I jest obejście tego problemu tutaj: https://github.com/NixOS/nixpkgs/issues/18012#issuecomment-335350903. Potrzebujesz 2 różnych sesji ssh:
Czasami, domyślnie w pliku /etc/sudoers możesz znaleźć tę linię:
To oznacza, że każdy użytkownik, który należy 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ą czytać plik /etc/shadow:
So, przeczytaj plik i spróbuj złamać niektóre hashe.
staff: Pozwala użytkownikom na dodawanie lokalnych modyfikacji do systemu (/usr/local
) bez potrzeby posiadania uprawnień roota (zauważ, że pliki wykonywalne w /usr/local/bin
są w zmiennej PATH każdego użytkownika i mogą "nadpisywać" pliki wykonywalne w /bin
i /usr/bin
o tej samej nazwie). Porównaj z grupą "adm", która jest bardziej związana z monitorowaniem/bezpieczeństwem. [source]
W dystrybucjach debiana, zmienna $PATH
pokazuje, że /usr/local/
będzie uruchamiana z najwyższym priorytetem, niezależnie od tego, czy jesteś użytkownikiem z uprawnieniami, czy nie.
Jeśli możemy przejąć niektóre programy w /usr/local
, możemy łatwo uzyskać dostęp do roota.
Przejęcie programu run-parts
to łatwy sposób na uzyskanie dostępu do roota, ponieważ większość programów uruchomi run-parts
, jak (crontab, podczas logowania przez ssh).
lub Kiedy nowe logowanie sesji ssh.
Eksploatacja
To uprawnienie jest prawie równoważne z dostępem root ponieważ możesz uzyskać 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ż zapisywać pliki. Na przykład, aby skopiować /tmp/asd1.txt
do /tmp/asd2.txt
, możesz to zrobić:
Jednak jeśli spróbujesz zapisać pliki należące do roota (takie jak /etc/shadow
lub /etc/passwd
), otrzymasz błąd "Permission denied".
Używając polecenia w
, możesz znaleźć kto jest zalogowany w systemie i zobaczysz wynik podobny do poniższego:
tty1 oznacza, że użytkownik yossi jest fizycznie zalogowany do terminala na maszynie.
Grupa video ma dostęp do wyświetlania danych wyjściowych ekranu. W zasadzie możesz obserwować ekrany. Aby to zrobić, musisz złapać bieżący obraz na ekranie w surowych danych i uzyskać rozdzielczość, którą używa ekran. 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 surowego obrazu:
Następnie zmodyfikuj Szerokość i Wysokość na te używane na ekranie i sprawdź różne Typy obrazów (i wybierz ten, który lepiej 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ług lub niektórych plików bibliotek lub innych interesujących rzeczy, które mogą być użyte do eskalacji uprawnień...
Sprawdź, które pliki członkowie root mogą modyfikować:
Możesz zamontować system plików root maszyny hosta do woluminu instancji, więc gdy instancja się uruchamia, natychmiast ładuje chroot
do tego woluminu. To skutecznie daje ci uprawnienia root na maszynie.
Finally, if you don't like any of the suggestions of before, or they aren't working for some reason (docker api firewall?) you could always try to uruchomić kontener z uprawnieniami i uciec z niego as explained here:
Docker SecurityIf you have write permissions over the docker socket read ten post o tym, jak eskalować uprawnienia, nadużywając gniazda docker.
Usually członkowie grupy adm
have permissions to czytać pliki dziennika located inside /var/log/.
Therefore, if you have compromised a user inside this group you should definitely take a spojrzeć na logi.
Inside OpenBSD the auth group usually can write in the folders /etc/skey and /var/db/yubikey if they are used. These permissions may be abused with the following exploit to eskalować uprawnienia to root: https://raw.githubusercontent.com/bcoles/local-exploits/master/CVE-2019-19520/openbsd-authroot
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)