AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi [Vista] Prozess mit Low-Integrity-Rechten starten?
Thema durchsuchen
Ansicht
Themen-Optionen

[Vista] Prozess mit Low-Integrity-Rechten starten?

Ein Thema von sECuRE · begonnen am 29. Nov 2007 · letzter Beitrag vom 30. Nov 2007
Antwort Antwort
Benutzerbild von sECuRE
sECuRE

Registriert seit: 10. Apr 2003
Ort: Heidelberg
360 Beiträge
 
Delphi 7 Professional
 
#1

[Vista] Prozess mit Low-Integrity-Rechten starten?

  Alt 29. Nov 2007, 12:46
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:
http://msdn.microsoft.com/library/de...tectedmode.asp (recht weit unten, der Sample-Code)

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
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#2

Re: [Vista] Prozess mit Low-Integrity-Rechten starten?

  Alt 29. Nov 2007, 13:17
Ein Blick in die Jedi Security Library (oder wie die heißt) vom Dezipaitor wäre in diesem Zusammenhang sicherlich einen Versuch wert.
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
Benutzerbild von sECuRE
sECuRE

Registriert seit: 10. Apr 2003
Ort: Heidelberg
360 Beiträge
 
Delphi 7 Professional
 
#3

Re: [Vista] Prozess mit Low-Integrity-Rechten starten?

  Alt 29. Nov 2007, 18:19
Hi,

Zitat von OregonGhost:
Ein Blick in die Jedi Security Library (oder wie die heißt) vom Dezipaitor wäre in diesem Zusammenhang sicherlich einen Versuch wert.
Danke, das hat mich weiter gebracht. Der Code an sich funktioniert nun.


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
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#4

Re: [Vista] Prozess mit Low-Integrity-Rechten starten?

  Alt 29. Nov 2007, 22:04
Aus Interesse, würdest Du Deine Ergebnisse bitte posten - mich interessiert das mal rein so

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von sECuRE
sECuRE

Registriert seit: 10. Apr 2003
Ort: Heidelberg
360 Beiträge
 
Delphi 7 Professional
 
#5

Re: [Vista] Prozess mit Low-Integrity-Rechten starten?

  Alt 30. Nov 2007, 12:04
Hi,

Zitat von sakura:
Aus Interesse, würdest Du Deine Ergebnisse bitte posten - mich interessiert das mal rein so
Na klar:
Delphi-Quellcode:
function ConvertStringSidToSid(StringSid: PWideChar; var Sid: PSID): Boolean; stdcall; external 'advapi32.dllname '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;
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.

Benötigt wird übrigens JwaVista.pas aus diesem JEDI Security / WinAPI-Projekt, was im Thread erwähnt wurde. Siehe http://www.delphipraxis.net/internal...t.php?p=803238

Um zum eigentlichen Problem zu kommen:
FindFirstURLCacheEntry funktioniert nicht. Mittels Process Explorer (www.sysinternals.com) sieht man, dass die API-Funktion nicht auf die "Low-Pfade" zurückgreift, die der IE nutzt.

cu
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: [Vista] Prozess mit Low-Integrity-Rechten starten?

  Alt 30. Nov 2007, 12:40
Zitat von sECuRE:
Um zum eigentlichen Problem zu kommen:
FindFirstURLCacheEntry funktioniert nicht. Mittels Process Explorer (www.sysinternals.com) sieht man, dass die API-Funktion nicht auf die "Low-Pfade" zurückgreift, die der IE nutzt.
Erstell für eine neue Frage bitte einen neuen Thread.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von sECuRE
sECuRE

Registriert seit: 10. Apr 2003
Ort: Heidelberg
360 Beiträge
 
Delphi 7 Professional
 
#7

Re: [Vista] Prozess mit Low-Integrity-Rechten starten?

  Alt 30. Nov 2007, 12:52
Zitat von Luckie:
Erstell für eine neue Frage bitte einen neuen Thread.
OK, Siehe http://www.delphipraxis.net/internal...t.php?p=813587
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz