[XP]runas /users:Admin /savecred risico?

Pagina: 1
Acties:
  • 130 views sinds 30-01-2008
  • Reageer

Acties:
  • 0 Henk 'm!

  • Sjeng
  • Registratie: Juli 2001
  • Laatst online: 23-04 14:53
Ik werk standaard als User met de naam "Sjeng" op mijn eigen systeem. Helaas komt het toch nog steeds voor dat als ik bepaalde programma's moet runnen/installeren dat ik als Administrator aangemeld moet zijn. Zelfs dat werkt niet altijd voor 100% en dan is het laatste redmiddel om mijn gebruikersaccount tijdelijk toch toe te voegen aan de groep Administrators. Daarvoor gebruik ik onderstaande batch-file. Nu is mijn vraag in hoeverre het gebruik van runas met /savecred een veiligheidsrisico oplevert? Als ik dit gebruik voor een user betekent dit dan dat deze gebruiker eigenlijk toch een soort van admin is geworden?

ChangeGroup.bat
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
@echo off
set UserAccount=Sjeng
set AdministratorAccount=Administrator
;
set UserGroup=Users
set AdministratorGroup=Administrators
;
net localgroup %UserGroup% | find "%UserAccount%" >nul
if not errorlevel 1 (
    set in=%AdministratorGroup%
    set out=%UserGroup%
    goto continue
    )
;
net localgroup %AdministratorGroup% | find "%UserAccount%" >    nul
if not errorlevel 1 (
    set in=%UserGroup%
    set out=%AdministratorGroup%
    goto continue
    )
;
echo The specified user is no member of the group %UserGroup% or %AdministratorGroup%.
echo Script stopped.
pause
exit
;
:continue
echo User: %UserAccount% is a member of group %out%. 
set /p input=Move to group %in% (Y/N)?
if /i not "%input%"=="Y" exit
;
runas /user:"%AdministratorAccount%" /savecred "cmd /c net localgroup \"%in%\" ...
    \"%UserAccount%\" /add && net localgroup \"%out%\" \"%UserAccount%\" /delete"
ping -n 2 127.0.0.1 >nul
;
logoff


Graag jullie commentaar op het gebruik van "runas /user:Administrator /savecred .." en eventuele risico's en natuurlijk ook op het script.
offtopic:
Regel 32 van het script is afgebroken om leesbaar te blijven. De ping is slechts toegevoegd om zeker te weten dat het account omgezet is voor de logoff.

Acties:
  • 0 Henk 'm!

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Dit lijkt me meer iets voor Beveiliging & Virussen - ik verplaats je topic eventjes :)

Windows Operating Systems >> Beveiliging & Virussen

Acties:
  • 0 Henk 'm!

Anoniem: 113297

vooreerst, als je een gebruiker toevoegt aan een de administratorgroep, dan heeft hij natuurlijk alle rechten van deze groep.

de /savcecred vormt zeer zeker een veligheidsrisico. als de opdracht runas eenmaal met deze parameter wordt uitgevoerd, dan worden deze gegevens bewaard op de schijf en kan de gebruiker (met beperkte rechten) vanaf dan opnieuw van de runas opdracht gebruik maken om eender welk programma als administrator uit te voeren.

mijns inziens zal het niet al te lang meer duren voor er een of andere exploit verschijnt die de runas opdracht op die manier zal uitbuiten om administrator rechten te verwerven.

om te voorkomen dat je bepaalde programma's in administratormode moet laten lopen, kan je enkele hulpmiddeltjes gebruiken zoals de registry- en filemonitor van sysinternals om te ontdekken van welke bestanden en registratiesleutels de rechten gewijzigd dienen te worden.

Acties:
  • 0 Henk 'm!

Anoniem: 57365

als je runas admin /savecred kan gebruiken als gewone user lijkt het me wel een security risico. Dus als jou batch zo werkt onder een gewone useraccount kan je simpelweg alles op het systeem als gebruiker...

oh persoonlijk zou ik liever "goto :eof" ipv "exit" gebruiken.

Acties:
  • 0 Henk 'm!

Anoniem: 57365

