Przejdź do treści

Zabezpieczanie danych z działającego kontrolera domeny

Procedura opisuje sposób zabezpieczenia danych z działającego kontrolera domeny. Obejmuje artefakty charakterystyczne dla roli kontrolera domeny oraz wszystkie artefakty systemowe Windows. Każda sekcja zawiera opis artefaktu oraz polecenia jego pozyskania. Szczegółowe informacje o artefaktach znajdują się w sekcji Artefakty.

NIE URUCHAMIAJ WYŁĄCZONEGO URZĄDZENIA

Jeżeli urządzenie było połączone z zaatakowaną domeną lub siecią, mogło zostać skompromitowane. W takim przypadku nie jest zalecane uruchomienie go przed ustaleniem zakresu incydentu. Należy uznać je za skompromitowane i poddać analizie. Uruchomienie takiego urządzenia może spowodować zaszyfrowanie danych przez szkodliwe oprogramowanie, nawet jeśli urządzenie jest odłączone od sieci wewnętrznej instytucji.

Jeżeli urządzenie nie jest objęte atakiem ransomware, samo uruchomienie systemu operacyjnego może nadpisać kluczowe dla analizy dane, takie jak dzienniki zdarzeń czy pliki usunięte przez atakującego.

Zalecanym rozwiązaniem jest przekazanie dysków z takiego urządzenia lub całego urządzenia do wyspecjalizowanej instytucji, która zabezpieczy dane znajdującie się na dyskach w sposób nie nadpisujący ich zawartości, bez uruchamiania systemu.

Zakres zabezpieczenia Szczegóły
dzienniki zdarzeń wszystkie dzienniki zapisywane w lokalizacji C:\Windows\System32\winevt\logs
informacje o kontrolerze domeny rola FSMO, właściwości domeny, kontrolera i lasu, kluczowe do oceny incydentu w infrastrukturze korzystającej z Active Directory
bazy kontrolera domeny baza danych Active Directory (NTDS.dit) wraz z hive SYSTEM, kluczowa przy analizie potencjalnych działań atakującego na kontrolerze domeny
konta i grupy domenowe listy użytkowników, grup i komputerów w domenie pozwalające wykryć konta dodane przez atakującego oraz wykonane przez niego zmiany uprawnień
obiekty Group Policy obiekty GPO, modyfikowane przez atakujących w celu rozprzestrzenienia zmian na całą domenę
podstawowe informacje o urządzeniu nazwa hosta, wersja systemu operacyjnego, strefa czasowa oraz unikalny identyfikator urządzenia (UUID) stanowiące punkt wyjścia do dalszej analizy
procesy i usługi uruchomione programy pozwalające ustalić, czy na urządzeniu uruchomiono niepożądane oprogramowanie
połączenia sieciowe aktywne połączenia, nasłuchujące porty, tablica ARP, reguły zapory sieciowej i routing
konta i grupy lokalne listy użytkowników i grup pozwalające wykryć konta dodane przez atakującego w celu utrzymania dostępu
zaplanowane zadania wpisy harmonogramu zadań, mechanizmu pozwalającego odnawiać dostęp atakującemu do przejętego urządzenia
rejestry pliki hive rejestru zawierające konfigurację systemu, kont użytkowników i uruchamianych programów
prefetche pliki Prefetch wskazujące programy, które były uruchamiane w systemie wraz ze ścieżkami, liczbą uruchomień i ładowanymi bibliotekami dll.
historiia poleceń pliki historii powłok użytkowników pozwalające odtworzyć polecenia wykonane przez atakującego po uzyskaniu dostępu do powłoki
listing plików metadane wszystkich plików pozwalające zbudować oś czasu zmian w systemie plików i zlokalizować niepożądane pliki

Wymagania

  • Uruchomione urządzenie
  • Dostęp do konta z uprawnieniami administratora domeny

Wymagane narzędzia

Rozpoczęcie procedury

