Laden...

"Als Administrator ausführen..." - Was passiert da genau?

Erstellt von Killerkrümel vor 13 Jahren Letzter Beitrag vor 13 Jahren 2.375 Views
K
Killerkrümel Themenstarter:in
166 Beiträge seit 2008
vor 13 Jahren
"Als Administrator ausführen..." - Was passiert da genau?

Heyho Community,

Ich beschäftige mich für ein aktuelles projekt gerade mit AD, LDAP etc.
An Funktionen habe ich es bereits geschafft, anhand eines Usernamens seine Gruppen herrauszufinden, und anhand der Gruppe die User die dazugehören.

Hintergrund der ganzen Geschichte ist, das ich in mein Projekt einen sog. Expertenmodus integrieren möchte.
(Manche Funktionalitäten für normale User nicht ausführbar)

Es gibt folgende Anforderungen:

1.: Der Benutzer soll (wie bei "Als Admin ausführen") ohne abmelden den expertenmodus starten könne.
3.: Die vorherige idee, die gruppe des aktuell eingeloggten nutzers dafür zu benutzen, funktioniert durch punkt eins nicht mehr.

Daher meine Kernfrage:

**Was passiert genau beim "Als Admin anmelden"? **
Weil ich genau das bräuchte. Einen temporären "Userswitch".

Liebe Grüße, Killerkruemel

1.361 Beiträge seit 2007
vor 13 Jahren

Hi Killerkrümel,

das "Als Admin ausführen" bezieht sich ja auf Programme. Und damit auf zu startende Prozesse.

Jeder Prozess besitzt under Windows ein Access Token. Kurz gesagt, ist das der Schlüssel für alle Aktivitäten des Prozesses.

Standardmäßig bekommt jeder Prozess das Token seines Eltern-Prozesses. (Also wenn du eine Anwendung startest, dann meistens das Token von Explorer.exe. Und der hat seins irgendwann mal bekommen, als du dich am PC angemeldet hast, ist also dein Token.

Und bei "Als Admin ausführen" vergibt man explizit ein neues Token an den neuen Prozess. Nämlich das Token des Administrators.

beste Grüße
zommi

K
Killerkrümel Themenstarter:in
166 Beiträge seit 2008
vor 13 Jahren

Hey Zoomi, danke für deine schnelle antwort. ähnliches hatte ich schon gehofft / erwartet.


using (new Impersonator(USER_NAME, DOMAIN_NAME,USER_PASSWORD ))
            {
                Process.Start("SOMEAPPLICATION.EXE");
            }

ich habe nun ein Programm geschrieben, welches mit wrappern einem process ein neues token zuweist.

aber wie komm ich an das token ran, um zu testen, ob das auch passiert ist?

Gruß, Killerkruemel

K
Killerkrümel Themenstarter:in
166 Beiträge seit 2008
vor 13 Jahren

*seufzt* MSdn is einfach zu mächtig schmunzelt

WindowsImpersonationContext Class

achja danke für den tipp in nem anderen thread zoomi g

Gruß, Killerkruemel

ps.: Falls jemand das Snippet braucht, (quasi selbstgeschriebenes "RunAs_INsertUser")
einfach bescheidsagen 😃

1.130 Beiträge seit 2007
vor 13 Jahren

von kernelmode aus kann man leicht einen prozess zur laufzeit zum administartor ändern^^ Habe dazu mal nen code gefunden, der das in 22 assemblerbefehlen macht, dieser code lief allerdings nur auf win xp im kernelmode, sollte aber anpassbar sein. ^^
Dieser code hat auch einfach das securitytoken ersetzt.

Das "stoned bootkit" benutzt etwas ähnliches.

Projekte:Jade, HttpSaver
Zum Rechtschreiben gibts doch schon die Politiker. Aber die bauen auch nur mist!