Anoniem: 113297 schreef op 26 juli 2004 @ 13:21:
mijns inziens zal het niet al te lang meer duren voor er een of andere exploit verschijnt die de runas opdracht op die manier zal uitbuiten om administrator rechten te verwerven.
dat zal wel meevallen. je moet namelijk eerst op het systeem ingelogd zijn voordat je runas kan gebruiken... lijkt me een beetje onzin als je je al in het systeem gehackt hebt :)

Acties:
  • 0 Henk 'm!

  • Sjeng
  • Registratie: Juli 2001
  • Laatst online: 23-04 14:53
Anoniem: 113297 schreef op 26 juli 2004 @ 13:21:
de /savcecred vormt zeer zeker een veligheidsrisico. als de opdracht runas eenmaal met deze parameter wordt uitgevoerd, dan worden deze gegevens bewaard op de schijf en kan de gebruiker (met beperkte rechten) vanaf dan opnieuw van de runas opdracht gebruik maken om eender welk programma als administrator uit te voeren.

om te voorkomen dat je bepaalde programma's in administratormode moet laten lopen, kan je enkele hulpmiddeltjes gebruiken zoals de registry- en filemonitor van sysinternals om te ontdekken van welke bestanden en registratiesleutels de rechten gewijzigd dienen te worden.
Maar zijn die credentials nu programma specifiek, maw alleen voor runas in dit geval of heeft de user nu gewoon de rechten van de Administrator (ik heb er te veel mee gespeeld en de user "Sjeng" is inmiddels een verkapte Administrator.

Hoe wis ik deze credentials weer?
edit:
Gevonden, bij User Accounts in Control Panel, Manage my network passwords. User is nu weer gewoon user :)


Sysinternal tools ben ik mee bekent. Ik ben er echter moe aan iedere keer weer voor bepaalde files rechten te zetten etc. Meeste problemen doen zich overigens voor in de registry.
Anoniem: 57365 schreef op 26 juli 2004 @ 13:23:
oh persoonlijk zou ik liever "goto :eof" ipv "exit" gebruiken.
Je hebt volledig gelijk, ook de variabelen "in", "out" etc zijn natuurlijk niet geniaal gekozen.

Wat betreft het script algemeen: Het verwijderen van /savecred lost natuurlijk een hoop op, vraagt alleen wat meer input (pwd == 20 karakters, jaja paranoide 8)7)

[ Voor 6% gewijzigd door Sjeng op 26-07-2004 13:42 ]


Acties:
  • 0 Henk 'm!

Anoniem: 113297

Anoniem: 57365 schreef op 26 juli 2004 @ 13:25:
[...]


dat zal wel meevallen. je moet namelijk eerst op het systeem ingelogd zijn voordat je runas kan gebruiken... lijkt me een beetje onzin als je je al in het systeem gehackt hebt :)
alles wat er nodig is, is een stukje gedownloade en (eventueel zelfuitvoerende) malware dat effe checkt of er al runas administratorcredentials opgeslagen zijn in het gebruikersprofiel en dan kan het zijn gang gaan als administrator lijkt me...

Acties:
  • 0 Henk 'm!

Anoniem: 113297

Sjeng schreef op 26 juli 2004 @ 13:33:

