[Windows Server] Php -> bat -> exe

  • Thread Starter Thread Starter
  • #21
und danach kann man übers weg ohne Passwort alles als Admin starten... super :D
Der IIS-Benutzer dürfte wie geschrieben kein Profil haben - damit können Dateien die beim start ins Profil geschrieben werden würden - nicht geschrieben werden.
Dies kann man aber aktivieren

Hab das mit dem Profil umgestellt - ohne Effekt.

@braegler: An runas hatte ich auch schon gedacht. Aber der verlangt doch ein Passwort, dass ich mit PHP und runas nicht mitgeben kann. Ich habe (Eingeloggt als Administrator) die cmd gestartet und runas /user:Administrator /savecred "OurAltis_start.bat" ausgeführt. Nach der Passworteingabe, startete das Programm wie erwartet. Danach habe ich es über PHP versucht und es passierte wieder nichts. Die Sanduhr drehte sich, wohl weil er auf die Passwort eingabe wartete?
Das SPeichern der credentials hat übrigens funktioniert, da bei einem zweiten manuellen Versuch kein Passwort abgefragt wurde. Aber über PHP greife ich ja als diese ominöse IIS-User zu. Und der darf sicher nicht irgendwelche vom Admin gespeicherten Daten auslesen und verwenden.

Ist es nicht möglich, diesen ganzen PHP, IIS - Mist als Administrator laufen zu lassen?
 
Zuletzt bearbeitet:
Möglich ist alles. Aber ob man wirklich möchte, dass ein Webserver mit Admin-Rechten läuft, naja.

Dann doch lieber psexec ( )
Dem kannst Du Username und Passwort als Argumente mitgeben.
Zwar nicht schön, die Anmeldedaten zum Admin-Account in ein Skript zu packen. Aber im Vergleich zu einem mit Adminrechten ausgestattetem Webserver ist das Fort Knox.
Code:
Expand Collapse Copy
psexec -u Administrator -p DeinAdminPW  "%Prog%" "%ProgPath%\%Prog%" .............
 
doch sicher - du kannst einen user für den Application-pool angeben - aber dann kann man über jegliche Lücke in den Wer php-Anwendung ALLES am Server gemacht werden. Der Angreifer hat dann automatisch volle Rechte... dann kontrolliert er den Server und du nicht mehr - dein Passwort kann er ja einfach ändern.

ändere deine .php bitte mal auf:
exec("c:\windows\system32\cmd.exe /c c:\pfad...\OurAltis_start.bat", $output, $return_var);

ab - wobei im Pfad kein leerzeichen sein darf - also zur not ordner umbenennen oder wenn es geht die bat irgendwie unter c:\server\ legen oder ähnliches (mit leerzeichen geht auch - aber dann muss man noch mal passende Anführungszeichen setzen und die für php escapen - das ist echt kompliziert ;)

edit: Passwörter im Klartext ist das gleiche... die files im webdir können wenn du pech hast ja ausgelesen werden.
Ist blöd für z.B. sql-Passwort - dann ist die db weg - in dem Fall ist dann vielleicht der ganze Server weg. "höhere" Passwörter werden NIE irgendwo im klartext hinterlegt.
 
  • Thread Starter Thread Starter
  • #24
Okay, das mit den Adminrechten für den Webserver war ne dumme Idee. :-D

Habe jetzt psexec ausprobiert. Solange ich die BAT direkt anklicke, funkioniert es wie immer tadellos. Aber sobal die BAT durch die PHP aufgerufen wird, öffnet sich im Taskmanager nur eine CMD aber kein Server.

@drfuture: das ausformulieren des Pfades führt leider zum gleichen Ergebnis

Mein Gott, ich wollte das eben mal schnell fertig machen. Das war vor drei Tagen....


Im übrigen durchläuft eine vorangestellte Routine ebenfalls einen Start einer exe. Ein Packprogramm. Das funktioniert tadellos. Es muss irgendwas mit dem Server zu tun haben. Die calc.exe kann ich zB per PHP aufrufen und der bleibt dann auch als Hintergrundprozess erhalten.

Auch wenn man den server per Aufgabenplanung in den Hintergrund jagd, bleibt er erhalten. Es funktioniert also alles, nur nicht das, was ich will XD
 
Der Idee war eher cmd /c - statt start. - Das entkoppelt den php vom server prozess.

noch eine Idee:
füge mal das an den Anfang der .bat:
cd /d %~d0%~p0

Sonst kannst du dir procmon von sysinternals holen und den Aufruf protokollieren.
 
Ich würde noch versuchen mit psexec zu spielen.
Kann es leider nicht selbst testen.
Code:
Expand Collapse Copy
psexec -h -d-u Administrator -p DeinAdminPW  "%ProgPath%\%Prog%" .............
Vorhin war da ein %Prog% zuviel drin.
 
  • Thread Starter Thread Starter
  • #27
den Fehler hatte ich schon verbessert. Habs ja auch manuell gegengeprüft. Ich habe jetzt mit procmon die 2 Sekunden dokumentioert, in denen der Server versucht zu starten und wieder abstürzt. Ich hab's dir per PM geschickt. Keine Ahnung, ob da was sensibles drin ist. Vielleicht findest du ja einen Hinweis.

Danke euch zweien für eure Geduld und Mühe.
 
gib mal dem wpd_1... Benutzer unter c:\armaserver\* Vollzugriff.

sonst liegt die .dmp datei von oben unter:

C:\Users\IWPD_1(recognite)\AppData\Local\CrashDumps\arma3server_x64.exe.4112.dmp
 
  • Thread Starter Thread Starter
  • #29
gib mal dem wpd_1... Benutzer unter c:\armaserver\* Vollzugriff

Das war's. Oh mein Gott. Der Server bleibt im HG erhalten. So was simples??? Ich hatte der server.exe Zugriff gegeben. Dachte, das reicht! Ich danke dir und allen anderen vielmals! Jetzt kann ich beruhigt schlafen gehen. :D
 
Zurück
Oben