![]() |
Benutzerrechte: Token Handle woher?
Hallo!
Ich arbeite gerade mit der Funktion ![]() Wenn ich das richtig Verstanden habe, kann mich mit dem ersten Argument (hToken) von ![]() ![]() Bin für jeden Hinweis / Tip dankbar!!!!!! Gruß, freakfly |
Re: Benutzerrechte: Token Handle woher?
Probier es mal hiermit:
![]() |
Re: Benutzerrechte: Token Handle woher?
Hallo!
Die Funktion ist soweit ja ganz in Ordnung, und ich verwende sie auch, um das erste Programm unterm anderen Benutzer zu starten, aber ein bisschen nervig ist da halt, das ich ne Passwortabfrage einbauen müsste. Eigentlich will ich ja nur ein Programm mit den Rechten vom angemeldeten Benutzer starten. 1. Programm (Benutzer: Normal) -> startet mit ![]() 2. Programm (Benutzer: Spezial) -> startet : 3. Programm (Benutzer soll der gerade angemeldete Benutzer sein.) So solls schauen..... |
Re: Benutzerrechte: Token Handle woher?
Irgendwie diskutieren wir hier wieder in zwei Foren gleichzeitig. Und irgendwie habe ich keine Lust alles zweimal zu schreiben. Und auch keine Lust jetzt den Link in das andere Forum rauszusuchen.
|
Re: Benutzerrechte: Token Handle woher?
Kann ich gut verstehen, aber es ist vielleicht nicht jeder in zwei Foren aktiv....
Was ich meinte war überigens nicht, das man ein Programm unter den Rechten startet unter denen man angemeldet ist. Und sowas müsste ja ohne Passwortabfrage gehen. |
Re: Benutzerrechte: Token Handle woher?
Nein. Wenn du ein Programm unter einem anderen Benutzer startest, erben alle anderen Programme, die du in dem Prozess startest dessen Rechte. Willst du aus dem ersten Programm wieder ein Prozess unter einem anderem Benutzer starten, ist das wie bei dem ersten Programm. Du brauchts das Passwort.
|
Re: Benutzerrechte: Token Handle woher?
Argh.... so ein Schrott.
Und mit dem Token dingends lässt dich das nicht hinbiegen? hab gerade gesehen, das ich ein im vorherigen Beitrag ein bisschen Schrott geschrieben hab: Zitat:
freakfly |
Re: Benutzerrechte: Token Handle woher?
Wenn du das Programm unter dem angemeldeten Benutzer starten willst, dann reicht doch ein einfache Shellexecute oder CreateProcess. :gruebel:
|
Re: Benutzerrechte: Token Handle woher?
Hmmm.. der Theorie nach schon, aber hat die dann nicht auch die Rechte von der Exe von der aus sie aufgerufen wurde??
|
Re: Benutzerrechte: Token Handle woher?
Ja was denn nun?
Zitat:
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. Es ist ja genauso, als wenn du als anderer Benutzer eingeloggt bist und willst ein programm unter einem anderen Account starten. |
Re: Benutzerrechte: Token Handle woher?
Zitat:
|
Re: Benutzerrechte: Token Handle woher?
Argh. Das habe ich vergessen.
|
Re: Benutzerrechte: Token Handle woher?
Danke für die Posts! Ich glaub so langsam weiß ich selber nichtmehr was ich eigentlich wollte... :shock:
Ich bin am Computer angemeldet als Benutzer "David". David startet ein Programm, dieses Programm (start.exe) startet dann ein anderes Programm (Daten.exe) mittels ![]() 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 |
Re: Benutzerrechte: Token Handle woher?
Zitat:
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. |
Re: Benutzerrechte: Token Handle woher?
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!!! |
Re: Benutzerrechte: Token Handle woher?
Zitat:
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? |
Re: Benutzerrechte: Token Handle woher?
@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 |
Re: Benutzerrechte: Token Handle woher?
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? |
Re: Benutzerrechte: Token Handle woher?
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...... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:20 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