Maar zijn die credentials nu programma specifiek, maw alleen voor runas in dit geval of heeft de user nu gewoon de rechten van de Administrator (ik heb er te veel mee gespeeld en de user "Sjeng" is inmiddels een verkapte Administrator.
de credentials zijn enkel geldig voor het zodanig uitgevoerde programma indien de /savecred parameter niet gebruikt wordt. wordt deze parameter wel gebruikt, dan is het ook nog programmaspecifiek, maar vanaf dan kan eender wel programma met de in de runas opdracht vermelde credentials (of het nu administrator creds zijn of andere) uitgevoerd worden.

je kan deze credentials nog op een andere manier wissen. ze worden namelijk opgeslagen in het gebruikersprofiel onder application data\microsoft\credentials\SID-van-de-runas-gebruiker.

Acties:
  • 0 Henk 'm!

Anoniem: 57365

Anoniem: 113297 schreef op 26 juli 2004 @ 13:43:
[...]


alles wat er nodig is, is een stukje gedownloade en (eventueel zelfuitvoerende) malware dat effe checkt of er al runas administratorcredentials opgeslagen zijn in het gebruikersprofiel en dan kan het zijn gang gaan als administrator lijkt me...
ummm ok, maar dan voer je het zelf nog steeds uit. het is toch iets anders dan een exploit...

Acties:
  • 0 Henk 'm!

Anoniem: 113297

Anoniem: 57365 schreef op 26 juli 2004 @ 14:36:
[...]


ummm ok, maar dan voer je het zelf nog steeds uit. het is toch iets anders dan een exploit...
inderdaad, exploit was niet het juiste woord. maar goed, de parameter kan enkel in xp pro gebruikt worden en de meeste mensen werken sowieso al constant als admin.

Acties:
  • 0 Henk 'm!

  • Sjeng
  • Registratie: Juli 2001
  • Laatst online: 23-04 14:53
Ik heb het hele script voorlopig omgehacked naar VBScript, zit er aan te denken om er misschien zelfs een executable van te bakken welke een gecodeerd admin wachtwoord opslaat en wat settings in een INI file of de registry bewaard.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
' SwitchGroup.vbs

' Default administrator account to use when running as user
adminAccount="Administrator"
' Default group normal users remain in 
userGroup="Users"
' Group to temporarely promote users to
adminGroup="Administrators"

' Get username of the user executing the script.
Set WshShell = Wscript.CreateObject("Wscript.Shell")
userAccount = WshShell.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Logon User Name")

' See if the user is a member of the administrator group
Set netObj = CreateObject("WScript.Network")
Set userObj = GetObject("WinNT://" & netObj.UserDomain & "/" & netObj.UserName & ",user")
For Each grp In userObj.Groups
  If grp.Name = adminGroup Then
    flgIsAdmin = True
    Exit For
  End If
Next

' Decide on action based on group
If flgIsAdmin = True Then
  Set WshShell = CreateObject("WScript.Shell")
  out=WshShell.Run("cmd /c net localgroup " & userGroup & " " & userAccount & " /add && net localgroup " & adminGroup & " " 

& userAccount & " /delete", 2, True)
  If MsgBox(userAccount & " has just been moved from the " & adminGroup & " group to the " & userGroup & " group." & VBCRLF 

& "To apply these changes you need to logoff." & VBCRLF & VBCRLF & "Do you want to logoff now?", 4, "Logoff?") = 6 Then
    out=WshShell.Run("logoff", 0, FALSE)
  End If
Else
  adminPass=InputBox("You are currently logged on as " & UserAccount & ". Currently this user has unsufficient rights to run 

this script." & VBCRLF & VBCRLF & "Please enter the password for " & AdminAccount & " to move " & UserAccount & " to the " & 

Admingroup & " group.", "Enter password for " & AdminAccount)
  Set WshShell = CreateObject("WScript.Shell")
  out=WshShell.Run("runas /user:" & adminAccount & " " & CHR(34) & "cmd /c net localgroup " & adminGroup & " " & userAccount 

& " /add && net localgroup " & userGroup & " " & userAccount & " /delete" & CHR(34), 2, False)
  Wscript.Sleep 50 'need to give time for window to open.
  WshShell.AppActivate(WinPath)
  WshShell.SendKeys adminPass & VBCRLF 'send the password to the waiting window.
  If MsgBox(userAccount & " has just been moved from the " & userGroup & " to the " & adminGroup & " group." & VBCRLF & "To 

apply these changes you need to logoff and back on." & VBCRLF & VBCRLF & "Do you want to logoff now?", 4, "Logoff?") = 6 

Then
    out=WshShell.Run("logoff", 0, FALSE)
  End If
End if

Meer volgt. De runas van windows is dus mbv scripting/coding makkelijk te automatiseren. Zie de ook de code. Het savecred probleem kan daarmee dus omzeild worden.

Acties:
  • 0 Henk 'm!

Anoniem: 113297

Sjeng schreef op 27 juli 2004 @ 01:28:
Ik heb het hele script voorlopig omgehacked naar VBScript, zit er aan te denken om er misschien zelfs een executable van te bakken welke een gecodeerd admin wachtwoord opslaat en wat settings in een INI file of de registry bewaard.

Meer volgt. De runas van windows is dus mbv scripting/coding makkelijk te automatiseren. Zie de ook de code. Het savecred probleem kan daarmee dus omzeild worden.
je kan je script ook coderen met de script encoder

Acties:
  • 0 Henk 'm!

Anoniem: 57365

ik heb ff zitten testen met de /savecred maar dat is totaal geen security issue...
het houdt namelijk alleen in dat je niet authenticeert bij een domaincontroller, maar met je saved credentials. Dat houdt echter niet in dat je geen paswoord moet tikken!!! oftewel /savecred werkt niet zoals de TS denkt dat het werkt en "exploits" zullen er dus ook niet komen :)

[ Voor 3% gewijzigd door Anoniem: 57365 op 27-07-2004 12:22 ]


Acties:
  • 0 Henk 'm!

  • Sjeng
  • Registratie: Juli 2001
  • Laatst online: 23-04 14:53
Anoniem: 57365 schreef op 27 juli 2004 @ 12:19:
ik heb ff zitten testen met de /savecred maar dat is totaal geen security issue...
het houdt namelijk alleen in dat je niet authenticeert bij een domaincontroller, maar met je saved credentials. Dat houdt echter niet in dat je geen paswoord moet tikken!!! oftewel /savecred werkt niet zoals de TS denkt dat het werkt en "exploits" zullen er dus ook niet komen :)
Bij de eerste run moet ik inderdaad gewoon een pasword intypen, gedurende de tweede run niet meer. Heb je de actie ook 2 keer uitgevoerd?
Anoniem: 57365 schreef op 27 juli 2004 @ 18:39:
meerdere keren. je moet telkens een pw opgeven...
Geen idee waarom je telkens opnieuw je pw moet opgeven. Een overrulende policy? In iedergeval hoef ik dat alleen maar de eerste keer te doen... vaag

