Privilege Escalation with Autoruns
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Bug bounty tip: iscriviti a Intigriti, una premium bug bounty platform creata da hacker, per hacker! Unisciti a noi su https://go.intigriti.com/hacktricks oggi, e inizia a guadagnare ricompense fino a $100,000!
Wmic può essere utilizzato per eseguire programmi all'avvio. Vedi quali binari sono programmati per essere eseguiti all'avvio con:
Le attività possono essere programmate per essere eseguite con una certa frequenza. Vedi quali binari sono programmati per essere eseguiti con:
Tutti i binari situati nelle cartelle di avvio verranno eseguiti all'avvio. Le cartelle di avvio comuni sono quelle elencate di seguito, ma la cartella di avvio è indicata nel registro. Leggi questo per scoprire dove.
Nota da qui: L'entry di registro Wow6432Node indica che stai eseguendo una versione di Windows a 64 bit. Il sistema operativo utilizza questa chiave per visualizzare una vista separata di HKEY_LOCAL_MACHINE\SOFTWARE per le applicazioni a 32 bit che girano su versioni di Windows a 64 bit.
Conosciuto comunemente registro AutoRun:
HKLM\Software\Microsoft\Windows\CurrentVersion\Run
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Run
HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunOnce
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKCU\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Run
HKCU\Software\Wow6432Npde\Microsoft\Windows\CurrentVersion\RunOnce
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software\Microsoft\Windows\CurrentVersion\Run
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software\Microsoft\Windows\CurrentVersion\Runonce
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software\Microsoft\Windows\CurrentVersion\RunonceEx
Le chiavi di registro conosciute come Run e RunOnce sono progettate per eseguire automaticamente programmi ogni volta che un utente accede al sistema. La riga di comando assegnata come valore dei dati di una chiave è limitata a 260 caratteri o meno.
Service runs (può controllare l'avvio automatico dei servizi durante l'avvio):
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKCU\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices
HKCU\Software\Microsoft\Windows\CurrentVersion\RunServices
HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKCU\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunServices
HKCU\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunServices
RunOnceEx:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunOnceEx
Su Windows Vista e versioni successive, le chiavi di registro Run e RunOnce non vengono generate automaticamente. Le voci in queste chiavi possono avviare direttamente programmi o specificarli come dipendenze. Ad esempio, per caricare un file DLL all'accesso, si potrebbe utilizzare la chiave di registro RunOnceEx insieme a una chiave "Depend". Questo è dimostrato aggiungendo un'entry di registro per eseguire "C:\temp\evil.dll" durante l'avvio del sistema:
Exploit 1: Se puoi scrivere all'interno di uno dei registri menzionati in HKLM, puoi elevare i privilegi quando un altro utente accede.
Exploit 2: Se puoi sovrascrivere uno dei binari indicati in uno dei registri all'interno di HKLM, puoi modificare quel binario con una backdoor quando un altro utente accede ed elevare i privilegi.
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
I collegamenti posizionati nella cartella Startup attiveranno automaticamente servizi o applicazioni all'accesso dell'utente o al riavvio del sistema. La posizione della cartella Startup è definita nel registro sia per l'ambito Local Machine che per l'ambito Current User. Ciò significa che qualsiasi collegamento aggiunto a queste posizioni Startup specificate garantirà che il servizio o il programma collegato si avvii dopo il processo di accesso o riavvio, rendendolo un metodo semplice per programmare l'esecuzione automatica dei programmi.
Se puoi sovrascrivere qualsiasi [User] Shell Folder sotto HKLM, sarai in grado di puntarlo a una cartella controllata da te e posizionare una backdoor che verrà eseguita ogni volta che un utente accede al sistema, aumentando i privilegi.
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
Tipicamente, la chiave Userinit è impostata su userinit.exe. Tuttavia, se questa chiave viene modificata, l'eseguibile specificato verrà avviato anche da Winlogon al momento del login dell'utente. Allo stesso modo, la chiave Shell è destinata a puntare a explorer.exe, che è la shell predefinita per Windows.
Se puoi sovrascrivere il valore del registro o il binario, sarai in grado di elevare i privilegi.
HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
Controlla la chiave Esegui.
Nel Registro di Windows sotto HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot
, c'è un valore AlternateShell
impostato per impostazione predefinita su cmd.exe
. Questo significa che quando scegli "Modalità Provvisoria con Prompt dei Comandi" durante l'avvio (premendo F8), viene utilizzato cmd.exe
. Tuttavia, è possibile configurare il computer per avviarsi automaticamente in questa modalità senza dover premere F8 e selezionarla manualmente.
Passaggi per creare un'opzione di avvio per avviarsi automaticamente in "Modalità Provvisoria con Prompt dei Comandi":
Cambia gli attributi del file boot.ini
per rimuovere i flag di sola lettura, sistema e nascosto: attrib c:\boot.ini -r -s -h
Apri boot.ini
per la modifica.
Inserisci una riga come: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /SAFEBOOT:MINIMAL(ALTERNATESHELL)
Salva le modifiche a boot.ini
.
Ripristina gli attributi originali del file: attrib c:\boot.ini +r +s +h
Exploit 1: Modificare la chiave di registro AlternateShell consente di configurare un shell di comando personalizzato, potenzialmente per accesso non autorizzato.
Exploit 2 (Permessi di Scrittura nel PATH): Avere permessi di scrittura su qualsiasi parte della variabile di sistema PATH, specialmente prima di C:\Windows\system32
, consente di eseguire un cmd.exe
personalizzato, che potrebbe essere una backdoor se il sistema viene avviato in Modalità Provvisoria.
Exploit 3 (Permessi di Scrittura nel PATH e boot.ini): L'accesso in scrittura a boot.ini
consente l'avvio automatico in Modalità Provvisoria, facilitando l'accesso non autorizzato al successivo riavvio.
Per controllare l'attuale impostazione di AlternateShell, utilizza questi comandi:
Active Setup è una funzionalità di Windows che si avvia prima che l'ambiente desktop sia completamente caricato. Prioritizza l'esecuzione di determinati comandi, che devono completarsi prima che il login dell'utente proceda. Questo processo avviene anche prima che vengano attivati altri elementi di avvio, come quelli nelle sezioni del registro Run o RunOnce.
Active Setup è gestito attraverso le seguenti chiavi di registro:
HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components
HKLM\SOFTWARE\Wow6432Node\Microsoft\Active Setup\Installed Components
HKCU\SOFTWARE\Microsoft\Active Setup\Installed Components
HKCU\SOFTWARE\Wow6432Node\Microsoft\Active Setup\Installed Components
All'interno di queste chiavi, esistono vari sottochiavi, ciascuna corrispondente a un componente specifico. I valori chiave di particolare interesse includono:
IsInstalled:
0
indica che il comando del componente non verrà eseguito.
1
significa che il comando verrà eseguito una volta per ogni utente, che è il comportamento predefinito se il valore IsInstalled
è mancante.
StubPath: Definisce il comando da eseguire tramite Active Setup. Può essere qualsiasi riga di comando valida, come l'avvio di notepad
.
Security Insights:
Modificare o scrivere in una chiave dove IsInstalled
è impostato su "1"
con un StubPath
specifico può portare all'esecuzione non autorizzata di comandi, potenzialmente per l'escalation dei privilegi.
Alterare il file binario referenziato in qualsiasi valore di StubPath
potrebbe anche ottenere l'escalation dei privilegi, date sufficienti autorizzazioni.
Per ispezionare le configurazioni di StubPath
attraverso i componenti di Active Setup, possono essere utilizzati i seguenti comandi:
Browser Helper Objects (BHOs) sono moduli DLL che aggiungono funzionalità extra a Microsoft Internet Explorer. Si caricano in Internet Explorer e Windows Explorer ad ogni avvio. Tuttavia, la loro esecuzione può essere bloccata impostando la chiave NoExplorer a 1, impedendo loro di caricarsi con le istanze di Windows Explorer.
I BHOs sono compatibili con Windows 10 tramite Internet Explorer 11 ma non sono supportati in Microsoft Edge, il browser predefinito nelle versioni più recenti di Windows.
Per esplorare i BHOs registrati su un sistema, puoi ispezionare le seguenti chiavi di registro:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects
HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects
Ogni BHO è rappresentato dal suo CLSID nel registro, che funge da identificatore unico. Informazioni dettagliate su ciascun CLSID possono essere trovate sotto HKLM\SOFTWARE\Classes\CLSID\{<CLSID>}
.
Per interrogare i BHOs nel registro, possono essere utilizzati i seguenti comandi:
HKLM\Software\Microsoft\Internet Explorer\Extensions
HKLM\Software\Wow6432Node\Microsoft\Internet Explorer\Extensions
Nota che il registro conterrà 1 nuovo registro per ogni dll e sarà rappresentato dal CLSID. Puoi trovare le informazioni sul CLSID in HKLM\SOFTWARE\Classes\CLSID\{<CLSID>}
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Font Drivers
HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Font Drivers
HKLM\SOFTWARE\Classes\htmlfile\shell\open\command
HKLM\SOFTWARE\Wow6432Node\Classes\htmlfile\shell\open\command
Nota che tutti i siti dove puoi trovare autorun sono già stati cercati da winpeas.exe. Tuttavia, per un elenco più completo di file auto-eseguiti puoi utilizzare autoruns di sysinternals:
Trova più Autoruns come registri in https://www.microsoftpressstore.com/articles/article.aspx?p=2762082&seqNum=2
Bug bounty tip: iscriviti a Intigriti, una premium bug bounty platform creata da hacker, per hacker! Unisciti a noi su https://go.intigriti.com/hacktricks oggi, e inizia a guadagnare ricompense fino a $100,000!
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)