Przed rozpoczęciem procedury należy spełnić poniższe warunki:

  • Terminal powłoki powershell jest uruchomiony z uprawnieniami administratora. Najszybsza metoda uruchomienia terminala to użycie skrótu klawiszowego Win + X i wybranie Windows Terminal (Administrator) i wykonanie polecenia powershell.
  • Na nośniku docelowym utworzony został katalog o nazwie badanego urządzenia np. Sekretariat-PC.
  • Zmienna $nosnik wskazuje na katalog docelowy na zewnętrznym nośniku, w przeciwnym wypadku należy przypisać ją poniższym poleceniem
    $nosnik = "<katalog docelowy na zewnętrznym nośniku>" # Przykład: $nosnik="F:\Sekretariat-PC"
    

Należy rozpocząć nagrywanie transkryptu sesji PowerShell na nośniku docelowym. Transkrypt zapisuje wszystkie wykonywane polecenia wraz z ich wyjściem do pliku tekstowego, co dokumentuje przebieg zabezpieczania danych.

Rozpoczęcie transkryptu i ustawienie nośnika
$nosnik = "<katalog docelowy na zewnętrznym nośniku>" # Przykład: $nosnik=F:\DC01
Start-Transcript -Path $nosnik\session.log -NoClobber

Dzienniki zdarzeń

Wszystkie dzienniki zdarzeń znajdujące się w domyślnej lokalizacji w systemie Windows.

Uwaga

Aby przekazać kompletne dzienniki zdarzeń, zalecamy postępowanie zgodnie z instrukcją. Wykorzystanie innych metod eksportu może skutkować przesłaniem niepełnych plików.

Poniższe polecenie kopiuje całą zawartość katalogu Logs (pliki .evtx) na nośnik docelowy.

Zabezpieczenie dzienników zdarzeń
$dst = "$nosnik\${env:COMPUTERNAME}_DziennikiZdarzen"
New-Item -ItemType Directory -Path $dst -Force | Out-Null
Copy-Item -Path "C:\Windows\System32\winevt\Logs\*" -Destination $dst -Recurse -Force 2>> "$nosnik\error.log"

Uwaga

Przed rozpoczęciem procedury podłącz czysty nośnik zewnętrzny, na który zostaną zapisane zabezpieczane dane.

Aby przeprowadzić operację zabezpieczenia dzienników zdarzeń z systemu Windows przy pomocy interfejsu graficznego, należy otworzyć eksplorator plików i przejść do katalogu z dziennikami zdarzeń systemu operacyjnego. Standardową ścieżką katalogu z dziennikami zdarzeń jest:

C:\Windows\System32\winevt

Następnie należy skopiować katalog o nazwie Logs do miejsca docelowego, w którym będzie możliwe utworzenie archiwum z danymi. Tę operację można przeprowadzić poprzez kliknięcie katalogu Logs prawym przyciskiem myszy oraz wybranie opcji Kopiuj, a następnie kliknięcie prawym przyciskiem w miejscu docelowym i wybranie opcji Wklej.

Katalog z dziennikami zdarzeń

Eksplorator plików otwarty w katalogu C:\Windows\System32\winevt.

Z uwagi na restrykcyjne prawa dostępu do katalogu Logs system operacyjny może poprosić o uprawnienia administratora celem przeprowadzenia operacji kopiowania. Aby to zrobić, należy zaznaczyć opcję Wykonaj dla wszystkich elementów bieżących, a następnie kliknąć Kontynuuj.

Zapytanie o uprawnienia administratora

Zapytanie o uprawnienia administratora podczas kopiowania katalogu Logs

Następnie ze skopiowanego folderu zawierającego dzienniki zdarzeń systemu Windows należy utworzyć archiwum. Aby to zrobić, naciśnij prawym przyciskiem myszy na katalog z logami (znajdujący się na nośniku zewnętrznym), wybierz Wyślij doFolder skompresowany (zip)

