![]() |
[Vista] Prozess mit Low-Integrity-Rechten starten?
Hi,
um auf die Cookies des Internet Explorers zugreifen zu können, muss man einen Prozess mit Low-Integrity-Rechten starten, sofern ich die MSDN richtig verstanden habe. Allerdings bereitet mir das Portieren des C-Codes, der als Beispiel in der MSDN angegeben wurde, leichte Schwierigkeiten, da die entsprechenden Konstanten für Vista wohl gar nicht zur Verfügung stehen (und laut Google noch niemand ein ähnliches Problem hatte). Besagter Code lässt sich hier finden: ![]() Besonders für TOKEN_MANDATORY_LABEL TIL = {0}; und TokenIntegrityLevel (als Argument bei SetTokenInformation) sind wohl noch nicht portiert. Die Funktionen an sich (SetTokenInformation etc...) sind anscheinend alle verfügbar. Was tun? Woher kriegt man entsprechende Informationen? Danke schonmal |
Re: [Vista] Prozess mit Low-Integrity-Rechten starten?
Ein Blick in die Jedi Security Library (oder wie die heißt) vom Dezipaitor wäre in diesem Zusammenhang sicherlich einen Versuch wert.
|
Re: [Vista] Prozess mit Low-Integrity-Rechten starten?
Hi,
Zitat:
Blöderweise funktioniert FindFirstURLCacheEntry immer noch nicht richtig - es sucht einfach im falschen Pfad (%APPDATA%\Internet Explorer statt %APPDATA%\Microsoft\Windows\Internet Explorer). Muss man das Behandeln der Cookies tatsächlich selbst in die Hand nehmen? Danke schonmal |
Re: [Vista] Prozess mit Low-Integrity-Rechten starten?
Aus Interesse, würdest Du Deine Ergebnisse bitte posten - mich interessiert das mal rein so :)
...:cat:... |
Re: [Vista] Prozess mit Low-Integrity-Rechten starten?
Hi,
Zitat:
Delphi-Quellcode:
Das setzt nun die Privileges runter (low integrity), für den ganzen Prozess. Ich denke, via TThread könnte man das nur für einen Thread machen, aber da ich momentan ohnehin noch im Proof-of-concept-Status bin, hab ich das noch nicht implementiert.
function ConvertStringSidToSid(StringSid: PWideChar; var Sid: PSID): Boolean; stdcall; external 'advapi32.dll' name 'ConvertStringSidToSidW';
procedure VistaLowerPrivileges; var pIntegritySid: PSID; processToken, newToken: cardinal; MandatoryLabel: TOKEN_MANDATORY_LABEL; begin if (OpenProcessToken(GetCurrentProcess, MAXIMUM_ALLOWED, processToken)) then begin if (ConvertStringSidToSid(PWideChar(WideString('S-1-16-4096')), pIntegritySid)) then begin MandatoryLabel.Label_.Sid:=pIntegritySid; MandatoryLabel.Label_.Attributes:=SE_GROUP_INTEGRITY; if (SetTokenInformation(processToken, Windows.TTokenInformationClass(TokenIntegrityLevel), @MandatoryLabel, SizeOf(PTokenMandatoryLabel)+GetLengthSid(pIntegritySid))) then begin ShowMessage('Privileges lowered'); end; end; end; end; Benötigt wird übrigens JwaVista.pas aus diesem JEDI Security / WinAPI-Projekt, was im Thread erwähnt wurde. Siehe ![]() Um zum eigentlichen Problem zu kommen: FindFirstURLCacheEntry funktioniert nicht. Mittels Process Explorer ( ![]() cu |
Re: [Vista] Prozess mit Low-Integrity-Rechten starten?
Zitat:
|
Re: [Vista] Prozess mit Low-Integrity-Rechten starten?
Zitat:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz