Microsoft`s Runas ohne Passworteingabe ausführen

 in Entwicklung, Microsoft Windows



Ich möchte kurz zwei Möglichkeiten aufzeigen, wie die Möglichkeit besteht per DOS-Batch (CMD) ein Befehl oder ein Programm mit Administratorrechten zu starten, ohne das ein Anwender das Passwort des Administrator-Accounts eingeben muss und das Passwort direkt übergeben wird.

1. Mittels Batch und VBScrpt.
Es ist durchaus eine unsichere Methode das Passwort im Klartext in eine Datei abzulegen. Je nach Berechtigungsstruktur kann man das im kleinen Umfeld z.B. zum testen tun.
Allerdings bietet Microsoft auch eine kleine Verschlüsselung für VBs-Dateien an damit nicht gleich jeder den Inhalt erkennt.

Ein Aufruf des Kommandozeilenprogramms der Form

screnc runas.vbs runas.vbe

verschlüsselt das Skript runas.vbs und speichert es unter gleichem Namen mit der Endung .vbe für verschlüsselte VB-Skripte. Bei JScript-Skripten wandelt sich die Endung von .js nach .jse. Die Endung verrät dem Script Host, dass er es mit einer verschlüsselten Datei zu tun hat. Dies kann er nicht selbst erkennen, weshalb die Ausführung eines verschlüsselten Skripts fehlschlägt, dessen Endung .vbs oder .js lautet.

Der Schutz des Script Encoder ist übrigens nicht perfekt, das gesteht Microsoft selbst ein. Um die Quelltexte von Skripten vor neugierigen Anwendern zu verbergen, reicht es aber allemal.

Den Download – Microsoft Script Encoder 1.0 findest du hier als Download.

Nachtrag vom 06.04.2017: Der Download wurde von Microsoft entfernt und findet nunmehr von meinem Server aus statt. Es gibt auch den WSH Script Decoder von Masterbootrecord, mit dem man verschlüsselte Scripte (VBScript, JScript, ActiveServerPages) wieder entschlüsseln kann. Diesen findest du hier als Download.

Nunmehr benötigen wir zwei Dateien, die ich runas.vbs und runas.cmd benenne. Der Anwender ruft nun die cmd auf, diese wiederum öffnet die vbs Datei. Das kleine VBScript gibt nun mittels SendKeys-Befehl das Passwort ein. Die Passworteingabe ist für den Anwender nicht sichtbar. Grundlegend ist die Dos-Eingabeaufforderung auch nur wenige Sekunden offen. Für mich war das in einem Citrix-Umfeld eine gute Lösung für ein kleines Problem. Die CMD wird hier per ICA-Datei auf dem virtuellen Client aufgerufen. Der Anwender hat weder Kenntniss über die Pfad-Angabe zu der cmd noch die Berechtigung den Pfad manuell zu öffnen.

runas.vbs

1
2
3
4
5
6
set WshShell = WScript.CreateObject("Wscript.Shell")
WshShell.run "runas /env /noprofile /user:Domäne\User " + Chr(34) + "C:\Pfad-zum-Programm.exe"
WScript.Sleep 50
WshShell.SendKeys "Passwort"
WshShell.SendKeys "{ENTER}"
set WshShell = nothing

runas.cmd

1
2
3
@echo off
cscript /nologo runas.vbs
exit

Diese Methode funktioniert mit den verwendeten Microsoft Boardmitteln zuverlässig.
Weitere Möglichkeiten für das runas-Komanndo erhälst du mit „runas /?“.

2. Mittels der Erweiterung RunasSpc
An dieser Stelle erspare ich mir viel Text zur der Erweiterung des Drittanbieters Robotronic und verweise auf den Download und die Anleitung unter http://www.robotronic.de/anleitung.html. Zu beachten ist, dass RunasSpc für den gewerblichen Einsatz kostenpflichtig ist. Bei der privaten Version können unliebsame Fenster aufgehen.

Auszug von Robotronics.de:
Runas Spc startet Programme unter einer anderen Benutzerkennung als dem derzeit angemeldeten Benutzer.
Welches Programm unter welcher Kennung gestartet werden soll liest Runas Spc aus einer mit runasspc.exe oder Runasspcadmin.exe erstellten verschlüsselten Datei.
Jede verschlüsselte Datei erhält aus Sicherheitsgründen Ihr eigenes Verschlüsselungspasswort, ähnlich eines Fingerabdruckes.
Die freigegebene Anwendung wird auf Bitebene überprüft ob Sie gestartet werden darf. Runasspc erfordert keine Installation. Runas Spc kann zusammen mit einer Cryptdatei auf einen Rechner kopiert und von dort direkt gestartet werden.
Für Tests oder Scripte kann Runas Spc auch ohne verschlüsselte Datei betrieben werden.



  • Samuel Rodrigues

    Cara muito obrigado me ajudou muito!

    • Ptrck

      My pleasure :)