Zaleca się zmianę nazwy archiwum według konwencji:

NAZWA_URZĄDZENIA_DziennikiZdarzen

Zmiana nazwy archiwum

Zmiana nazwy archiwum zgodnie z konwencją nazewnictwa

Informacje o kontrolerze domeny

Rola FSMO, właściwości domeny, kontrolera i lasu, kluczowe do oceny zasięgu incydentu w Active Directory.

Zabezpieczenie ról FSMO

Poniższe polecenie wypisuje role FSMO przypisane do kontrolera domeny. Wyjście polecenia zapisywane jest do pliku fsmo.txt na nośniku docelowym.

Zabezpieczenie ról FSMO
netdom query fsmo > $nosnik\fsmo.txt 2>> "$nosnik\error.log"

Zabezpieczenie właściwości domeny

Poniższe polecenie wypisuje właściwości domeny. Wyjście polecenia zapisywane jest do pliku addomain.txt na nośniku docelowym.

Zabezpieczenie właściwości domeny
Get-ADDomain > $nosnik\addomain.txt 2>> "$nosnik\error.log"

Zabezpieczenie właściwości kontrolera domeny

Poniższe polecenie wypisuje właściwości badanego kontrolera domeny. Wyjście polecenia zapisywane jest do pliku addc.txt na nośniku docelowym.

Zabezpieczenie właściwości kontrolera domeny
Get-ADDomainController > $nosnik\addc.txt 2>> "$nosnik\error.log"

Zabezpieczenie właściwości lasu

Poniższe polecenie wypisuje właściwości lasu domeny. Wyjście polecenia zapisywane jest do pliku adforest.txt na nośniku docelowym.

Zabezpieczenie właściwości lasu
Get-ADForest > $nosnik\adforest.txt 2>> "$nosnik\error.log"

Baza kontrolera domeny

Baza danych Active Directory (NTDS.dit) wraz z hive SYSTEM, kluczowa przy analizie potencjalnych działań atakującego na kontrolerze domeny.

Utworzenie migawki woluminu

Poniższe polecenie tworzy migawkę woluminu C: i pobiera ścieżkę urządzenia migawki oraz jej identyfikator. Ścieżka urządzenia ma postać \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopyN.

Utworzenie migawki woluminu C:
$snapshot = vssadmin create shadow /for=C: 2>> "$nosnik\error.log"
$shadowDevice = (($snapshot | Select-String "Shadow Copy Volume Name:").Line -split "Shadow Copy Volume Name: ")[1].Trim()+"\"
cmd /c mklink /d C:\shadow $shadowDevice 2>> "$nosnik\error.log"

Zabezpieczenie bazy NTDS.dit

Poniższe polecenie kopiuje zawartość katalogu bazy danych Active Directory z migawki na nośnik zewnętrzny, do folderu NTDS.

Zabezpieczenie bazy NTDS.dit
Copy-Item "C:\shadow\Windows\NTDS\" -Destination $nosnik -Recurse -Force 2>> "$nosnik\error.log"

Zabezpieczenie hive SYSTEM

Poniższe polecenie kopiuje hive SYSTEM rejestru z migawki na nośnik zewnętrzny. Hive ten jest niezbędny do odszyfrowania bazy NTDS.dit w narzędziach analizy offline.

Zabezpieczenie hive SYSTEM
Copy-Item "C:\shadow\Windows\System32\config\SYSTEM" "$nosnik" -Force 2>> "$nosnik\error.log"

Usunięcie podlinkowanego folderu

Poniższe polecenie usuwa folder, do którego został zalinkowany wolumin shadow copy.

Usunięcie dowiązania
cmd /c rmdir "C:\shadow\" 2>> "$nosnik\error.log"

Konta i grupy domenowe

Listy użytkowników, grup i komputerów w domenie pozwalające wykryć konta oraz zmiany uprawnień.

Zabezpieczenie listy kont użytkowników

