Gå til innhold

Batchscript for å slå av uac?


Anbefalte innlegg

Heihei.

 

Jeg driver og jobber med et script for å slå av UAC i Windows 7. Til nå har jeg ett hovedscript og script under der for å slå av eller på UAC.

 

Dette er da hovedscriptet der du velger om du vil slå av eller på UAC. Brukeren er jeg ganske sikker på er riktig, vil bare ikke skrive domenet og brukeren her.

@echo off

:start
echo Do you want to enable or disable UAC? (enable/disable)
set /p enabledisable=

if %enabledisable% equ enable runas.exe /noprofile /env /user:DOMENE\bruker enableuac.cmd
if %enabledisable% equ disable runas.exe /noprofile /env /user:DOMENE\bruker disableuac.cmd
cls
echo You have entered an invalid answer, please try again
echo -
goto :start

:exit
exit

 

@echo off

:DISABLE
C:\Windows\System32\cmd.exe 
/k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f
pause
echo A reboot will be required to enable the new settings
echo Do you want to reboot now? (y/n)
set /p reboot=
if %reboot% equ y shutdown -f -r -t 10 -c "Your pc will now reboot to enable the new settings"
if %reboot% equ n goto :exit

:EXIT
exit

 

@echo off

:ENABLE
C:\Windows\System32\cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 1 /f
echo Do you want to reboot now? (y/n)
set /p reboot=
if %reboot% equ y shutdown -f -r -t 10 -c "Your pc will now reboot to enable the new settings"
if %reboot% equ n goto :exit

:EXIT
exit

 

Av errorer får jeg enten "IKKE TILGANG" eller feil bruker. Åpen for alle løsninger eller endringer. Men hovedpoenget er at man skal kunne velge om man vil slå av eller på UAC. Dette er ikke noe must, men det hjelper på.

 

Noen som har noen tips?

 

 

 

EDIT:

Saken er nå løst. Her er den ferdige koden.

@echo off

:start
echo Do you want to enable or disable UAC? (enable/disable)
set /p enabledisable=
if %enabledisable% equ enable goto :enable
if %enabledisable% equ disable goto :disable

cls
echo You have entered an invalid answer, please try again
echo -
goto :start


:enable
runas /user:%userdomain%\%username% "reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 1 /f"
goto :restart

:disable
runas /user:%userdomain%\%username% "reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f"
goto :restart

:restart
cls
echo To enable your new settings, a restart will be required. Do you want to restart now? (y/n)
set /p restart=
if %restart% equ y goto :restartnow
if %restart% equ n goto :exit

:restartnow
shutdown -f -r -t 10 -c "Your pc will now restart to enable the new UAC settings"

:exit
exit

Endret av joms
Lenke til kommentar
  • 1 måned senere...
Videoannonse
Annonse

takk for scripten btw,

hoper du ikke har noe imot at jeg bruker den selv ^^

Bare hyggelig, bruk det så mye du vil :)

 

 

Kvifor vil du skru av UAC? Sikkerheitsmessig så er den gull verdt. Med den på så får eg enkelt luke ut kva slags programmer som spør om root-tilgang utan å trenge det.

Dette var i en bedrift med et installasjonsscript, så for å unngå at brukeren finner på å trykek på "ikke tillat" fordi han ikke vet hva det er så valgte vi å slå av UAC på alle pc'er :)

Endret av joms
Lenke til kommentar

Skaden er at han ikke tillater at vi installerer programvare via oppstartscript. Brukeren har ikke lov til å installere annen programvare enn den vi installerer. De rettighetene er satt via Active Directory.

Lenke til kommentar

Da ble jeg forvirret. Hvorfor skal brukeren installere programmer i utgangspunktet? :)

Brukeren skal egentlig ikke installere programvare, men vi som it-ansvarlige skal installere for de. Og da for å unngå at brukeren avbryter noe elns kjører vi silent-installasjoner, men enda så kom UAC advarselen opp. Så for å unngå at brukeren kunne gjøre noe som helst slår vi da av UAC :)

Lenke til kommentar
  • 9 måneder senere...

Kvifor vil du skru av UAC? Sikkerheitsmessig så er den gull verdt. Med den på så får eg enkelt luke ut kva slags programmer som spør om root-tilgang utan å trenge det.

Hvis du er Administrator, er den nesten ikke vært en dritt.

rundll32+administrator=UAC bypass.

og microsoft "VET om dette", men vil IKKE fixe det, de sier det er "designet sån";virus som er designed for det, har ingen problemer med UAC hvis brukeren som er logget på er administrator;rundll32 kjører med samme rettigheter som BRUKEREN, ikke PROGRAMMET SOM STARTET DEN.

 

Også, på 32-bit windows, 16-bit programmer/virus kjører uten UAC.

Endret av Hans_Henrik
Lenke til kommentar

Du SKAL IKKE være administrator! Selve hensikten med UAC er å hindre folk i å logge på som administrator! IKKE LOGG PÅ SOM ADMINISTRATOR NOENSINNE!

Du skal aldri logge på med administratorkontoen fordi UAC er fullstendig uten hensikt hvis du gjør det. UAC har til hensikt at power users skal allikevel kunne gi visse programmer administratortilgang uten å måtte logge på som administrator. Logger du på som administrator, vil også ALLE programmer du starter kjøre med administratorrettigheter, dette er hele hensikten med administratorkontoen!

UAC skal gjøre slik at alle programmer til enhver tid kjører med så få rettigheter som mulig.

 

Forøvrig starter alle programmer med rettighetene til programmet som startet det. Rundll32.exe starter med samme rettigheter som cmd.exe, som starter med samme rettigheter som explorer.exe, som starter med samme rettigheter som winlogon.exe, som har samme rettigheter som brukeren, dette med mindre UAC eller Runas modulen endrer rettighetene til programmet.