[ Voor 21% gewijzigd door Sjeng op 28-07-2004 00:27 ]


Acties:
  • 0 Henk 'm!

Anoniem: 57365

meerdere keren. je moet telkens een pw opgeven...

Acties:
  • 0 Henk 'm!

Anoniem: 113297

Anoniem: 57365 schreef op 27 juli 2004 @ 18:39:
meerdere keren. je moet telkens een pw opgeven...
normaal gesproken hoef je dat niet opnieuw te doen, maar in ieder geval ben je dan gerust wat jouw pc betreft. of het paswoord opgeslagen kan worden, hangt natuurlijk ook af van een reeks andere randvoorwaarden. zo kan bv. met een groepsbeleid deze functionaliteit uitgeschakeld zijn (via DisableDomainCreds in de registry), of kunnen andere noodzakelijke services niet draaien. misschien heeft het al dan niet aangesloten zijn op een domain ook wel invloed op de "stored usernames and passwords", maar dat is iets waarover ik geen uitsluitsel kan geven.

Acties:
  • 0 Henk 'm!

  • Fire69
  • Registratie: Juni 2001
  • Laatst online: 01:16
Helaas komt het toch nog steeds voor dat als ik bepaalde programma's moet runnen/installeren dat ik als Administrator aangemeld moet zijn. Zelfs dat werkt niet altijd voor 100%
Persoonlijk zou ik eerder hier even het fijne van uitzoeken, want als je als Administrator niet alle rechten op je pc hebt, zit er toch ergens iets scheef. :?

Acties:
  • 0 Henk 'm!

Anoniem: 113297

Fire69 schreef op 28 juli 2004 @ 10:37:
[...]


Persoonlijk zou ik eerder hier even het fijne van uitzoeken, want als je als Administrator niet alle rechten op je pc hebt, zit er toch ergens iets scheef. :?
ik vermoed dat Sjeng bedoelde dat wanneer hij runas met administrator credentials gebruikt, dat er dan een probleem is dat het programma onder een ander gebruikersprofiel loopt en zich bijgevolg niet helemaal hetzelfde gedraagt dan wanneer het met de eigenlijke aangelogde account uitgevoerd wordt.

overigens kan je je script aanpassen om programma's met administratorrechten uit te voeren zonder uit te loggen (google hiervoor even op Aaron Margosis' WebLog)
er bestaan ook alternatieven op de runas, kan je ook even op googlen.
Pagina: 1