Crassus strumento di scoperta di escalation dei privilegi su Windows
Avvio rapido
- In Process Monitor, seleziona l'opzione
Enable Boot Logging.

- Riavvia.
- Dopo aver effettuato l'accesso e Windows si è stabilizzato, esegui di nuovo Process Monitor.
- Quando richiesto, salva il log di avvio, ad esempio in
raw.PML.
- Reimposta il filtro predefinito di Process Monitor usando
Ctrl-R.
- Salva questo file di log, ad esempio in
boot.PML.
- Esegui
Crassus.exe boot.PML.
- Esamina tutti i risultati colorati in verde e le corrispondenti voci in
results.csv.
Indice
Perché "Crassus"?
Accenture ha creato uno strumento chiamato Spartacus, che trova opportunità di DLL hijacking su Windows. Utilizzando Spartacus come punto di partenza, abbiamo creato Crassus per estendere le capacità di scoperta di escalation dei privilegi su Windows oltre la semplice ricerca di file mancanti. Gli ACL utilizzati da file e directory di processi privilegiati possono trovare più della semplice ricerca di file mancanti per raggiungere l'obiettivo.
Hai davvero creato un altro strumento di scoperta di escalation dei privilegi?
...ma con un twist: Crassus utilizza il SysInternals Process Monitor e analizza file di log PML grezzi. L'uso tipico è generare un log di avvio usando Process Monitor e poi analizzarlo con Crassus. Genererà anche automaticamente il codice sorgente per DLL proxy con tutti gli export rilevanti per DLL vulnerabili.
Caratteristiche
- Analisi nativa dei file PML di ProcMon. Il parser del log (PML) è stato implementato portando funzionalità parziali in C# da https://github.com/eronnen/procmon-parser/. Puoi trovare le specifiche del formato qui.
- Crassus creerà codice sorgente per DLL proxy per tutte le DLL mancanti identificate. Ad esempio, se un'applicazione è vulnerabile al DLL Hijacking tramite
version.dll, Crassus creerà i file version.cpp e version.def con tutti gli export inclusi. Per impostazione predefinita, le DLL proxy avvieranno calc.exe. Sono inclusi script di build per compilare le DLL su Visual Studio o MinGW.
- Per altri eventi di interesse, come la creazione di un processo o il caricamento di una libreria, viene investigata la capacità degli utenti non privilegiati di modificare il file o qualsiasi parte del percorso del file.
- In grado di elaborare file PML di grandi dimensioni e memorizzare tutti gli eventi di interesse in un file CSV di output.
Diagramma di flusso
Il succo generale di come funziona Crassus può essere riassunto in questo diagramma di flusso:

Schermate
Esecuzione di Crassus

Output CSV

Export di output

Funzioni di export delle DLL

Ordinali di export delle DLL

Ottenere Crassus.exe
Compilazione con Visual Studio
Crassus è stato sviluppato come progetto Visual Studio 2019. Per compilare Crassus.exe:
- Apri
Crassus.sln
- Premi
Ctrl+Shift+B sulla tastiera
Utilizzo di Crassus.exe precompilato
Se ti fidi di eseguire codice di altri senza sapere cosa fa, Crassus.exe è fornito in questo repository.
Utilizzo
Flusso di esecuzione
- In Process Monitor, seleziona l'opzione
Enable Boot Logging.

- Riavvia.
- Dopo aver effettuato l'accesso e Windows si è stabilizzato, puoi anche eseguire facoltativamente attività pianificate che potrebbero essere configurate per essere eseguite con privilegi.
- Esegui di nuovo Process Monitor.
- Quando richiesto, salva il log di avvio.
- Reimposta il filtro predefinito di Process Monitor usando
Ctrl-R.
- Salva questo file di log, ad esempio in
boot.PML. Il motivo per salvare di nuovo il file di log è duplice:
- Le versioni precedenti di Process Monitor non salvano i log di avvio come un singolo file.
- I log di avvio per impostazione predefinita non sono filtrati, il che potrebbe contenere rumore extra, come un DLL hijacking di un utente locale nell'avvio di Process Monitor stesso.
Argomenti della riga di comando
| Argomento | Descrizione |
|---|
<PMLFILE> | Percorso (file) del file di log eventi ProcMon esistente. |
--verbose | Abilita output dettagliato. |
--debug | Abilita output di debug. |
Esempi