Lenke til kommentar

ahh...

dette med mindre UAC eller Runas modulen endrer rettighetene til programmet

overalt (untatt jobbben og skolen), kjører alle beskjente med Administrator konto, og mange av dem med UAC.

de mener dette gjør pcen sikrere mot virus etc...

når de starter ett program, starter det enten Uten administrator rettigheter, eller med og spørre UAC om rettigheter (og UAC, default, spør brukeren om det programmet skal gjis de rettighetene.);

Problemet er at programmet ikke trenger og spørre, hvis de bruker rundll32. (og brukeren er admin)

Forøvrig starter alle programmer med rettighetene til programmet som startet det.

rundll32 kjører med samme rettigheter som brukeren, ikke programmet som startet den...

har i hvertfall leste dette, men jeg husker ikke kilden.. kunne google det.

 

kjører du med admin+uac? muligens ikke, men prøv og spørre folk som ikke er spesielt data-intresert :p de aller fleste (som jeg kjenner iallefall) gjør det sån.

 

 

 

Logger du på som administrator, vil også ALLE programmer du starter kjøre med administratorrettigheter

feil. (i windows 7 standard innstillinger iallefall. vet ikke med vista/XP)

 

(faktisk, hele denne posten er ment relevant for windows 7 med standard innstillinger)

Endret av Hans_Henrik
Lenke til kommentar

Rundll32.exe er et helt vanlig program som bruker LoadLibrary og GetProcAddress for å utføre spesielle funksjoner i DLL filer (disse har en spesiell prototype, du kan ikke kalle hvilken som helst DLL funksjon med Rundll32). Det kan hende det er noen triks med rundll32 som kan brukes, men neppe rundll32 alene.

 

The programs [rundll og rundll32] only allow you to call functions from a DLL that are explicitly written to be called by them.

En rundll32 funksjon skal se slik ut:

void CALLBACK
 EntryPoint(HWND hwnd, HINSTANCE hinst, LPSTR lpszCmdLine, int nCmdShow);

Det er ikke nevnt noen steder at rundll32 eleverer sine egne rettigheter.

Lenke til kommentar

Rundll32.exe er et helt vanlig program som bruker LoadLibrary og GetProcAddress for å utføre spesielle funksjoner i DLL filer (disse har en spesiell prototype, du kan ikke kalle hvilken som helst DLL funksjon med Rundll32). Det kan hende det er noen triks med rundll32 som kan brukes, men neppe rundll32 alene.

 

The programs [rundll og rundll32] only allow you to call functions from a DLL that are explicitly written to be called by them.

En rundll32 funksjon skal se slik ut:

void CALLBACK
 EntryPoint(HWND hwnd, HINSTANCE hinst, LPSTR lpszCmdLine, int nCmdShow);

Det er ikke nevnt noen steder at rundll32 eleverer sine egne rettigheter.

 

edit: dobbelpost var ikke min feil :S

Endret av GeirGrusom
Lenke til kommentar

Rundll32.exe er et helt vanlig program som bruker LoadLibrary og GetProcAddress for å utføre spesielle funksjoner i DLL filer (disse har en spesiell prototype, du kan ikke kalle hvilken som helst DLL funksjon med Rundll32). Det kan hende det er noen triks med rundll32 som kan brukes, men neppe rundll32 alene.

 

The programs [rundll og rundll32] only allow you to call functions from a DLL that are explicitly written to be called by them.

En rundll32 funksjon skal se slik ut:

void CALLBACK
 EntryPoint(HWND hwnd, HINSTANCE hinst, LPSTR lpszCmdLine, int nCmdShow);

Det er ikke nevnt noen steder at rundll32 eleverer sine egne rettigheter.

 

hmm,

http://msdn.microsoft.com/en-us/library/bb756922.aspx

Do Not Register Components with Rundll32

 

Some applications use the Windows Rundll32 executables to run components. However, this method is not compliant with Windows Vista development requirements. Calling directly into Rundll32 results in UAC compatibility issues. When an application relies on the Rundll32 executables to perform its execution, Rundll32 calls AIS on behalf of the application to initiate the UAC elevation prompt. As a result, the UAC elevation prompt has no knowledge of the original application and displays the application requesting elevation as "Windows host process(Rundll32)." Without a clear description and icon for the application requesting elevation, users have no way to identify the application and determine whether it is safe to elevate it.

dette er i strid med hva jeg har lest på noen hacker-sider... kanskje 1 år siden..

 

her er en quote med en Helt annen forklaring: http://www.pretentiousname.com/misc/win7_uac_whitelist2.html , kan se ut som om microsoft har fixet det med rundll32 nå da...

Win 7 UAC Code-Injection: How it works

In the quest to reduce the number of UAC prompts, for their code only, Microsoft have granted (at least) three groups of components special privileges:

 

Processes which anything else can run elevated without a UAC prompt.

This is the list of about 70 processes published on Rafael's Within Windows blog. (Update: New list for RC1 build 7100.) If you run a process on this list and it requires elevation then it -- the whole process -- will be given elevation without showing you a UAC prompt.

 

Discovery of this list is what lead to the earlier RunDll32.exe exploit where you could ask RunDll32.exe to run your code from within a DLL and it would do so with full elevation and no UAC promt.

 

også, dette er bare en, av mange veier runt UAC som virus og annen skadevare kan benytte seg av. :p

 

sier igjen, kan se ut som om denne "exploit"en ikke lenger er relevant for en oppdatert Win7; men jeg leste noe all av "microsoft har vist om dette hullet i flere månter, og nekter og fixe det, forde de sier 'det er sån av design'";

(på en engelsk side)

Endret av Hans_Henrik
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...