Poświadczenia w pliku historii poleceń

By PowerShell

Zastanawiałeś się jak to się dzieje, że ponownym uruchomieniu konsoli PowerShell, masz dostępnę polecenia (po naciśnięciu ⬆️), które wykonywałeś ostatnio? I wcale nie jest to związane z poleceniem Get-History, a z…

PSReadLine

Sprawcą jest moduł PSReadLine, który umożliwia dostosowanie wiersza polecenia w programie PowerShell. To on zapewnia kolorowanie składni, skróty klawiszowe i już wspomniane automatyczne zapisywanie historii do… pliku

Również ten plik jest wykorzystywany dopiero co do ogłoszonej nowości – Predictive IntelliSense.

PowerShell Predictive IntelliSense

Hasła w pliku?

Domyślne ustawienie modułu PSReadLine powoduję, że każde wykonane polecenie trafia pliku płaskiego. Jeśli jawnie użyłeś haseł, tokenów lub innych poufnych danych w poleceniach to być może one tam są. U mnie były 😱.

Lokalizacja do pliku historii

Wszystkie opcję modułu sprawdzisz za pomocą Get-PSReadLineOption. Jest kilka związanych z bezpośrednio historią:

  • HistorySavePath – lokalizacja pliku
  • HistorySaveStyle – sposób zapisu, gdzie SaveIncrementally – zapis po wykonaniu każdego polecenia, SaveAtExit – zapis w momencie zamykania konsoli,  SaveNothing – wyłączenie historii w pliku
  • MaximumHistoryCount – ilość rekordów historii

Wszystkie z tych opcji jest konfigurowalne, w tym celu wykorzystaj polecenie Set-PSReadLineOption.

Sprawdź zawartość historii

Wykorzystaj przykładowe polecenie aby sprawdzić ile jawnych poświadczeń znalało się w Twoim pliku.

Get-Content(Get-PSReadLineOption).HistorySavePath| Select-String 'haslo|password|asplaintext|token|secret'
PSReadLine

Czyszczenie historii poleceń

Jeśli w pliku historii modułu PSReadLine zapisywane są poufne dane to wykonaj dwa kroki.

Usuń aktualny plik historii.

Remove-Item (Get-PSReadLineOption).HistorySavePath

Sprawdź wersję modułu PSReadLine i jeśli jest starsza niż 2.0.0 to go zaaktualizuje, ponieważ wcześniejsze wcześniejsze nie zawierają poprawki #1058.

Update-Module -Name PSReadLine -Force
Remove-Item (Get-PSReadLineOption).HistorySavePath

Podsumowanie

PSReadLine to moduł, który robi w tle świetną robotę. Miał swoje mankamenty ale zostało to poprawione. Mało tego wciąż jest rozwijany o czym świadczy wcześniej wspomniana nowa funkcjonalność Predictive IntelliSense.

22 Najważniejsze Wskazówki Pisania Skryptów PowerShell

No comments yet.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

× Close