alfredo64

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.
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 541218

Url: https://administrator.de/forum/shell-passwort-verschluesselung-541218.html

Ausgedruckt am: 25.04.2025 um 04:04 Uhr

LeeX01
LeeX01 30.01.2020 um 15:17:28 Uhr
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.
Alfredo64
Alfredo64 30.01.2020 um 15:22:12 Uhr
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.
142232
142232 30.01.2020 aktualisiert um 16:26:37 Uhr
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!
Alfredo64
Alfredo64 30.01.2020 um 15:59:02 Uhr
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.
142232
142232 30.01.2020 aktualisiert um 16:29:51 Uhr
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 ...
Alfredo64
Alfredo64 30.01.2020 um 16:31:38 Uhr
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.
Alfredo64
Alfredo64 31.01.2020 um 08:30:39 Uhr
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
142232
142232 31.01.2020 aktualisiert um 08:33:03 Uhr
Goto Top
Kommt vom Copy n Paste Syndrom face-wink. Sieht doch ein blinder mit Krückstock überall Leerzeichen dazwischen!
Alfredo64
Alfredo64 31.01.2020 aktualisiert um 08:45:03 Uhr
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 
142232
142232 31.01.2020 aktualisiert um 10:00:00 Uhr
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.