Auch nach der Übernahme durch Microsoft produziert Sysinternals schlanke, aber mächtige Tools für Profis. ZDNet hat die besten getestet und zeigt, wie man sie einsetzt und dabei noch mehr Rechte erhält als der Administrator.
Wer gute Powertools für sein Betriebssystem benötigt, muss für Unix-Betriebssysteme nicht lange suchen. Die meisten Linux-Distributionen installieren viele Tools bereits in der Standardkonfiguration. Gut sortierte Distributionen wie openSuse oder debian bieten darüber hinaus zahlreiche Zusatzpakete zur Installation an.
Ganz anders sieht das unter Windows aus. Tools und Utilities zur Optimierung des Systems sind kaum vorhanden. Ihre Funktionalität ist oft eingeschränkt. So bietet beispielsweise das mitgelieferte Defrag nur wenige Optionen. Das Ergebnis ist allzu oft, dass stundenlange Defragmentierungsläufe nur wenig Leistungssteigerung bringen.
Dritthersteller, die diesem Manko abhelfen wollen, sehen sich oft vor dem Problem, dass viele APIs nicht dokumentiert sind. Das gilt vor allem für native NT-Calls unterhalb des Win32-Subsystems, aber auch viele Win32-APIs sind nicht oder nicht vollständig dokumentiert. An viele Low-Level-Funktionen kommen Entwickler von Tools anders als bei Linux einfach nicht ohne Weiteres heran.
Bereits 1996 gründete Mark Russinovich zusammen mit Bryce Cogswell NTinternals (später Sysinternals). Ihr Ziel war es, undokumentierte APIs in Windows zu finden und öffentlich zu machen. Während man Funktionsnamen von undokumentierten APIs leicht herausfinden kann, indem man die Funktionsnamenstabellen aus den Windows-DLLs, etwa kernel32.dll, ntoskrnl.exe oder user32.dll, ausliest, ist es sehr schwierig, die Parameter und ihre Bedeutung herauszufinden. Dennoch waren Russinovich und Cogswell dabei sehr erfolgreich.
Ihr eigentliches Ziel war es, die Funktionen für andere Entwickler zugänglich zu machen. Sie entwickelten jedoch Beispiele in Form von voll funktionsfähigen Tools und nicht nur kleinen Code Samples. Diese Tools erreichten schnell große Beliebtheit bei Entwicklern und Powerusern.
2006 verkauften Russinovich und Cogswell ihre Firma Sysinternals an Microsoft. Sie entwickeln nun im Rahmen des Technet-Programms Powertools für Windows. Obwohl Ihnen offensichtlich dabei freie Hand gelassen wird, gibt es keinen Source-Code mehr zum öffentlichen Download. Auch der Source-Code von Tools, die noch aus der Zeit der Selbstständigkeit von Sysinternals stammen, ist nicht mehr frei verfügbar.
Eines der mächtigsten Tools aus der Sammlung von Sysinternals ist PsExec[2]. Es wird oft als "Telnet-Ersatz für Windows" bezeichnet. Allerdings bietet es weitere sinnvolle Features, die vor allem aus Sicherheitsaspekten relevant sind. Mit psexec lassen sich Prozesse unter einem anderen Sicherheitskontext starten.
Wen beispielsweise die Benutzerkontensteuerung unter Vista und Windows 7 stört, oder wer als XP-Nutzer erst gar keine hat, der kann mit psexec Programme wie einen Browser, die anfällig für das Einfangen von Malware sind, ohne Administratorrechte starten. Der Internet-Explorer lässt sich beispielsweise starten, indem man psexec -l "C:\Program Files\Internet Explorer\iexplore.exe" eingibt.
Die Option -l sorgt dafür, dass dem gestarteten Prozess die Administratorrechte entzogen werden. Wer dauerhaft mit geringeren Rechten surfen möchte, sollte sich einen Shortcut auf dem Desktop oder im Startmenü anlegen. So lässt sich die Sicherheit ohne die störenden Pop-ups der Benutzerkontensteuerung erhöhen.
Der SYSTEM-Account: mehr Kontrolle als mit Administratorrechten
Auch mit Administratorrechten kann man unter Windows nicht alles machen. Der eigentliche Superuser-Account unter Windows heißt SYSTEM. Anders als der Benutzer root unter Unix, ist es nicht möglich, sich auf regulärem Weg unter diesem Account einzuloggen. Mit Administratorrechten erhält man beispielsweise keinen Zugriff auf die Benutzerdatenbank (SAM) in der Registry (siehe Bild 1[3]).
Viele Shareware-Programme nutzen die Registry, um ihr eigenes Installationsdatum einzutragen. So lässt sich ein begrenzter Demo-Zeitraum realisieren, nach dessen Ablauf für das Programm bezahlt werden muss. Meist hat man selbst als Administrator keine Möglichkeit, dieses Datum nachträglich zu verändern.
Einfache Abhilfe schafft der Kommandozeilenbefehl psexec -s regedit.exe (bis XP/2003) beziehungsweise psexec -s -i 1 regedit.exe (ab Vista/2008). Auf diese Weise wird der Registry-Editor unter dem SYSTEM-Account ausgeführt und man erhält vollen Zugriff auf die gesamte Registry (siehe Bild 2[4]).
Auch die Nutzung von PsExec als "Telnet-Ersatz" kann durchaus praktisch sein. Einen Telnet- oder SSH-Dämon bekommt man mit Windows nicht standardmäßig installiert. Wer sich die Mühe einer Installation einmal gemacht hat, wird schnell feststellen, dass das - höflich ausgedrückt - "ungeschickte" Konsolen-API von Windows dazu führt, dass man nicht einmal die Pfeiltasten benutzen kann, um eine Falscheingabe zu korrigieren.
PsExec funktioniert grundsätzlich mit jedem Windows-Rechner ab Windows 2000, ohne dass die Installation eines Dämons notwendig ist. Allerdings muss die Firewall von Clientrechnern (Windows XP/Vista/7) so konfiguriert werden, dass WMI-Befehle durchgelassen[5] werden. Das ist nur auf Servercomputern (Windows 2003 oder 2008) bereits vorkonfiguriert. Mit dem Befehl psexec \\<Rechnername> -u <Benutzername> cmd.exe lässt sich so eine Kommandozeile auf einem anderen Rechner verschaffen.
Eine der schlimmsten Unsitten von Softwareanbietern ist es, unnütze Programme wie Updater, Quickstarter, Systray-Ikonen und Ähnliches beim Hochfahren oder Einloggen ungefragt zu starten. Nicht jeder, der sich Google Earth oder Adobe Reader installiert, benötigt eine permanente Überwachung, ob eine neue Version verfügbar ist, oder möchte die DLLs der Programme "auf Verdacht" in den Hauptspeicher geladen bekommen, für den man möglicherweise bessere Verwendung hat.
In der Summe können Autostart-Programme eine regelrechte Plage werden. Das lange Warten nach dem Einloggen, bis der Rechner ein einigermaßen akzeptables Antwortzeitverhalten liefert, ist zu einem großen Teil den Autostart-Programmen zuzuschreiben.
Eine sehr gute Lösung schafft Autoruns[6]. Das Programm durchsucht nahezu alle Möglichkeiten, die Windows bietet, um Programme automatsch zu starten. Bild 3[7] zeigt anhand der zahlreichen Reiter, dass es davon nicht wenige gibt. Um die lästigen Updater und Quickstarter loszuwerden, reicht es in der Regel aus, den Reiter Logon genauer zu untersuchen. Programme, die man nicht benötigt, können mittels Kontrollkästchen einfach deaktiviert werden. Dabei ist darauf zu achten, dass man nicht versehentlich userinit.exe oder explorer.exe abschaltet. Das führt dazu, dass nach dem Anmelden keine Shell verfügbar ist.
Unnötige Dienste lassen sich im Reiter Services abschalten. Sinnvoll ist es auch, sich die Programme unter Internet Explorer anzuschauen. Vor allem Spyware tarnt sich gerne als Browser-Erweiterung. Für Nicht-Microsoft-Browser bietet Autoruns allerdings keine Unterstützung. Add-ons für Firefox, Opera oder Safari müssen mit den eingebauten Add-on-Managern der jeweiligen Browser deaktiviert werden.
Die meisten anderen Reiter dienen vor allem dazu, zu überprüfen, ob sich Malware eingenistet hat. Nicht einmal Google traut sich, Programme wie den Google Updater oder den Google Crash Manager als Winsock-Provider, Authentifizierungsmodul (msgina.dll) oder Videocodec zu tarnen, um der Deaktivierung zu entgehen. Bei Verdacht auf Malwarebefall lohnt sich ein Blick in alle Reiter.
Aber auch hier gilt es, Vorsicht walten zu lassen. Eine für den Betrieb von Windows wichtige Komponente darf nicht deaktiviert werden. Auch erfahrene Anwender sollten vorher mit der Systemwiederherstellung einen Wiederherstellungspunkt anlegen, auf den sie zur Not mit der Installations-DVD zurückkehren können.
Wer seinen Computer mit anderen teilt, beispielsweise einen gemeinsam genutzten Familien-PC, oder Dateifreigaben eingerichtet hat, sollte sich vergewissern, dass bestimmte vertrauliche Dateien nicht für jeden einsehbar sind. Die Rechtevergabe unter Windows ist sehr komplex und ungeschickte Konzepte sorgen dafür, dass sich Fehler einschleichen können.
Kopiert man etwa eine Datei in ein Verzeichnis mit beschränkten Rechten, so erbt die Kopie die Rechte dieses Verzeichnisses. Verschiebt man hingegen eine Datei in dasselbe Verzeichnis, so bleiben ihre ursprünglichen Rechte bestehen. Die Restriktionen der Verzeichnisrechte werden so ausgehebelt.
Um sicherzustellen, dass bestimmte Benutzer tatsächlich nur die gewünschten Rechte haben, ist Accesschk[8] geeignet. Um zu überprüfen, ob der Benutzer Kasimir tatsächlich nicht auf das Verzeichnis C:\Geheim und dessen Unterverzeichnisse zugreifen darf, kann man den Kommandozeilenbefehl Accesschk -s Kasimir C:\Geheim nutzen.
Bild 4[9] zeigt, dass es ein Problem mit dem Verzeichnis C:\Geheim\Bankpasswörter gibt. Dort hat der Benutzer Kasimir Lese- und Schreibzugriff, obwohl er nicht einmal sehen soll, dass dieses Verzeichnis existiert. Ein so erkanntes Problem kann schnell über den Windows Explorer beseitigt werden.
Obwohl Sysinternals mittlerweile ein Teil von Microsoft Technet ist, produzieren Mark Russinovich und Bryce Cogswell nach wie vor leistungsfähige Tools. Meist bestehen sie nur aus einer EXE-Datei und einem Helpfile. So können sie ohne Installation genutzt werden und sind auch zur portablen Anwendung auf einem USB-Stick geeignet.
Außer den drei vorgestellten Tools findet man auf der Technet-Website[10] eine Vielzahl weiterer Programme. Zu nennen sind beispielsweise der Process Explorer[11] als Ersatz für den Task-Manager. Process Explorer erlaubt eine sehr detaillierte Kontrolle von Prozessen bis hin zum Anhalten einzelner Threads. Ferner zeigt er alle TCP- und UDP-Verbindungen eines Prozesses an.
Der Process Monitor[12] hingegen überwacht alle Aktivitäten eines Prozesses. Er ist eine große Hilfe um herauszufinden, welche Registry-Einträge ein Programm nutzt.
Viele andere Tools bieten vor allem für Spezialfälle eine Lösung an. Wer sich wieder einmal darüber ärgert, dass bestimmte Dinge mit Windows nicht oder nur unter Schwierigkeiten zu lösen sind, findet bei Sysinternals oftmals eine gute Hilfe.
URLs in diesem Artikel:
[1] = http:/
[2] = http:/
[3] = http:/
[4] = http:/
[5] = http:/
[6] = http:/
[7] = http:/
[8] = http:/
[9] = http:/
[10] = http:/
[11] = http:/
[12] = http:/