Tutorials

Chrootkit Exploit

Il processo di escalation dei privilegi su Linux mira a sfruttare vulnerabilità o errori di configurazione per ottenere accesso come utente root. Durante il post-exploitation, una delle fasi cruciali

#exploitation#linux#metasploit

Privilege Escalation su Linux

Il processo di escalation dei privilegi su Linux mira a sfruttare vulnerabilità o errori di configurazione per ottenere accesso come utente root. Durante il post-exploitation, una delle fasi cruciali è ottenere i privilegi elevati per completare l'attacco e ottenere il controllo completo sulla macchina compromessa.

#### Vulnerabilità nel Binario chrootkit

Chrootkit è uno strumento che viene comunemente utilizzato per rilevare rootkit su sistemi Linux. Tuttavia, le versioni di chrootkit precedenti alla 0.50 contengono una vulnerabilità che può essere sfruttata per escalation dei privilegi locali (Local Privilege Escalation, LPE).

##### Chrootkit LPE Exploit:

La vulnerabilità si trova nel fatto che il binario di chrootkit (nelle versioni precedenti alla 0.50) non gestisce correttamente i permessi durante la sua esecuzione, permettendo ad un utente malintenzionato di ottenere l'accesso come root.

##### Tecnica per l'Exploit:

Per sfruttare questa vulnerabilità, è possibile utilizzare il modulo di Metasploit exploit/unix/local/chrootkit. Questo modulo consente di eseguire l'exploit su una macchina vulnerabile che ha il binario chrootkit installato.

Passaggi per sfruttare la vulnerabilità:

1. Caricare il modulo di exploit in Metasploit:

bash
use exploit/unix/local/chrootkit
2. Impostare il percorso di chrootkit sul sistema target: Devi sapere dove si trova il binario di chrootkit sul sistema compromesso (es. /usr/local/bin/chrootkit). Imposta il percorso corretto per il modulo:
bash
set CHROOTKIT_PATH /usr/local/bin/chrootkit
3. Impostare la sessione di Metasploit: Imposta la sessione di Metasploit che hai acquisito sulla macchina target, su cui eseguire l'exploit:
bash
set SESSION 1
4. Eseguire l'exploit: Dopo aver configurato il modulo, esegui l'exploit:
bash
exploit
5. Verifica l'escalation: Dopo l'esecuzione dell'exploit, dovresti ottenere privilegi di root sulla macchina target.


Altre Tecniche di Privilege Escalation su Linux

Oltre alla vulnerabilità in chrootkit, esistono altre tecniche comuni per l'escalation dei privilegi su Linux:

#### 1. Sfruttamento di Vulnerabilità nel Kernel

Il kernel Linux ha spesso vulnerabilità che possono essere sfruttate per l’escalation dei privilegi. Le vulnerabilità di tipo CVE possono essere utilizzate per ottenere l'accesso come root. Gli exploit per queste vulnerabilità sono spesso pubblici e facilmente integrabili in strumenti come Metasploit.

##### Esempio:

  • Dirty COW (CVE-2016-5195): Un bug nel kernel Linux che permette a un utente non privilegiato di modificare i file di sistema e ottenere i privilegi di root.

#### 2. Sfruttamento di File SUID e SGID

I file SUID (Set User ID) e SGID (Set Group ID) sono particolari permessi di file che consentono l'esecuzione di un programma con i privilegi dell'utente o del gruppo proprietario del file.

  • SUID consente al programma di essere eseguito con i privilegi dell'utente che possiede il file, solitamente root.
  • SGID consente l'esecuzione con i privilegi del gruppo proprietario.

##### Come sfruttarli:

1. Elencare i file SUID e SGID:

bash
find / -type f -executable -perm -4000
    find / -type f -executable -perm -2000
2. Una volta identificato un file vulnerabile, prova a eseguire l'utente root:
bash
/path/to/suid_program
3. Se il programma è vulnerabile, potresti riuscire a eseguire un comando come root, come ad esempio lanciare una shell interattiva:
bash
/path/to/suid_program; /bin/bash

#### 3. Sfruttamento di Cron Jobs

I cron jobs sono processi pianificati che vengono eseguiti a intervalli regolari. Se un cron job è mal configurato o esegue comandi con privilegi elevati, può essere sfruttato per eseguire codice arbitrario.

##### Come sfruttarli:

1. Esaminare i cron job:

bash
crontab -l
    ls -l /etc/cron.d/
2. Se si individuano cron job con permessi di root o che eseguono comandi con privilegi elevati, è possibile manipolare lo script di cron per includere un comando che venga eseguito con i privilegi di root, come ad esempio una shell.

#### 4. Sfruttamento di File di Configurazione Inadeguati

Molti servizi e applicazioni su Linux utilizzano file di configurazione che potrebbero contenere informazioni sensibili, come password o chiavi SSH. Se questi file hanno permessi di lettura o scrittura errati, possono essere sfruttati per ottenere accesso al sistema.

##### Come sfruttarli:

1. Identificare file di configurazione con permessi inadeguati:

bash
find / -type f -name "*.conf" -perm -0077
2. Se i file contengono informazioni sensibili, come credenziali di root, è possibile utilizzarli per effettuare il login come root.

#### 5. Sfruttamento di NFS (Network File System)

Se il sistema è configurato in modo errato per consentire l'accesso a un file system di rete, potrebbe essere possibile ottenere il controllo della macchina target. Alcune configurazioni di NFS possono consentire a utenti non privilegiati di scrivere su directory condivise, facilitando l'escalation.

##### Come sfruttarlo:

1. Identificare i mount di NFS:

bash
showmount -e
2. Se si hanno permessi per scrivere su una directory condivisa, può essere possibile creare uno script o file di backdoor.


Strumenti e Metodi per l'Escalation dei Privilegi

1. LinPEAS: Strumento di enumerazione per il privilege escalation che ricerca vulnerabilità comuni, file di configurazione errati, cron job vulnerabili, file SUID/SGID, e altro ancora. 2. Linux Exploit Suggester: Un altro strumento utile per suggerire exploit di privilege escalation basati sulla versione del kernel e altre informazioni di sistema. 3. GTFOBins: Una lista di comandi che possono essere sfruttati per eseguire codice arbitrario con privilegi elevati, sfruttando programmi comuni che hanno capacità SUID/SGID o altre vulnerabilità.