alfredo64
Goto Top

Shell Passwort Verschlüsselung

Hallo,

Ich habe ein Skript geschrieben wo ich auch dachte das schon alles Funktioniert. Allerdings verschlüssle ich mein Passwort damit es nicht im Klartext in meinem Shell Skript steht. Allerdings habe ich das Problem, dass es nach einem Neustart des Systems die neu Eingabe des Passwortes verlangt, da es den Securestring aus der Text Datei loscht. Allerdings kann ich das Passwort nach einem Neustart nicht einfach neu eingeben, da das Skript auf einem Server liegen wird.

Mein Skript sieht Folgendermaßen aus:

$secure = read-host -assecurestring
$encrypted = convertfrom-securestring -secureString $secure -key (1..16)
$encrypted | set-content C:\Users\lkliegel\Documents\Projekte\Logfileüberwachung\encrypted.txt
$secure2 = get-content C:\Users\lkliegel\Documents\Projekte\Logfileüberwachung\encrypted.txt | convertto-securestring -key (1..16)
$UnsecurePassword = (New-Object PSCredential "username",$secure2).GetNetworkCredential().Password  

Wenn jemand eine Idee hat wie man das Passort verschlüsseln kann damit dieser Fehler nicht mehr auftritt wäre ich sehr Dankbar.

Content-Key: 541218

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

Printed on: April 25, 2024 at 15:04 o'clock

Member: LeeX01
LeeX01 Jan 30, 2020 at 14:17:28 (UTC)
Goto Top
Naheliegend wäre natürlich einfach eine Copy von deiner Textdatei anzulegen und danach die leere zu ersetzen oder die Datei schreibgeschützt zu machen.
Member: Alfredo64
Alfredo64 Jan 30, 2020 at 14:22:12 (UTC)
Goto Top
Das war auch mein erster Gedanke nur Leider hat das mit dem schreibgeschützt auch dazu geführt, dass es garnicht mehr genutzt werden konnte. Mit dem Copy wäre natürlich eine möglichkeit. Ich habe das gerade einmal Probiert aber leider kann er mit dem Verschlüsseltem nichts mehr anfangen und löscht es wieder raus.
Mitglied: 142232
142232 Jan 30, 2020 updated at 15:26:37 (UTC)
Goto Top
Allerdings habe ich das Problem, dass es nach einem Neustart des Systems die neu Eingabe des Passwortes verlangt
Ist ja auch logisch wenn du die ersten 3 Zeilen im Skript belässt! Die ersten 3 Zeilen führt man ja nur einmalig aus und dann nicht wieder...
Außerdem ist anzumerken das der Plaintext SecureString aus der Textdatei nur mit dem Account genutzt werden kann der ihn auch erstellt hat sofern man keinen Key hernimmt, da der Salt zum entschlüsseln im Userprofil gespeichert wird!
Member: Alfredo64
Alfredo64 Jan 30, 2020 at 14:59:02 (UTC)
Goto Top
Oh vielen dank jetzt weiß ich woran es liegt face-smile . Aber wenn das so ist, dass das nur mit meinem User wieder entschlüsselt werden kann kann ich das leider nicht verwenden. Wissen sie einen anderen Weg wie man das Problem so angehen könnte, dass das Skript auch von anderen Benutzern ausgeführt wird.
Mitglied: 142232
142232 Jan 30, 2020 updated at 15:29:51 (UTC)
Goto Top
Kannst du , dir sollte aber immer bewusst sein das die User trotzdem an das Klartextpassword gelangen können auch wenn du im Skript dann doch wieder daraus Klartext machst ein Secure-String ist nur so sicher wie der Schutz seiner zugehörigen Schlüsseldateien face-wink, reine Obfuscation halt.
https://icanthackit.wordpress.com/2018/07/28/aes-encrypted-credentials-f ...
Member: Alfredo64
Alfredo64 Jan 30, 2020 at 15:31:38 (UTC)
Goto Top
Ja das ist mir bewusst, in dem fall wie bei mir würde man es sich über de Variable $UnsecurePassword ganz einfach ausgeben lassen können.
Und vielen Dank für den Link ich werde mich damit morgen einmal befasse, wenn ich es gelöst habe setze ich es aufe gelöst und wenn eben nicht werde ich mich nochmal meden.
Member: Alfredo64
Alfredo64 Jan 31, 2020 at 07:30:39 (UTC)
Goto Top
Also ich versuche gerade einen schlüssel zu erstellen leider klappt das nicht ganz.

Mein Versuch:

# create keyfile 
$ keyfile = 'C:\Users\lkliegel\Documents\Projekte\Logfileüberwachung\key.txt'  

$ key = [ byte []] :: New ( 32 ) [ Sicherheit . Kryptographie . RNGCryptoServiceProvider ] :: Create (). GetBytes ( $ key ) 
$ Key | out - file $ keyfile

Fehlermeldung:

+ ... heit . Kryptographie . RNGCryptoServiceProvider ] :: Create (). GetBy ...
+                                                                  ~
Nach "(" wurde ein Ausdruck erwartet.In Zeile:4 Zeichen:103  

    + CategoryInfo          : ParserError: (:) , ParentContainsErrorRecordException
    + FullyQualifiedErrorId : ExpectedExpression
Mitglied: 142232
142232 Jan 31, 2020 updated at 07:33:03 (UTC)
Goto Top
Kommt vom Copy n Paste Syndrom face-wink. Sieht doch ein blinder mit Krückstock überall Leerzeichen dazwischen!
Member: Alfredo64
Alfredo64 Jan 31, 2020 updated at 07:45:03 (UTC)
Goto Top
Ok das Problem ist, dass ich ned weiß wie es richtig sein muss. Ich teste die ganze zeit alle mögichen Formatierungen.

sieht jetzt so aus:

# create keyfile 
$keyfile = 'C:\Users\lkliegel\Documents\Projekte\Logfileüberwachung\key.txt'  

$key = [ byte[]]:: New(32) [ Sicherheit.Kryptographie.RNGCryptoServiceProvider]::Create().GetBytes($key) 
$Key | out - file $keyfile 
Mitglied: 142232
142232 Jan 31, 2020 updated at 09:00:00 (UTC)
Goto Top
Sicherheit.Kryptographie
Doppelt und dreifach aua, du solltest deinen Übersetzer oder was du da sonst an Browser oder Tools benutzt die Seiten verfälschen unbedingt raus lassen face-big-smile face-big-smile, Klassen kannst du nicht ins Deutsche übersetzen außerdem sind überall immer noch Leerzeichen...

Tja, wenn man so PS lernen möchte sehe ich bitter bitter schwarz für dich ...

$keyfile = 'C:\Users\lkliegel\Documents\Projekte\Logfileüberwachung\key.txt'  
$CreateKey = New-Object Byte 32
[Security.Cryptography.RNGCryptoServiceProvider]::Create().GetBytes($CreateKey)
$CreateKey | out-file $keyfile

Ich bin raus...ciao.