Poniższe polecenie zwraca wszystkie konta użytkowników w domenie wraz ze wszystkimi atrybutami i zapisuje je do pliku CSV na nośniku docelowym.

Zabezpieczenie listy kont użytkowników
Get-ADUser -Filter * -Properties * | Export-Csv "$nosnik\domain_users.csv" -NoTypeInformation -Encoding UTF8 2>> "$nosnik\error.log"

Zabezpieczenie listy grup

Poniższe polecenie zwraca wszystkie grupy w domenie wraz z ich atrybutami i zapisuje je do pliku CSV na nośniku docelowym.

Zabezpieczenie listy grup
Get-ADGroup -Filter * -Properties * | Export-Csv "$nosnik\domain_groups.csv" -NoTypeInformation -Encoding UTF8 2>> "$nosnik\error.log"

Zabezpieczenie listy kont komputerów

Poniższe polecenie zwraca wszystkie konta komputerów w domenie wraz z ich atrybutami i zapisuje je do pliku CSV na nośniku docelowym.

Zabezpieczenie listy kont komputerów
Get-ADComputer -Filter * -Properties * | Export-Csv "$nosnik\domain_computers.csv" -NoTypeInformation -Encoding UTF8 2>> "$nosnik\error.log"

Zabezpieczenie członkostw w grupach

Poniższe polecenie wypisuje członków wszystkich grup w domenie i zapisuje je do pliku CSV na nośniku docelowym. Pozwala to odtworzyć, które konta należały do grup uprzywilejowanych w momencie zabezpieczenia.

Zabezpieczenie członkostw w grupach
Get-ADGroup -Filter * | ForEach-Object { $group = $_.Name; Get-ADGroupMember $group -ErrorAction SilentlyContinue | Select-Object @{N="Group";E={$group}}, Name, SamAccountName, ObjectClass } | Export-Csv "$nosnik\domain_group_members.csv" -NoTypeInformation -Encoding UTF8 2>> "$nosnik\error.log"

Obiekty Group Policy

Obiekty GPO, modyfikowane przez atakujących w celu rozprzestrzenienia zmian na całą domenę.

Zabezpieczenie kopii zapasowej obiektów GPO

Poniższe polecenie tworzy kopię zapasową wszystkich obiektów GPO w domenie w katalogu GPO na nośniku zewnętrznym.

$dst = "$nosnik\GPO"
New-Item -ItemType Directory -Path $dst -Force | Out-Null
Backup-GPO -All -Path $dst 2>> "$nosnik\error.log"

Zabezpieczenie listy obiektów GPO

Poniższe polecenie wypisuje wszystkie obiekty GPO w domenie wraz z ich właściwościami. Wyjście polecenia zapisywane jest do pliku gpo_list.txt na nośniku docelowym.

Get-GPO -All > $nosnik\gpo_list.txt 2>> "$nosnik\error.log"

Podstawowe informacje o urządzeniu

Nazwa hosta, wersja systemu operacyjnego oraz strefa czasowa stanowiące punkt wyjścia do dalszej analizy.

Zabezpieczenie informacji o urządzeniu

Poniższe polecenie wypisuje informacje o urządzeniu, w tym unikalny identyfikator (UUID) pochodzący z SMBIOS. Wyjście polecenia zapisywane jest do plików win32_computersystem.txt oraz win32_computersystemproduct.txt na nośniku docelowym.

Zabezpieczenie informacji o urządzeniu
Get-WmiObject -Class Win32_ComputerSystem | Format-list * > $nosnik\win32_computersystem.txt 2>> "$nosnik\error.log"
Get-WmiObject -Class Win32_ComputerSystemProduct | Format-list * > $nosnik\win32_computersystemproduct.txt 2>> "$nosnik\error.log"

Zabezpieczenie informacji o systemie

