Domanda Bypass UAC su ambiente Windows

NSteel

Utente Silver
21 Luglio 2014
116
27
10
91
Ciao ragazzi,
stavo guardando dei video su dei malware (ambiente windows) che vanno a modificare l'interfaccia del sistema e mi è sorta la seguente domanda:
se io ho impostato che UAC mi deve notificare in caso di modifica da parte dell'applicazione come fa l'applicazione (.exe) a bypassere questo meccanismo di sicurezza?
Da quello che ho capito il programma si "auto-eleva".. in pratica si personifica in un altro processo??

Grazie a chiunque mi voglia aiutare!
 
Credo che le risposte non siano arrivate per come è stata posta la domanda, trovare un UAC bypass nuovo è un impresa che non capita tutti i giorni e serve capirne di exploit development. Quello che fanno tutti è usare bypass trovati da altri e ormai noti a tutti, in più non di rado Microsoft decide volutamente di non rilasciare una patch per questa classe di vulnerabilità. Se vuoi fare come gli altri leggi come fa meterpreter, esistono veramente tante tecniche note, esistono scanner automatici che cercano disinstallazioni sporche, servizi vulnerabili eccetera ma questi ultimi dipendono dallo stato dell'OS e software di terze parti in questione ovvero non funzionano su un Windows home fresco appena installato e aggiornato con tutto di default. Tuttavia patch o no Windows Defender con cloud andrà su tutte le furie, come farebbero tutti gli altri AV moderni che tengono il passo con bypass noti come questi.
 
  • Mi piace
Reazioni: 0xbro
Credo che le risposte non siano arrivate per come è stata posta la domanda, trovare un UAC bypass nuovo è un impresa che non capita tutti i giorni e serve capirne di exploit development. Quello che fanno tutti è usare bypass trovati da altri e ormai noti a tutti, in più non di rado Microsoft decide volutamente di non rilasciare una patch per questa classe di vulnerabilità. Se vuoi fare come gli altri leggi come fa meterpreter, esistono veramente tante tecniche note, esistono scanner automatici che cercano disinstallazioni sporche, servizi vulnerabili eccetera ma questi ultimi dipendono dallo stato dell'OS e software di terze parti in questione ovvero non funzionano su un Windows home fresco appena installato e aggiornato con tutto di default. Tuttavia patch o no Windows Defender con cloud andrà su tutte le furie, come farebbero tutti gli altri AV moderni che tengono il passo con bypass noti come questi.
Intanto grazie della risposta.
Diciamo che la mia domanda era più astratta: volevo un attimo capire come funzionava il bypass del UAC.
Se dovessi riassumerlo in poche parole non è altro che un processo di Priviledge Escalation? Dove vado a runnare il mio programma utilizzando privilegi di amministratore e quindi non mi va a notificare il pop-up dell'UAC?
 
Intanto grazie della risposta.
Diciamo che la mia domanda era più astratta: volevo un attimo capire come funzionava il bypass del UAC.
Se dovessi riassumerlo in poche parole non è altro che un processo di Priviledge Escalation? Dove vado a runnare il mio programma utilizzando privilegi di amministratore e quindi non mi va a notificare il pop-up dell'UAC?
Come fai a runnare il programma utilizzando i privilegi di amministratore se non li hai? Serve a questo l'UAC, non è un controllo tanto stupido come si pensa, per bypassarlo ti serve che il sistema o un programma già installato che viene eseguito con privilegi di amministratore sia vulnerabile e faccia diventare amministratore anche te che non lo sei. Poi ci sono altre vulnerabilità logiche come "Unquoted service path" di cui può soffrire un servizio di terze parti che ti permettono di far eseguire un tuo eseguibile al posto del suo come servizio di sistema.
 
Ok grazie mille, ora ho capito un pò meglio la questione.
Ora la domanda che mi pongo è la seguente: ho provato il seguente codice python
Non capisco come mai anche se commento la funzione exec_bypass_uac il programma sembra andare allo stesso modo..
 
