AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Benutzerrechte: Token Handle woher?
Thema durchsuchen
Ansicht
Themen-Optionen

Benutzerrechte: Token Handle woher?

Ein Thema von freakfly · begonnen am 13. Dez 2004 · letzter Beitrag vom 15. Dez 2004
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Motzi
Motzi

Registriert seit: 6. Aug 2002
Ort: Wien
598 Beiträge
 
Delphi XE2 Professional
 
#11

Re: Benutzerrechte: Token Handle woher?

  Alt 13. Dez 2004, 22:13
Zitat von Luckie:
Benutzer ruft mit Admin Account Programm A auf. Programm B ruft Programm C mit den rechnten des Benutzers auf, der Programm A gestartet hat. Genau das wird nur mit Passwort gehen.
Nein, sofern Programm B sich per OpenProcess und OpenProcessToken erfolgreich das Token von Programm A holt kann man dieses benutzen um einen Prozess im selben Security-Kontext wie Programm A zu starten. Eine andere Möglichkeit wäre, dass Programm A sein Token per DuplicateHandle direkt an Programm B weitergibt...
Manuel Pöter
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Benutzerrechte: Token Handle woher?

  Alt 13. Dez 2004, 22:14
Argh. Das habe ich vergessen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
freakfly
(Gast)

n/a Beiträge
 
#13

Re: Benutzerrechte: Token Handle woher?

  Alt 14. Dez 2004, 07:47
Danke für die Posts! Ich glaub so langsam weiß ich selber nichtmehr was ich eigentlich wollte...

Ich bin am Computer angemeldet als Benutzer "David".
David startet ein Programm, dieses Programm (start.exe) startet dann ein anderes Programm (Daten.exe) mittels MSDN-Library durchsuchenCreateProcessWithLogonW unter dem Benutzer "Software".
Programm start.exe beendet sich nach 30 Sekunden selber.
Das Programm Daten.exe soll nun ein Programm starten, mit den Rechten des angemeldeten Benutzers in dem jetztigen Fall "David". Es kann aber sein, dass morgen ein anderer Benutzer angemeldet ist!

Wenn ichs jetzt richtig sehe müsste das dass sein, was ich will.
Soweit... Werde jetzt mal CreateProcess und Shellexecute ausprobieren, wobei das die Rechte eigentlich vererben müsste. Und somit ungeeigent wäre.

Gruß, freakfly
  Mit Zitat antworten Zitat
Benutzerbild von Motzi
Motzi

Registriert seit: 6. Aug 2002
Ort: Wien
598 Beiträge
 
Delphi XE2 Professional
 
#14

Re: Benutzerrechte: Token Handle woher?

  Alt 14. Dez 2004, 09:59
Zitat von freakfly:
Ich bin am Computer angemeldet als Benutzer "David".
David startet ein Programm, dieses Programm (start.exe) startet dann ein anderes Programm (Daten.exe) mittels MSDN-Library durchsuchenCreateProcessWithLogonW unter dem Benutzer "Software".
Programm start.exe beendet sich nach 30 Sekunden selber.
Das Programm Daten.exe soll nun ein Programm starten, mit den Rechten des angemeldeten Benutzers in dem jetztigen Fall "David". Es kann aber sein, dass morgen ein anderer Benutzer angemeldet ist!
Dann würde ich so vorgehen:
start.exe startet Daten.exe per CreateProcessWithLogonW und erhält daraufhin ein Prozess-Handle des neuen Prozesses. Über dieses Handle kann start.exe nun sein Token per DuplicateHandle an Daten.exe vererben. Daten.exe kann dieses Token dann benutzen um einen neuen Prozess unter diesem Security-Kontext zu starten.
Manuel Pöter
  Mit Zitat antworten Zitat
freakfly
(Gast)

n/a Beiträge
 
#15

Re: Benutzerrechte: Token Handle woher?

  Alt 14. Dez 2004, 11:57
