Entwickler-Ecke
Windows API - Zugriff Verweigert im Taskmanager hervorrufen
Hansi@OMG - Do 01.05.03 10:30
Titel: Zugriff Verweigert im Taskmanager hervorrufen
Im Taskmanager von NT-Basierenden Systemen, gibt es doch Prozesse, die, wenn man auf Prozess beenden klickt die Meldung ausgeben "Zugriff verweigert". Geht das auch mit einem Selbstprogrammierten Progi? Wenn ja, wie?
O'rallY - Do 01.05.03 11:21
Das tritt IMHO nur bei Systemservices auf. Du solltest dich also mal in richtung Service umgucken. Genaueres kann ich dir leider nicht sagen.
Motzi - Do 01.05.03 17:45
Korrekt @O'rally. Bei diesem Prozessen handelt es sich um Services. Diese können aber nur deswegen nicht über den Taskmanager geschlossen werden, weil dieser das SeDebugPrivilege nicht aktiviert hat. Wenn man dieses Privilege über ein externes Prog aktiviert (vorausgesetzt man hat genügend Rechte dafür) dann kann man auch Services beenden.
MaxiTB - Mi 07.05.03 17:23
Titel: Nicht ganz ....
Es gibt noch einen Fall, wo du keinen Zugriff bekommst:
Nämlich wenn der Process unter einen anderem Benutzer gestartet worden ist und ...
a) der Process sich nicht normal beenden läßt (ein abschießen ist dann nicht möglich per TM) oder
b) der Benutzer einen höheren Privilegienpegel hat wie du. Ähm - wie das intern gehändelt *g* wird, keine Ahnung, hatte sowas mal mit Hauptbenutzer/Admin-Prog.
Motzi - Mi 07.05.03 18:00
Titel: Re: Nicht ganz ....
| MaxiTB hat folgendes geschrieben: |
Es gibt noch einen Fall, wo du keinen Zugriff bekommst:
Nämlich wenn der Process unter einen anderem Benutzer gestartet worden ist und ...
a) der Process sich nicht normal beenden läßt (ein abschießen ist dann nicht möglich per TM) oder
b) der Benutzer einen höheren Privilegienpegel hat wie du. Ähm - wie das intern gehändelt *g* wird, keine Ahnung, hatte sowas mal mit Hauptbenutzer/Admin-Prog. |
Ja, das kommt eben immer ganz auf deine Privilegien an...
MaxiTB - Do 08.05.03 09:06
Titel: Tjo.
Bei a) bringts auch nix, wenn du Adimistrator bist, den unter WinNT darf nur SYSTEM solche Prozesse killen ;-)
Motzi - Do 08.05.03 10:18
Titel: Re: Tjo.
| MaxiTB hat folgendes geschrieben: |
| Bei a) bringts auch nix, wenn du Adimistrator bist, den unter WinNT darf nur SYSTEM solche Prozesse killen ;-) |
Da wär ich mir jetzt nicht so sicher... vielleicht gehts schon mit dem SeDebugPrivilege, wenn nicht, dann aber spätestens mit dem SeTCBPrivilege! (TCB = Trusted Computing Base) Wenn dieses Privilege aktiviert ist, dann wird das betroffene Programm als Teil des Systems angesehen und hat damit den höchsten Zugriff! Egal in welcher LogonSession es läuft.
MaxiTB - Do 08.05.03 10:24
Titel: Hab ich mir auch gedacht ...
Ich hab hier gerade eine Anwendung am Debuggen, die läßt sich pertout nicht killen - mit allen Rights die man als Admin haben kann. Wie gesagt, anderer User (hat eingeschränkte Rechte) und die Anwendung läßt sich nicht beenden (scheint aber noch zu reagieren). TM liefert schöne Zugriff nicht möglich und das einzige was hilft ist Abmelden (Full screen apps können sehr lästig sein - will ja mein schönens Desktoppic sehen ;-) *g*).
Motzi - Do 08.05.03 11:04
| Zitat: |
| [..]mit allen Rights die man als Admin haben kann. |
Tja, nur: das SeDebugPrivilege ist zwar als Admin verfügbar, aber standardmäßig
nicht aktiviert (der TM hat es auch nicht aktiviert)! ;)
MaxiTB - Do 08.05.03 11:09
Titel: Nochmals ...
Ich habe alle Privilegien inkl. den drei DebugRights. Der TM erbt diese, wenn ich sie unter meinem User starte ... trotzdem läßt sich das Ding nicht kicken. *lol* Bin ja nicht vom anderen Mond ;-).
Motzi - Do 08.05.03 11:29
Titel: Re: Nochmals ...
| MaxiTB hat folgendes geschrieben: |
| Ich habe alle Privilegien inkl. den drei DebugRights. |
3 DebugRights?
| Zitat: |
| Der TM erbt diese, wenn ich sie unter meinem User starte ... trotzdem läßt sich das Ding nicht kicken. *lol* Bin ja nicht vom anderen Mond ;-). |
Der TM wird entweder von Winlogon oder vom Explorer gestartet (je nachdem ob man über die Taskleiste oder Strg-Alt-Entf geht) und keiner dieser beiden Prozesse hat das Debug-Privilege standardmäßig aktiviert! Ein Prozess erbt sein Token aber von seinem Parent-Prozess. Dh wenn der TM sich das Debug-Privilege nicht selbst besorgt (was er nicht tut) oder es über ein 3tes Prog aktiviert wird, dann ist es auch nicht aktiviert..! Als Administrator steht einem das Debug-Privilege zwar zur Verfügung, aber es ist standardmäßig
disabled!
MaxiTB - Do 08.05.03 11:38
Titel: Okay - letzter Versuch, dann geb ichs auf ...
Jep, 3 DebugRights *g* Hab schon mal .NET mit reingnommen (dort gibts auch noch zwei).
Zweitens:
Hab ichs nicht schon geschrieben ?
Ich hab das Ding und bei uns hat der Admin auch standardmäßig das WinNT DR (domainserver sei Dank).
Ich weiß, daß child processes die Rights des Benutzers bekommen unter dem sie gestartet wurden.
Wenn ein Prozeß allerdings einen neuen startet (was standardmäßig unter dem selben User ist - und so ist auch unterm Explorer/WinLogon), dann bekommt er natürlich meinen User mit meinen Rechten.
Fazit: Es gibt dir trotzdem nicht die Möglichkeit eine laufende App eines anderen User zu killen, wenn es diese nicht zuläßt.
Wenn dus nicht glauben kannst, geht ganz einfach:
Erstell dir ein Programm und Fang die Close-Message ab. Jetzt startest du das Ding unter anderem User-Login - Voila. Schön dürfte das Ding nicht beendbar sein unter deinem Account - egal wie er aussieht.
Ich würde dir ja gerne den TNG schicken, aber erstens ist der Firmeneigentum ;-) und zweitens greift der noch ein bisserl wesentlich tiefer auf Systemebene ein. *kopfkratz*
Motzi - Do 08.05.03 12:02
Titel: Re: Okay - letzter Versuch, dann geb ichs auf ...
| MaxiTB hat folgendes geschrieben: |
| Jep, 3 DebugRights *g* Hab schon mal .NET mit reingnommen (dort gibts auch noch zwei). |
Aso.. alles klar..
| Zitat: |
Ich weiß, daß child processes die Rights des Benutzers bekommen unter dem sie gestartet wurden.
Wenn ein Prozeß allerdings einen neuen startet (was standardmäßig unter dem selben User ist - und so ist auch unterm Explorer/WinLogon), dann bekommt er natürlich meinen User mit meinen Rechten. |
Naja.. User <> Prozess ;) Der Prozess bekommt den Prozess-Token des Parent-Prozesses vererbt...
| Zitat: |
Wenn dus nicht glauben kannst, geht ganz einfach:
Erstell dir ein Programm und Fang die Close-Message ab. Jetzt startest du das Ding unter anderem User-Login - Voila. Schön dürfte das Ding nicht beendbar sein unter deinem Account - egal wie er aussieht. |
Ich werds ausprobiern! Verlass dich drauf! ;)
| Zitat: |
| Ich würde dir ja gerne den TNG schicken, aber erstens ist der Firmeneigentum ;-) und zweitens greift der noch ein bisserl wesentlich tiefer auf Systemebene ein. *kopfkratz* |
TNG? Und inwieweit greift der ins System ein? Klingt interessant.. erzähl mal ein bisschen mehr (solange es sich nicht um Firmengeheimnisse handelt ;) )
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!