antaresschweiz
Goto Top

Ausführen von subinacl via ASP

Trotz "integrierte Windows-Authentifizierung" für das Verzeichnis der betreffenden ASP Datei und korrekter Anmeldung als Domain Admin im aufrufenden Browser, scheinen die Credentials beim Ausführen einer cmd.exe (oder *.exe) "nur" noch dem "Netzwerkdienst" zu entsprechen.

ASP ist für mich komplett neu und ASP.NET habe ich noch überhaupt nie verwendet. Allerdings kenne ich vbscript relativ gut. Momentan versuche eine Lösung mit dem "alten" ASP.

Nun zum Problem:

Auf einem W2k3 Server läuft IIS6. In einem eigenen Verzeichnis, mit "integrierte Windows-Authentifizierung" befindet sich ein ASP File (vbscript) welches u.a. folgende Zeilen enthält:

test.asp-------------------------------------------------------------------------------------------------------------------------------------


Sub SUBINACL
Set WshShell = Server.CreateObject("WScript.Shell")

strCMD1 = "%COMSPEC% /C subinacl /outputlog=" & strCommonPath & "\" & strGetUserName & _
"-files_.txt /subdirectories " & strCommonPath & "\*.* /display=owner > c:\temp\output.txt"
strCMD2 = "%COMSPEC% /C whoami"
strCMD3 = "subinacl /outputlog=c:\temp\subilog.txt /subdirectories c:\temp\*.* /display=owner > c:\temp\output.txt"

Set oExec = WshShell.Exec(strCMD3)
strResult = oExec.StdOut.Readall()
Response.Write strResult
End Sub


Sub WMI
Set objRootDSE = GetObject("LDAP:rootDSE")
strRootDSE = objRootDSE.Get("defaultNamingContext")
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Provider = ("ADsDSOObject")
objConnection.Open

Set objCommand = CreateObject("ADODB.Command")

objCommand.ActiveConnection = objConnection

objCommand.CommandText = _
"<LDAP:
" & strRootDSE & ">;(&(objectCategory=User)" & _
"(samAccountName=" & strGetUserName & "));distinguishedName,sAMAccountName,name;subtree"

Set objRecordSet = objCommand.Execute

End Sub

test.asp-------------------------------------------------------------------------------------------------------------------------------------


Das Ziel wäre es eigentlich, strCMD1 auszuführen, aber zu debug Zwecken habe ich noch zwei weitere Befehle hinzugefügt.
strGetUserName und strCommonPath werden weiter unter in der WMI SUB definiert.

Folgende Punkte verstehe ich nicht:

1)
strCMD2 meldet unabhängig von der Authentifizierug im Browser, dass ich der "nt-autorität\netzwerkdienst " sei, auch wenn ich Usernamen und Passwort eines Domain Admins eingegeben habe.
Dies ändert auch nicht, wenn ich anonymen Zugriff erlaube und als Account die Credentials eines Domänen Admins spezifiziere.

2)
Im Rahmen meiner Test stellt ich für das betroffene IIS Verzeichnis die Authentifizierung von Standard (Plaintext) auf Windows integriert. Als "Nebeneffekt" funktioniert nun die WMI Abfrage nicht mehr (auch nicht mit hardcoding des samAccountName) sondern ein "Tabelle nicht vorhanden" Fehler wird generiert.
(Provider Fehler "80040e37' Die Tabelle ist nicht vorhanden. )


Bemerkung:
Da subinacl sehr hungrig nach diversen "privileges" ist, meldet strCMD3 logischerweise, dass Berechtigungen fehlen.


Wie kann ich erreichen, dass eine unprivilegierte Gruppe von Benutzern (Schüler) das ASP aufrufen kann um einen vordefinierten subinacl-Befehl abarbeiten zu können, der dann ein Resultat in Form einer Textdatei zur Verfügung stellt?

Die subinacl Zeile ist so in Ordnung, ich kann sie problemlos manuell in eine CMD Shell (eines Admins) kopieren und das gewünschte File wird erzeugt.


Vielen Dank für jegliche Tips!
antares

Content-Key: 72218

Url: https://administrator.de/contentid/72218

Ausgedruckt am: 29.03.2024 um 04:03 Uhr