7.7 KiB
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Grupy Sudo/Admin
PE - Metoda 1
Czasami, domyślnie (lub ponieważ niektóre oprogramowanie tego potrzebuje) w pliku /etc/sudoers możesz 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, 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ć:
sudo su
PE - Metoda 2
Znajdź wszystkie binarki suid i sprawdź, czy istnieje binarka Pkexec:
find / -perm -4000 2>/dev/null
Jeśli stwierdzisz, że binarka pkexec jest binarką SUID i należysz do grupy sudo lub admin, prawdopodobnie będziesz mógł wykonywać binarki jako sudo za pomocą pkexec. Sprawdź zawartość:
cat /etc/polkit-1/localauthority.conf.d/*
Tam znajdziesz, które grupy mają prawo do wykonywania pkexec i domyślnie w niektórych systemach linux mogą pojawić się niektóre z grup sudo lub admin.
Aby stać się rootem, możesz wykonać:
pkexec "/bin/sh" #You will be prompted for your user password
Jeśli spróbujesz wykonać pkexec i otrzymasz 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. I jest obejście tego problemu tutaj: https://github.com/NixOS/nixpkgs/issues/18012#issuecomment-335350903. Potrzebujesz 2 różnych sesji ssh:
{% code title="session1" %}
echo $$ #Step1: Get current PID
pkexec "/bin/bash" #Step 3, execute pkexec
#Step 5, if correctly authenticate, you will have a root session
{% endcode %}
{% code title="session2" %}
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żesz znaleźć tę linię:
%wheel ALL=(ALL:ALL) ALL
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ć:
sudo su
Shadow Group
Użytkownicy z grupy shadow mogą czytać plik /etc/shadow:
-rw-r----- 1 root shadow 1824 Apr 26 19:10 /etc/shadow
So, przeczytaj plik i spróbuj złamać niektóre hashe.
Grupa dysków
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]
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 to zrobić:
debugfs -w /dev/sda1
debugfs: dump /tmp/asd1.txt /tmp/asd2.txt
Jednakże, jeśli spróbujesz zapisać pliki należące do roota jak `/etc/shadow` lub `/etc/passwd`
otrzymasz błąd "Brak uprawnień".
Grupa Wideo
Używając polecenia w
, możesz znaleźć kto jest zalogowany w systemie i wyświetli to 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
The tty1 oznacza, że użytkownik yossi jest fizycznie zalogowany do terminala na maszynie.
Grupa video ma dostęp do wyświetlania wyjścia 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
cat /dev/fb0 > /tmp/screen.raw
cat /sys/class/graphics/fb0/virtual_size
Aby otworzyć surowy obraz, możesz użyć GIMP, wybrać plik screen.raw
i jako typ pliku wybrać 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
:
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ć użyte do eskalacji uprawnień...
Sprawdź, które pliki członkowie roota mogą modyfikować:
find / -group root -perm -g=w 2>/dev/null
Grupa Docker
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.
{% embed url="https://github.com/KrustyHack/docker-privilege-escalation" %}
{% embed url="https://fosterelli.co/privilege-escalation-via-docker.html" %}
Grupa lxc/lxd
{% hint style="success" %}
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)
Wsparcie dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.