Also wenn ich dich richtig verstehe, baue ich die start.exe als einen Art Wrapper, oder?
Denn das Problem ist das Daten.exe eine 16bit Appl. ist, die ich nicht beeinflussen kann.
Im ganzen werde ich aber erstmal so vorgehen, wie du das beschrieben hast, wie das mit dem Handle kopieren u.s.w. geht muss ich mir mal anschauen.
Wichtig ist mir jetzt, dass ich weiss, das ich den Handle kopieren kann. Noch besser wäre natürlich wenn ich den Handle des angemeldeten Benutzers irgendwo herbekommen würde.

Danke euch soweit!!!
  Mit Zitat antworten Zitat
Benutzerbild von Motzi
Motzi

Registriert seit: 6. Aug 2002
Ort: Wien
598 Beiträge
 
Delphi XE2 Professional
 
#16

Re: Benutzerrechte: Token Handle woher?

  Alt 14. Dez 2004, 12:20
Zitat von freakfly:
Wichtig ist mir jetzt, dass ich weiss, das ich den Handle kopieren kann. Noch besser wäre natürlich wenn ich den Handle des angemeldeten Benutzers irgendwo herbekommen würde.
Es gibt kein Handle für einen angemeldeten Benutzer, es gibt nur einen sogenannten Token (ok, genau genommen ist das auch wieder nur ein Handle), der alle Daten des Security-Kontext enthält. Wichtig ist: Handles können nicht "einfach so" kopiert werden, sondern müssen per DuplicateHandle dupliziert werden.

Aber wenn Daten.exe ein Programm ist, dass du nicht beeinflussen kannst, was bringt es dann wenn du ihm das Token vererbst? Schließlich weiß das Programm nicht was es damit anfangen soll... oder?
Manuel Pöter
  Mit Zitat antworten Zitat
freakfly
(Gast)

n/a Beiträge
 
#17

Re: Benutzerrechte: Token Handle woher?

  Alt 15. Dez 2004, 06:53
@Motzi, da hast du recht. Aber wenn ich im "Wrapper" per CreateProcessWithLogonW die Daten.exe mit erweiterten Rechten starte, und gleichzeitig im Wrapper den Token (Handle, wie auch immer) bereithalte, dann kann ich doch vom Wrapper aus auch Programme starten mit den Rechten des angemeldeten Users, ich muss nur noch den Wrapper dazu bringen, auf bestimmt Windows Messages oder ähnliches zu reagieren....
(Oje, ein drei-zeilen Satz)

Gruß, freakfly
  Mit Zitat antworten Zitat
Benutzerbild von Motzi
Motzi

Registriert seit: 6. Aug 2002
Ort: Wien
598 Beiträge
 
Delphi XE2 Professional
 
#18

Re: Benutzerrechte: Token Handle woher?

  Alt 15. Dez 2004, 10:20
OK.. ganz prinzipiell - wenn du ein Token hast, kannst du über diesen Token einen Prozess in diesem Security-Kontext starten, egal wie du zu diesem Token gekommen bist.

Hast du jetzt schon eine Idee / einen Ansatz wie du das ganze lösen kannst?
Manuel Pöter
  Mit Zitat antworten Zitat
freakfly
(Gast)

n/a Beiträge
 
#19

Re: Benutzerrechte: Token Handle woher?

  Alt 15. Dez 2004, 11:30
Hmm.. mein Plan bisher sieht folgendermaßen aus:

Die start.exe wird gestartet, und wird der Token kopiert und im Programm gehalten. Das Programm startet mit CreateProcessWithLogonW die daten.exe. start.exe minimiert sich. Die daten.exe wiederum über gibt irgendwie die Parameter an start.exe weiter, die Infos enthalten welches Programm gestartet werden soll. Das Programm holten den alten, ersten Token wieder und startet mit dieser Berechtigung das Programm "x.exe".

So in der Art.. Jetzt muss ich nur noch Zeitfinden, um das umzusetzen......
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 01:58 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