Poniższe polecenie wypisuje zbiorcze informacje o systemie operacyjnym. Wyjście polecenia zapisywane jest do pliku computerInfo.txt oraz Win32_OperatingSystem.txt na nośniku docelowym.

Zabezpieczenie informacji o systemie
Get-ComputerInfo > $nosnik\computerInfo.txt 2>> "$nosnik\error.log"
Get-WmiObject -Class Win32_OperatingSystem | format-list * > $nosnik\Win32_OperatingSystem.txt 2>> "$nosnik\error.log"

Procesy i usługi

Informacje o uruchomionych programach pozwalające ustalić, czy na urządzeniu uruchomiono niepożądane oprogramowanie.

Zabezpieczenie informacji o procesach

Poniższe polecenie wypisuje informacje o wszystkich uruchomionych procesach. Wyjście polecenia zapisywane jest do pliku processes.txt na nośniku docelowym.

Get-CimInstance Win32_Process | Select-Object ProcessId, ParentProcessId, Name, CommandLine, ExecutablePath, CreationDate | Format-List > $nosnik\processes.txt 2>> "$nosnik\error.log"

Zabezpieczenie informacji o usługach

Poniższe polecenie wypisuje informacje o wszystkich usługach zarejestrowanych w systemie. Wyjście polecenia zapisywane jest do pliku services.txt na nośniku docelowym.

Get-WmiObject win32_service | Format-List * > $nosnik\services.txt 2>> "$nosnik\error.log"

Połączenia sieciowe

Aktywne połączenia, nasłuchujące porty, tablica ARP, reguły zapory sieciowej i routing.

Zabezpieczenie konfiguracji interfejsów sieciowych

Poniższe polecenie wypisuje pełną konfigurację wszystkich interfejsów sieciowych badanego urządzenia. Wyjście polecenia zapisywane jest do pliku ipconfig.txt na nośniku docelowym.

Zabezpieczenie konfiguracji interfejsów
ipconfig /all > $nosnik\ipconfig.txt 2>> "$nosnik\error.log"

Zabezpieczenie połączeń TCP

Poniższe polecenie wypisuje aktywne połączenia TCP wraz z adresami i portami lokalnymi oraz zdalnymi, stanem połączenia oraz powiązanym procesem. Wyjście polecenia zapisywane jest do pliku TCP_connections.txt na nośniku docelowym.

Get-NetTCPConnection | Select-Object LocalAddress, LocalPort, RemoteAddress, RemotePort, State, @{Name="Process";Expression={(Get-Process -Id $_.OwningProcess).ProcessName}}, @{Name="CommandLine";Expression={(Get-WmiObject Win32_Process -Filter "ProcessId = $($_.OwningProcess)").CommandLine}} | Sort-Object RemoteAddress -Descending | Format-Table -Wrap -AutoSize > $nosnik\TCP_connections.txt 2>> "$nosnik\error.log"

Zabezpieczenie połączeń UDP

Poniższe polecenie wypisuje punkty końcowe UDP nasłuchujące na urządzeniu, wraz z adresem i portem lokalnym oraz czasem utworzenia. Wyjście polecenia zapisywane jest do pliku UDP_connections.txt na nośniku docelowym.

Get-NetUDPEndpoint | Select-Object Local*, CreationTime| Format-Table -AutoSize > $nosnik\UDP_connections.txt 2>> "$nosnik\error.log"

Zabezpieczenie tablicy ARP

Poniższe polecenie wypisuje zawartość tablicy ARP. Wyjście polecenia zapisywane jest do pliku arp.txt na nośniku docelowym.

arp -a > $nosnik\arp.txt 2>> "$nosnik\error.log"

Zabezpieczenie tablicy routingu

Poniższe polecenie wypisuje tablicę routingu. Wyjście polecenia zapisywane jest do pliku routing.txt na nośniku docelowym.

route print > $nosnik\routing.txt 2>> "$nosnik\error.log"

Konta i grupy

