edaseins
Goto Top

UAC Bestätigung bei Exe install via Powershell umgehen?

Hallo zusammen,

ich suche mich im Netz dumm und dämlich...

Ich möchte gerne über den Acmeo Agenten auf mehreren Maschinen ein Programm installieren welches mir folgendes liefert:

- die .exe Datei die per /quiet angestoßen werden kann
- eine Setup XML die die exe aber von allein im gleichen Ordner ansteuert.

Meine Versuche bislang funktionieren auf der lokalen Maschine super, aber weder über Aufgabenplanung noch über den Agenten wird das Programm installiert, mein Verdacht ist die UAC Abfrage die kommt, wenn ich es manuell ausführe, ich denke die Aufgabenplanung und der Agent können dies nicht bestätigen. Grundsätzlich funktioniert das Script aber das sieht man daran dass der Download und das extrahieren startet, aber sobald der Schritt des entpackens fertig ist, passiert via Aufgabenplanung oder Agent gar nix mehr.

folgender Aufbau des skriptes:

Folgender Code läd das ZIP Archiv auf den Client herunter:
[string]$Ziel = "c:\install\"  
[string]$zippfad = $Ziel + "programm.zip"  
[String]$URL = "http://webserver/programm.zip"  

if (!(Test-Path $Ziel)) {New-Item -Path $Ziel -ItemType Directory}
   
    New-Item $Ziel -type Directory
    $shell_app=New-Object -com shell.application
    $wc = New-Object System.Net.WebClient
    $wc.DownloadFile($URL, "$zippfad")  
    
    (New-Object System.Net.WebClient).DownloadFile($URL, $zippfad)



anschließend wird die Zip Datei extrahiert:
    Expand-Archive -Path $zippfad -DestinationPath $ziel



Und nun hab ich ca 13 Möglichkeiten probiert um das ganze zu installieren... per cmd aufruf, per Startas.exe addon, per start process... meine letzte Idee war eine self elevating Powershell... Dies funktioniert auch, aber eben nur local... der Code dazu

$username = "domäne\user"  
$password = ConvertTo-SecureString "password" -AsPlainText -Force  
$creds =   New-Object System.Management.Automation.PSCredential($username,$password)

$runthis = {
    cd c:\install\programmpfad
    .\Setup.exe
	    Exit 0
  
}
 
Start-Process -WorkingDirectory $env:windir powershell -Credential $creds -ArgumentList "-NoProfile -NoLogo -NonInteractive -ExecutionPolicy Bypass -command &{start-process powershell.exe {$runthis} -verb runas}"  

Wiegesagt führe ich das Script oder auch nur den letzten Block manuell aus, kommt kurz eine UAC Abfrage ich klicke auf Ja und alles installiert sich total sauber, lass ich das Script über die Aufgabenplanung oder den Acmeo Agenten laufen downloaded er, extrahiert, aber dann passiert gar nix mehr, es gibt keine Fehler und im Verlauf der Aufgabenplanung steht abgeschlossen.

Was kann ich hier noch machen?

Content-Key: 632191

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

Printed on: April 26, 2024 at 07:04 o'clock

Member: joehuaba
joehuaba Dec 17, 2020 at 07:16:46 (UTC)
Goto Top
Guten Morgen face-smile

Wenn der Acmeo Agent eine Softwareverteilung ist, dann läuft der Dienst auf dem Client in der Regel als "System" User, oder bereits als Admin.
Dann sollte ein einfacher Aufruf der EXE mit dem Parameter reichen:
start-process "......\Setup.exe" -argumentlist /quiet'  


Wenn das nicht so sein sollte, wie kann der Agent dann andere Software installieren?!
Aber wie auch immer. Wenn du Credentials mitgibst, dann startest du wieder eine PowerShell Instanz. Warum?
Starte doch direkt die Installation:

$username = "username"  
$password = "password"  

$credentials = New-Object System.Management.Automation.PSCredential -ArgumentList @($username,(ConvertTo-SecureString -String $password -AsPlainText -Force))

Start-Process setup.exe -WorkingDirectory DEINORDNER -Credential ($credentials)

Gruß
Member: Edaseins
Edaseins Dec 17, 2020 at 11:56:03 (UTC)
Goto Top
Hallo Joehuaba,

dass hatt ich schon probiert, habs jetz nochmal umgeschrieben und getestet, in der Acmeo Facebookgruppe wurde mir empfohlen den Call Operator & vor die EXE zu setzen... das hat leider auch keinen Erfolg gebracht. MSI via Agent auszurollen ist überhaupt kein Problem, aber an einer EXE beiß ich mir die Zähne aus, mein Verdacht wiegesagt ist die UAC Abfrage für die erhöhten Rechte, deswegen der erneute Sitzungsaufruf mit erhöhten Rechten. Allerdings schein ich damit nicht die UAC zu umgehen, andere versuche die UAC zu umgehen wie sie Google auswirft hab ich berreits erfolglos getestet face-sad
Member: Marabunta
Marabunta Dec 18, 2020 at 05:59:48 (UTC)
Goto Top
Nimm ein Remotesystem und schau drauf falls dort tatsächlich etwas mit uac kommt bzw. schalt uac ab und teste.
Unblock-File könnte auch helfen, dazu noch #Requires -RunAsAdministrator oder ein anderer Test auf Adminrechte.
Member: joehuaba
joehuaba Dec 18, 2020 at 06:56:55 (UTC)
Goto Top
Acmeo kenn ich leider nicht.
Ich versteh nur nicht, was den Unterschied zwischen einer MSI und einer EXE macht.
Aber ok, da macht der Agent anscheinend wirklich einen Unterschied.

Trotzdem noch viel erfolg bei deinem Vorhaben face-smile
Member: Edaseins
Edaseins Dec 18, 2020 at 09:11:07 (UTC)
Goto Top
Ich habs jetz mit einem Payloader Script probiert, damit gehts wunderbar :D

Also muss es an der UAC liegen, ich hab die Ausführung meines Scriptes einfach in den Payload des Scriptes hier reingebaut, und er führt es als system aus und siehe da die Software erscheint in der Systemsteuerung, aber es ist Riski, einmal nicht aufgepasst zerschiess ich mir die Umgebungsvariablen...

Daher muss es doch was offizielles geben wie man als System ein Programm installieren kann...

https://forums.hak5.org/topic/45439-powershell-real-uac-bypass/