Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Impersonation@SYSTEM ohne PW? (https://www.delphipraxis.net/77483-impersonation%40system-ohne-pw.html)

Metal_Snake2 20. Sep 2006 09:30


Impersonation@SYSTEM ohne PW?
 
moin,

ich habe das Problem dass ich für mein Prog. Admin rechte benötige(da ich Privilegien aktiviere).
Jedoch möchte ich aber auch das meien Anwenung z.B. unter einem Gast konto läuft.
Um dies zu bewerkstelligen habe ich zwei möglichkeiten: Impersonation oder einfach mit einem Dienst/IPC arbeiten.
Zweiteres wäre sicherlich komplexer. Für die erste variante berauche ich zusätzlich noch die Login Daten um ein gültiges Token zu erhalten, doch es wäre doof Jedesmal beim Start des Programms den Benutzer nach seinem PW zu fragen.


Meine Frage ist: ist es mögliche als SYSTEM zu laufen ohne die Login Daten?

Funktioniert es wenn ich einfach das Token vom Prozess "System" (Welches immer unter dem Benutzer SYSTEM) läuft
dubliziere(DublicateToken) und es mit NtSetInformationProcess meiner Anwendung zuweise??

Funzt WMI auch unter SYSTEM(man kann zumindest nicht auf Nezwerk Res.(SMP) zugreifen)?


Danke für antworten.

Luckie 20. Sep 2006 12:46

Re: Impersonation@SYSTEM ohne PW?
 
Zitat:

Zitat von Metal_Snake2
Meine Frage ist: ist es mögliche als SYSTEM zu laufen ohne die Login Daten?

Nicht nur Fragen, sondern auch mal selber fünf Minuten nachdenken. Über leg dir mal, was das bedeuten würde, wenn es ginge. Oder übereleg dir mal, was für ein Nutzen ein Rechtesystem hätte, wenn das möglich wäre.

Zitat:

Funktioniert es wenn ich einfach das Token vom Prozess "System" (Welches immer unter dem Benutzer SYSTEM) läuft
dubliziere(DublicateToken) und es mit NtSetInformationProcess meiner Anwendung zuweise??
Siehe oben.

Tyrael Y. 20. Sep 2006 12:59

Re: Impersonation@SYSTEM ohne PW?
 
Es geht....

...ich habe z.B. einen Service(SYSTEM) der durch Impersonination ein Hilfprogramm zu bestimmten Zeiten startet und zwar mit den Rechten des eingeloggten Benutzers.

Da ich Script-Kiddies nicht unterstützen möchte, gebe ich weder Codebeispiele hier noch über PM/E-mail heraus.

Soviel sei gesagt es geht.....den Rest musst du dir selber zusammenfrimeln...Schlagwort ist Impersonination.

Tubos 20. Sep 2006 13:06

Re: Impersonation@SYSTEM ohne PW?
 
Zitat:

...ich habe z.B. einen Service(SYSTEM) der durch Impersonination ein Hilfprogramm zu bestimmten Zeiten startet und zwar mit den Rechten des eingeloggten Benutzers.
Der Threadautor möchte aber genau das Umgekehrte machen, und das ist nicht möglich ohne Passwort.

Btw, Zwischenfrage: hat "System" überhaupt ein Passwort, über das man selbst Programme mit Systemrechten starten kann? Oder kann das nur das System (oder ein Dienst mit Systemrechten) selbst anstoßen?

Luckie 20. Sep 2006 13:08

Re: Impersonation@SYSTEM ohne PW?
 
@Tyrael Y: Mit dem momentan eingeloggten Benutzer könnte es gehen. Ich meine, ich hätte da bei Keith Brown mal was gelesen, bin mir aber nicht sicher. Schick mir doch mal eine PN.

Tyrael Y. 20. Sep 2006 13:27

Re: Impersonation@SYSTEM ohne PW?
 
Zitat:

Zitat von Tubos
Zitat:

...ich habe z.B. einen Service(SYSTEM) der durch Impersonination ein Hilfprogramm zu bestimmten Zeiten startet und zwar mit den Rechten des eingeloggten Benutzers.
Der Threadautor möchte aber genau das Umgekehrte machen, und das ist nicht möglich ohne Passwort.

...ups hast Recht, hab mich verlesen, sry

Metal_Snake2 20. Sep 2006 16:05

Re: Impersonation@SYSTEM ohne PW?
 
Alles klar, man muß schon Selbst als SYSTEM laufen um sich ein gültiges Token zu schmieden, mehr wolte ich ja nicht wissen.
@Tyrael Y.: was will man da noch coden? Programme die von einem Dienst(SYSTEM) gestartet wurden verben den Benutzerkontext.
@Luckie : Du hast natürlich recht, wenn das funzen sollte, wozu bräuchte man dan noch den Security-Descriptor.

Es git dan noch die lösung das ich einfach mit einem Selbst gemachten Dienst immer die GUI als SYSTEM ausführe.
Dam arbeite ich am besten immer mit Checksummen damit ich jedesmal die richtige ausführbare starte.

Oder ich frage den Benutzer nur einmal nach den Login Daten und speichere sie natürlich verschlüsselt ab.

Da beides jedoch doof ist und ich sie so noch nie in der Praxis erlebt habe werde ich warscheinlich
ein Client(GUI) <> Server(Dienst mittelf Named Pipes erstellen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:56 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