Lokalne listy użytkowników i grup pozwalające wykryć konta dodane przez atakującego w celu utrzymania dostępu.

Zabezpieczenie listy kont lokalnych użytkowników

Poniższe polecenie wypisuje wszystkie konta lokalnych użytkowników wraz z ich właściwościami. Wyjście polecenia zapisywane jest do pliku local_users.txt na nośniku docelowym.

Zabezpieczenie listy kont lokalnych użytkowników
Get-LocalUser | Format-List * > $nosnik\local_users.txt 2>> "$nosnik\error.log"

Zabezpieczenie listy grup lokalnych

Poniższe polecenie wypisuje wszystkie lokalne grupy zdefiniowane na urządzeniu. Wyjście polecenia zapisywane jest do pliku local_groups.txt na nośniku docelowym.

Zabezpieczenie listy grup lokalnych
Get-LocalGroup | Format-List * > $nosnik\local_groups.txt 2>> "$nosnik\error.log"

Zabezpieczenie informacji o aktywnych sesjach

Poniższe polecenie wypisuje aktywne sesje sieciowe nawiązane z badanym urządzeniem. Wyjście polecenia zapisywane jest do pliku sessions.txt na nośniku docelowym.

Zabezpieczenie informacji o aktywnych sesjach
net sessions > $nosnik\sessions.txt 2>> "$nosnik\error.log"

Zaplanowane zadania

Wpisy harmonogramu zadań, mechanizmu pozwalającego atakującemu odnawiać dostęp do przejętego urządzenia.

Zabezpieczenie listy zadań zaplanowanych

Poniższe polecenie wypisuje wszystkie zaplanowane zadania zarejestrowane w harmonogramie zadań. Wyjście polecenia zapisywane jest do pliku sch_tasks.txt na nośniku docelowym.

Zabezpieczenie listy zadań zaplanowanych
Get-ScheduledTask | Format-List * > $nosnik\sch_tasks.txt 2>> "$nosnik\error.log"

Zabezpieczenie poleceń autostartu

Poniższe polecenie wypisuje polecenia uruchamiane automatycznie podczas startu systemu lub logowania użytkownika. Wyjście polecenia zapisywane jest do pliku startup_commands.txt na nośniku docelowym.

Zabezpieczenie poleceń autostartu
Get-WmiObject Win32_StartupCommand | Format-List * > $nosnik\startup_commands.txt 2>> "$nosnik\error.log"

Rejestry

Pliki hive rejestru zawierające konfigurację systemu, kont użytkowników i uruchamianych programów, modyfikowane przez atakujących w celu utrzymania dostępu.

Zabezpieczenie plików rejestrów

Należy zapisać kolejno cztery główne gałęzie rejestru maszyny lokalnej (HKLM): SAM, SYSTEM, SOFTWARE oraz SECURITY. Polecenie reg save odczytuje rejestry prosto z pamięci, dzięki czemu omija blokadę plików w użyciu i zabezpiecza ich aktualny stan. Ostatni krok to zabezpieczenie rejestru aktualnie zalogowanego użytkownika (HKCU).

reg save HKLM\SAM $nosnik\SAM 2>> "$nosnik\error.log"
reg save HKLM\SYSTEM $nosnik\SYSTEM 2>> "$nosnik\error.log"
reg save HKLM\SOFTWARE $nosnik\SOFTWARE 2>> "$nosnik\error.log"
reg save HKLM\SECURITY $nosnik\SECURITY 2>> "$nosnik\error.log"
reg save HKCU $nosnik\HKCU 2>> "$nosnik\error.log"

Pliki Prefetch

Pliki Prefetch wskazujące programy uruchamiane w systemie wraz ze ścieżkami i liczbą uruchomień.

Zabezpieczenie plików Prefetch

Należy skopiować wszystkie pliki z katalogu C:\Windows\Prefetch na nośnik docelowy.