Ok grazie mille, ora ho capito un pò meglio la questione.
Ora la domanda che mi pongo è la seguente: ho provato il seguente codice python
Non capisco come mai anche se commento la funzione exec_bypass_uac il programma sembra andare allo stesso modo..

Quella vulnerabilità di changepk riguarda il registro di sistema, se hai eseguito lo script python in precedenza, non importa se poi commenti quella chiamata, ormai changepk seguirà ciò che c'è nel registro e questo è il motivo per cui ha scritto alla fine del codice:
# Don't Fogot: reg delete "HKCU\Software\Classes\Launcher.SystemSettings\Shell\Open\Command" /f

Eseguendolo nel cmd pulirai ciò che esegue il cmd amministratore
 
Ultima modifica:
Ora ho testato meglio e ho capito bene come funziona! Grazie infinitamente!
Il problema è che runnando quella riga di codice ottengo il seguente risultato
1678201829516.png

Da quello che ho capito devo cancellare il "DelegateExecute" al fine di ripristinare il normale comportamento del commando!
Ho provato anche con uno script python ma mi da lo stesso risultato del bash code
1678201928366.png

Messaggio unito automaticamente:

EDIT: Ho risolto, avevo sbagliato il percorso! Grazie mille
Messaggio unito automaticamente:

Ho notato però che con "regedit.exe" e se imposto su "Notifica sempre", questa tecnica non funziona. E' corretto?
 
Ho notato però che con "regedit.exe" e se imposto su "Notifica sempre", questa tecnica non funziona. E' corretto?

Se ti riferisci alle impostazioni di User Account Control e quindi al valore REG_DWORD di ConsentPromptBehaviorAdmin o di eventuali policy di gruppo allora si, in tal caso changepk sarebbe comunque vulnerabile ma non potrebbe auto-elevarsi silenziosamente (proprietà che solo alcuni eseguibili Microsoft hanno), apparirebbe invece il classico prompt con conferma e riferimento a changepk appena eseguito con os.system
 
Ultima modifica:
Ma questo procedimento non è possibile eseguire regedit.exe invece di msconfig per esempio? Ovviamente non con uac impostata su "always notify me"
Messaggio unito automaticamente:

Se ti riferisci alle impostazioni di User Account Control e quindi al valore REG_DWORD di ConsentPromptBehaviorAdmin o di eventuali policy di gruppo allora si, in tal caso changepk sarebbe comunque vulnerabile ma non potrebbe auto-elevarsi silenziosamente (proprietà che solo alcuni eseguibili Microsoft hanno), apparirebbe invece il classico prompt con conferma e riferimento a changepk appena eseguito con os.system
Dato che sto provando ad implementare il bypass volevo chiedere se i seguenti passaggi sono giusti:
  1. Devo spawnare una shell con privilegi da administrator (Integrity High).
  2. A questo punto la mia shell non ha bisogno di nessuna iterazione con l'utente dato che la shell è administrator e posso, teoricamente, lanciare qualsiasi commando tipo "start regedit" e non mi apparte nessun avviso dell'UAC.
Per fare tutto ciò ho bisogno del punto 1, qualche suggerimento? Ho capito che bisogna "auto-elevare" la shell sfruttando il "Registry Hijacking" ma, purtroppo, non mi funziona! Ho seguito anche lo script python che mi hai fornito te ma non funziona. Mi spawna una shell con priorità "media" come se fosse un utente normale
Messaggio unito automaticamente:

PS: Ho provato anche altri registry come "Software\Classes\ms-settings\Shell\Open\command" e "Software\Classes\ms-settings\Shell\Open\command" ma spawna sempre una shell con priority media e, quindi, che non si auto-eleva
Messaggio unito automaticamente:

EDIT: Fixed! Ora funziona