h41msh1c0r
Goto Top

Powershell credentials verschlüsselt benutzen während der PXE Phase

Hi@All,

mich beschäftigt ein Thema was eigentlich auf die Arbeit gehört, aber mir irgendwie nicht aus den Kopf will.

Ablauf:

PXE --> SelfService(der hier benutzten Deploymentlösung) startet
Einstellungen im SelfService werden gesetzt (OS wird ausgewählt, indem Fall Win10; Name für den Client wird vergeben)
PS Script wird ausgeführt
SelfService wird beendet und OS Installation startet

Problem:

Während der PS Script Ausführung muss in der DB der Verteillösung ein Object modifiziert werden.
Das funktioniert natürlich NUR wenn die passenden Credentials benutzt werden die das dürfen.

Zum Test enthält das Script ein Get-Credentials die dann als Parameter übergeben werden.

Jetzt wird der Servicetechniker im Feld natürlich nicht die Credentials bekommen zum Eingeben, das muss
automatisiert werden.

Daher bin ich noch am Ausloten der Optionen.

Option 1:

Jetzt gibt es ja SecureString, nur wenn ich die Credentials in einen Blob packe und dann live im Script mir "wiederherstelle"
ist das ja genauso save als wenn ich die gleich im Klartext ins Script schreibe.


Option 2:

Aus dem Script eine Exe machen? Die in irgendeiner Form absichern?

Option 3:

Bin immer für Vorschläge offen.

VG vom grübelnden H41mSh1Cor

Content-Key: 327196

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

Ausgedruckt am: 19.03.2024 um 10:03 Uhr

Mitglied: 131381
131381 22.01.2017 aktualisiert um 19:10:35 Uhr
Goto Top
Moin,
ich würde aus dem Skript heraus gar nicht erst die Datenbank direkt beschreiben sondern das eine andere Instanz erledigen lassen und in dein Skript nur diese Instanz, (z.B. ein Webserver) ansprechen und den Datenbankeintrag diesen Server übernehmen lassen.
Die Freischaltung damit über den Webservices kein Unfug getrieben wird könnte der Servicetechniker z.B. mit dem Eintragen der MAC-Adresse oder seines persönlichen Kennworts in ein Formular erledigen.

Gruß mik
Mitglied: H41mSh1C0R
H41mSh1C0R 22.01.2017 um 19:20:56 Uhr
Goto Top
Hi Mik,

im Grunde läuft das so, kein Direktes Schreibes auf der DB sondern über die Deploymentsoftware selber.
Nur die Credentials muss ich ja an der Stelle schon mitgeben. Da der Webservice ja darauf reagieren muss.

$global:swv_webservice = $proxy = New-WebServiceProxy -Uri http://<Server>:8080/Administration.asmx?WSDL -Credential $cred

Da jetzt noch eine Webserver Instanz dazwischenschalten geht leider nicht.

Der Aufwand für den Techniker draussen sollte auch so wenig Interaktion wie es nur geht beinhalten. Da die Schlagzahl pro Tag immens ist und am Ende stellt er das Blech auf, startet den Selfservice(trägt den namen ein) und wenn die Installation losläuft nach dem PS Script gehts ab zum nächsten Arbeitsplatz.

In der DB wird dann das vorher generierte Objekt gesucht dort die MAC automatisiert reingeschossen und das Objekt was der Selfservice erzeugt hat gelöscht.

Würde der Hersteller flexibler in dem SelfService sein bräuchten wir diese Krücke nicht, aber leider ist dem nicht so.

VG
Mitglied: 131381
131381 22.01.2017 aktualisiert um 19:35:42 Uhr
Goto Top
Nunja es ist ja immer so wenn der Techniker "überhaupt" keine Selbstidentifizierung vornehmen muss schützt dich garnichts vor Missbrauch. Dann verschlüssel das Passwort für den Webservice z.B. mit AES256 über die .NET Funktionen mit einem Salt und einem Kennwort das nur die Techniker haben. Ein Kennwort einzutippen sollte doch jeder noch in unter 10 Sekunden schaffen, wenn dir Sicherheit am Herzen liegt. Alternative könnte auch ein USB-Key mit aufgespieltem Zertifikat sein mit dem das Kennwort asynchron verschlüsselt wurde.
Deine Sicherheitsanforderungen solltest du dann schon genauer definieren.
Mitglied: H41mSh1C0R
H41mSh1C0R 22.01.2017 um 19:43:13 Uhr
Goto Top
Danke dir schonmal für die sehr guten Ansätze.

Anforderungen an das Script/den Workaround --> keine Credentials im Klartext

Anforderungen an den Prozess:

- keine zusätzliche Interaktion durch den Techniker

Ich persönlich würde die Techniker das PW schon eintippen lassen.
Auf den Process haben wir keinen Einfluss da dieser von anderer Stelle gesteuert wird.
Werd das morgen aber diskutieren.