Zabezpieczenie plików Prefetch
$dst = "$nosnik\Prefetch";New-Item -ItemType Directory -Path $dst -Force | Out-Null;Copy-Item -Path "C:\Windows\Prefetch\*" -Destination $dst -Recurse -Force 2>> "$nosnik\error.log"

Historia poleceń

Pliki historii powłok użytkowników pozwalające odtworzyć kroki podjęte przez atakującego po uzyskaniu dostępu.

Zabezpieczenie historii poleceń programu PowerShell

Należy zabezpieczyć pliki historii PSReadLine wszystkich użytkowników urządzenia. Polecenie iteruje po katalogach profili w C:\Users, dla każdego sprawdza obecność katalogu PSReadLine i kopiuje wszystkie pliki *_history.txt na nośnik docelowy, dodając do nazwy pliku nazwę użytkownika np. jan_ConsoleHost_history.txt. Profile bez katalogu PSReadLine (np. Public) są pomijane automatycznie. Zabezpieczone pliki zapisywane są na nośniku docelowym.

foreach($u in (Get-ChildItem C:\Users -Directory -ErrorAction SilentlyContinue)){ $p = "$($u.FullName)\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine"; if(Test-Path $p){ foreach($f in (Get-ChildItem "$p\*_history.txt" -File -ErrorAction SilentlyContinue)){ Copy-Item $f.FullName "$nosnik\$($u.Name)_$($f.Name)" } } } 2>> "$nosnik\error.log"

Zabezpieczenie historii poleceń powłoki CMD

Polecenie doskey /history działa wyłącznie w oknie cmd, w którym wpisywano polecenia; po jego zamknięciu historia ulega usunięciu. Zmienna $nosnik nie jest dostępna w powłoce CMD, dlatego w poleceniu należy podać pełną ścieżkę nośnika docelowego (w przykładzie F:\Sekretariat-PC).

doskey /history > F:\Sekretariat-PC\historia_cmd.txt 2>> F:\Sekretariat-PC\error_%COMPUTERNAME%.log

Listing plików

Metadane wszystkich plików pozwalające zbudować oś czasu zmian i zlokalizować niepożądane pliki.

Zabezpieczenie listingu plików

Poniższe polecenia zabezpieczają metadane plików na stałych wolumenach urządzenia, zasoby sieciowe, napędy oraz urządzenia przenośne są pomijane. Wynik zapisywany jest w postaci pliku CSV, co umożliwia późniejsze sortowanie, filtrowanie i budowanie osi czasu. Błędy dostępu do chronionych plików i katalogów zapisywane są osobno w dzienniku błędów error.log.

Zabezpieczenie listingu plików
$err = @(); $files = foreach($d in (Get-Volume | Where-Object {$_.DriveLetter -and $_.DriveType -eq 'Fixed'}).DriveLetter){ Get-ChildItem -Path "${d}:\" -Recurse -File -Force -ErrorAction SilentlyContinue -ErrorVariable +err }; $files | Select-Object FullName, Length, CreationTime, LastAccessTime, LastWriteTime, Attributes | Export-Csv -Path "$nosnik\lista_plikow.csv" -NoTypeInformation -Encoding UTF8; $err | Out-File -FilePath "$nosnik\error.log" -Encoding utf8

Zakończenie procedury

Należy zakończyć nagrywanie transkryptu sesji PowerShell.

Zakończenie transkryptu
Stop-Transcript

Należy utworzyć archiwum z zabezpieczonymi danymi, ułatwi to ich przesyłanie i przechowywanie.

Tworzenie archiwum
Compress-Archive -Path "$nosnik\*" -DestinationPath "$nosnik\${env:COMPUTERNAME}_zabezpieczenie.zip"

Warning

Przed rozpoczęciem procedury zabezpieczania danych z kolejnego urządzenia należy przesłać archiwum zabezpieczenie.zip do analizy i wyczyścić nośnik.

Ostatnia aktualizacja artykułu: 2026-09-02.