Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Tajemnice SAM (Security Account Manager) — resetowanie hasła systemu Windows

Hasło – jest to nieoceniony wytwór naszej nowoczesnej informatycznej cywilizacji. Haseł używamy wszędzie – przy uzyskiwaniu dostępu do różnych usług internetowych, przy logowaniu do komputera. Reguły tworzenia dobrych haseł raczej każdy zna. Wiadomo, że dobre hasło powinno mieć kilkanaście znaków, duże i małe litery, cyfry i znaki specjalne. Najlepiej też, żeby wszędzie mieć różne hasła (inne do logowania do systemu operacyjnego, inne do Facebooka itd.). Pewnie niejednej osobie na Ziemi zdarzyła się sytuacja, że ustawiła silne hasło do jakiegoś portalu, a potem go zapomniała.

Często zabezpieczamy dostęp do komputera, aby na przykład ktoś podczas naszej krótkiej nieobecności nie mógł skorzystać z naszego laptopa. Czasami też zdarza się taka sytuacja, że zapominamy hasła do naszego jedynego konta z uprawnieniami administratora w systemie. Co nas wtedy czeka? Stawianie systemu od nowa? Otóż nie. Jest co najmniej kilka sposobów na zresetowanie hasła. W tym wpisie spróbujemy zapoznać się z nimi zarówno od strony teoretycznej, jak i praktycznej.

Metoda I – dysk resetowania hasła

Sam Microsoft przewidział scenariusz, że użytkownik może zapomnieć hasła logowania do swojego komputera. W tym celu umożliwiono stworzenie tzw. dysku resetowania hasła. Istnieje jedna wada tej metody. Zwykle, dopiero po fakcie przypominamy sobie o tym, że warto byłoby posiadać taki dysk. Ale cóż, warto wiedzieć o tym sposobie gdyż ma on kilka niezaprzeczalnych zalet. Przede wszystkim, jeśli używamy szyfrowania plików (dla niewiedzących: PPM na plik/folder->Właściwości->Ogólne->Zaawansowane->Szyfruj zawartość, aby zabezpieczyć dane) to nie utracimy do nich dostępu po zresetowaniu hasła. Pozostałe dwie metody, które przedstawię w dalszej części niestety nie pozwalają na uzyskanie dostępu do zaszyfrowanych plików. Poza tym resetowanie hasła jest szybkie i przyjemne. Zastanówmy się teraz, jak działa dysk resetowania hasła, jak go utworzyć i jak go wykorzystać. Zaczynamy!

Przede wszystkim, do utworzenia dysku resetowania hasła potrzebujemy jakiegoś urządzenia pamięci masowej USB. Może to być np.: pendrive.

Aby utworzyć dysk resetowania hasła, wchodzimy do panelu sterowania. Następnie uruchamiamy „Konta użytkowników i Filtr rodzinny”. Wchodzimy do kategorii „Konta użytkowników”. W oknie po lewej stronie powinniśmy zauważyć opcję: „Utwórz dysk resetowania hasła”. Jedyną czynnością, o którą poprosi nas kreator, będzie podanie naszego aktualnego hasła oraz miejsce przechowywania klucza.

Po zakończeniu działania kreatora możemy wejść na nasz pendrive. Zauważymy tam tylko jeden plik – userkey.psw. To wszystko, co jest potrzebne, aby hasło do naszego konta zostało zresetowane.

Jak użyć utworzonego przed chwilą dysku resetowania hasła? Bardzo prosto. Po błędnym wprowadzeniu hasła pod polami na nazwę użytkownika i hasło pojawi się opcja: Resetuj hasło. Po kliknięciu, uruchomi się bardzo prosty i przyjemny kreator, który pozwoli nam utworzyć nowe hasło do naszego konta.

Metoda II – reset hasła za pomocą Offline NT Password Reset

Program ten poznałem niedawno. Możemy go pobrać ze strony http://pogostick.net/~pnh/ntpasswd/. Jest to bardzo przydatne narzędzie. Po nagraniu ściągniętego obrazu na płytę lub pendrive, możemy bez problemu z poziomu livecd/liveusb ingerować we wszelkie ustawienia kont użytkowników w systemie zainstalowanym na naszym komputerze. Możemy modyfikować ustawienia kontroli rodzicielskiej czy zablokować/odblokować konto. Nie wspominałbym o tym programie, gdyby nie posiadał fundamentalnej funkcji resetowania hasła. Zobaczmy, jak sprawdzi się to narzędzie w naszym przykładowym scenariuszu.

Po załadowaniu zawartości płyty program nas spyta o to, którą instalacją Windowsa będziemy się zajmować. Jeśli nasz dysk nie został wykryty, możemy załadować dodatkowe sterowniki z innego medium. W moim przykładzie jedyna instalacja Windowsa została bez problemu wykryta, więc wybieramy ją.
Po wybraniu instalacji musimy zadecydować, którą część rejestru chcemy wczytać. Jeśli będziemy chcieli jedynie zresetować hasło, wybieramy opcję 1 – „Password reset [sam]”. Opcja druga pozwoli nam m.in. na odczytanie klucza produktu. Ostatnia opcja, to połączenie dwóch poprzednich.

W naszym przykładzie wybieramy opcję pierwszą, gdyż chcemy jedynie zresetować hasło. Po krótkiej chwili oczekiwania będziemy musieli podjąć kolejną decyzję.

Mamy do wyboru następujące opcje: Możemy edytować dane użytkowników (opcja 1), wypisać dostępne w systemie grupy użytkowników (opcja 2), uruchomić bardzo prosty, konsolowy edytor rejestru (opcja 9) lub wyjść. Jeśli chcemy zresetować hasło, powinniśmy wybrać opcję 1.
Na kolejnym ekranie musimy wybrać konto, którym będziemy się zajmować. W tabelce mamy podany tzw. RID (Relative Identifier), czyli unikalny numer identyfikacyjny naszego konta, ostatnia część SID (Security Identifier). Konto wybieramy, wprowadzając jego numer RID z tabelki i wciskając enter. Zresetujmy np.: hasło do konta administratora. Jako rid podajemy więc 01f4.

Tu znajduje się sedno możliwości naszego programu – Dostępne do wyboru opcje to:

  1. Zresetowanie hasła użytkownika,
  2. Zablokowanie lub odblokowanie konta. Z nawiasu możemy odczytać informację, czy te konto jest aktualnie zablokowane czy odblokowane,
  3. Nadanie użytkownikowi uprawnień administratora,
  4. Dodanie użytkownika do grupy,
  5. Usunięcie użytkownika z grupy,
Aby zresetować hasło, powinniśmy najpierw wybrać opcję 1, a potem 2. Nie przejmuj się, że możesz zostać poinformowany o tym, że użytkownik nie posiada hasła – jest to mały defekt tego programu, jeśli używamy systemu nowszego od XP. Poprawny ciąg czynności wygląda tak, jak na powyższym screenie.

Aby zapisać zmiany, musimy wydać polecenie q. Cofniemy się do poprzedniego ekranu, na którym również musimy wpisać tą samą literkę. W końcu program zapyta nas, czy ma zapisać zmiany do rejestru systemu, ostrzegając o wszystkich możliwych tego konsekwencjach. Musimy nacisnąć y, a potem enter, aby zapisać zmiany.
Po zapisaniu zmian będziemy mogli odpowiedzieć na pytanie, czy chcemy od nowa uruchomić program czy nie. W tym momencie możemy nacisnąć klawisze CTRL+ALT+DELETE, aby ponownie uruchomić komputer i spróbować się zalogować do naszego systemu.

Teoria kont użytkowników w MS Windows

Znamy już dwie metody na reset hasła. Jednakże, pewnie zastanawiasz się, czy możliwy jest reset hasła bez używania absolutnie żadnych programów? Oczywiście że tak. Jednak, aby to zrobić, musisz posiąść trochę „tajnej” wiedzy, która pozwoli nam na wykonywanie takich czynności. Przede wszystkim musimy się dowiedzieć, gdzie Windows przechowuje informacje o kontach użytkowników. W szkole nauczyciele mówią o tym jedynie pobieżnie. Tam właśnie dowiedziałem się, że dane o kontach użytkowników przechowywane są w rejestrze systemu, a konkretnie w kluczu SAM (Security Account Manager). Z poziomu działającego systemu dostęp do tego klucza nie jest prosty, gdyż nawet administrator systemu nie ma wystarczających uprawnień.
Aby uzyskać dostęp do tej gałęzi, musimy uzyskać uprawnienia konta SYSTEM. Jest to, wbrew pozorom, dość proste. Musimy jedynie wygooglować (lub wybingować :) ) zestaw narzędzi PsTools. Po jego pobraniu możemy wypakować zawartość pobranego archiwum do katalogu Windows/System32. Dzięki temu bez modyfikowania zmiennych środowiskowych będziemy mieli dostęp do nowych poleceń z poziomu cmd.

Aby uruchomić edytor rejestru na uprawnieniach konta systemowego, uruchom cmd na uprawnieniach administratora, a następnie wprowadź polecenie:psexec –s –d –i regedit.exe

I voila – tym sposobem dostaliśmy się do najbardziej strzeżonej tajemnicy systemu Windows. Jednakże to jeszcze nie koniec naszych trudów, gdyż modyfikacja zawartych tu danych nie jest prosta. Przede wszystkim musimy poznać strukturę interesujących nas gałęzi rejestru. Dane o kontach użytkowników przechowywane są w kluczu \HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\. Jeśli rozwiniemy ten klucz, ujrzymy kilka podkluczy o dziwnie znajomych (jeśli przeczytałeś uważnie wcześniejszą część artykułu) nazwach.
Domyśliłeś się, co znaczą nazwy tych kluczy? (np.: 000001F4?) Jeśli nie, to ci podpowiem – są to po prostu wcześniej wspomniane numery RID, które w sposób unikatowy opisują dane konto w systemie. Wcześniej resetowaliśmy hasło do konta administratora, więc teraz zajmijmy się analizą mojego imiennego konta o numerze RID 00003F9.
Jak widzimy, po otworzeniu klucza ukazały nam się dwie wartości typu REG_BINARY o jakże wiele tłumaczących nazwach: F i V. Wydawałoby się, że nic z tego ciągu znaków nie można odczytać, ale nie przejmuj się, gdyż z moją pomocą odczytasz tajemnice klucza SAM.

Wartość F przechowuje informacje takie jak ilość nieudanych i udanych prób logowania, czas do odblokowania konta, datę, kiedy konto zostało utworzone, czas ostatniego logowania, typ konta itd.

Otwórzmy klucz F. Zauważmy, że dane zapisane są tu w systemie szesnastkowym. Oznacza to, że jeden bajt danych został opisany za pomocą dwóch liczb. Te spostrzeżenie jest bardzo potrzebne do tego, abyś mógł poprawnie odczytać tabelkę, która znajduje się nieco niżej.

Dane zawarte w tej wartości są co prawda ciekawe ale nie ma w nim nic, co by było przydatne do osiągnięcia naszego celu, a więc zresetowania hasła. Zajmijmy się więc drugą wartością – V. Tu znajdują się o wiele ciekawsze dane, dlatego w celu łatwiejszego zlokalizowania bitów podam także ich adres.

No dobra, teraz kilka słów wyjaśnień. To, co znajduje się w tej tabeli, jest to jakby nagłówek dla pozostałej części danych. Jeśli chcemy obliczyć dokładną lokalizację zapisu, np.: nazwy użytkownika, to do offsetu, który jest zapisany, musimy dodać wartość 0xCC.
Spróbujmy teraz odczytać nazwę użytkownika dla konta, które aktualnie modyfikujemy.
Pamiętaj, że bity zapisane są w kolejności Little Endian – to znaczy, że najbardziej znaczący (czyli pierwszy) bit znajduje się na końcu. Odczytajmy więc wartość naszego offsetu – 000000BC. Dodajmy do niego CC. Z tego działania otrzymamy adres 188. Zobaczmy więc, co kryje się pod właśnie ustalonym adresem 0x188.
Voila! Ustaliliśmy wszystko poprawnie. Właśnie pod tym adresem znajduje się nazwa użytkownika. Spójrzmy jeszcze, czy długość tej nazwy zgadza się z tym, co jest przechowywane w nagłówku. Długość nazwy to 0A, czyli 10 bajtów. Jak widzimy, wszystko się zgadza.

Trochę odeszliśmy od tematu, którym jest resetowanie hasła. Zastanówmy się jak przechowywane jest hasło w systemie Windows. W tabelce widzimy dwa tajemnicze pola: LM hash i NT hash. Obydwa ciągi są generowane na podstawie tego hasła, które podamy podczas tworzenia konta. Metoda ich generowania podobna jest do działania md5, tzn. nie da się z tego ciągu odzyskać pierwotnej postaci hasła. Aby zresetować hasło, wystarczy wyzerować długość obydwu ciągów. Windows będzie wtedy myślał, że hasło nigdy nie było ustawione.

Spróbujmy więc zresetować hasło ręcznie. Z tabelki możemy odczytać, że długość hash LM jest przechowywana pod adresem 0xa0 i ma długość 4 bajtów.

Miejsce zapisu długości obydwu hashy zaznaczyłem na screenie powyżej. Wystarczy wyzerować te bajty, które są otoczone czerwoną i czarną obwódką. Wtedy będziemy mogli zalogować się na konto, nad którym pracujemy, bez problemów.

Metoda III – reset hasła z poziomu dysku instalacyjnego systemu Windows

Skoro wiemy, gdzie i jak są przechowywane hasła w systemie Windows, możemy je zresetować bez użycia jakichkolwiek dodatkowych programów. Wystarczy zwykła płytka lub pendrive z instalatorem systemu. Teraz zobaczymy, jak przeprowadzić taką operację.
Przede wszystkim, musimy włożyć do napędu płytę z instalatorem systemu Windows i poczekać, aż środowisko Windows PE łaskawie się załaduje. Przechodzimy przez proces wyboru języka. Gdy dojdziemy do ekranu, gdzie widzimy duży przycisk Instaluj teraz!, wybieramy opcję „Napraw mój komputer”.

Instalator zacznie szukać zainstalowanych przez nas systemów operacyjnych. Klikamy w puste pole, aby odznaczyć nasz system, a następnie klikamy przycisk Dalej.

W oknie, które nam się pojawi, wybieramy wiersz poleceń, a następnie wydajemy polecenie regedit. Zostanie uruchomiony edytor rejestru. Zauważyłeś, że nie używaliśmy tym razem polecenia psexec? Wiersz poleceń uruchomiony w środowisku WinPE działa domyślnie na najwyższych możliwych uprawnieniach, dzięki czemu będziemy mogli bezproblemowo dobrać się do interesujących nas gałęzi rejestru.

Gdy widzimy już piękne i zacne okno edytora rejestru systemu Windows, Zaznaczamy dowolny korzeń (np.: HKEY_LOCAL_MACHINE czy HKEY_CLASSES_ROOT). Następnie klikamy kolejno Plik->Załaduj gałąź rejestru. Windows przechowuje cały swój rejestr w katalogu C:\Windows\system32\config. Tam właśnie znajduje się cel naszych poszukiwań. Kierujemy się więc do tego katalogu i zaznaczamy plik SAM. Edytor zapyta się nas jeszcze, pod jaką nazwą ma zamontować ową gałąź. Możemy wpisać cokolwiek – nie ma to żadnego znaczenia. Jeśli poprawnie wykonałeś wszystkie operacje, powinieneś ujrzeć coś podobnego, jak na screenie poniżej:

Dalszych kroków nie będę opisywał, gdyż będą analogiczne jak w poprzednim rozdziale.
Pamiętaj, aby po zakończeniu pracy odmontować gałąź, wybierając odpowiednią opcję z menu plik.

Słowem podsumowania – moje przemyślenia

Dzięki metodom, które powyżej dokładnie opisywałem, można bezproblemowo, w ciągu kilku minut uzyskać dostęp do dowolnego konta w systemie. Niekiedy może to uratować mnóstwo czasu, gdyż zwyczajna utrata hasła nie musi się kończyć formatowaniem dysku i potencjalną utratą danych. Jednak dwie ostatnie metody pozwalają przeciętnemu użytkownikowi nie tylko odzyskać dostęp do swoich danych. Może dzięki nim uzyskać nieautoryzowany wgląd do plików, do których przystępu mieć nie powinien. Wystarczy brak obserwacji potencjalnego delikwenta przez te kilka-kilkanaście minut. Oczywiście, jeśli dodatkowo dane są szyfrowane, nie będzie z nich żadnego pożytku, ale nikt z przeciętnych użytkowników komputera nie stosuje takich zaawansowanych metod. Tymi przemyśleniami kończę swój dzisiejszy wpis.
 

windows porady

Komentarze

0 nowych
  #1 04.02.2016 21:05

Bardzo dobrze napisane, pozdrawiam :)

tylko_prawda   10 #2 04.02.2016 21:11

Pewnie przejdzie na główną :)
"Metoda II – reset hasła za pomocą Offline NT Password Reset" Dzięki za pokazanie, sam mam problem z jedną z instalacji WinVista.
"Oczywiście, jeśli dodatkowo dane są szyfrowane, nie będzie z nich żadnego pożytku, ale nikt z przeciętnych użytkowników komputera nie stosuje takich zaawansowanych metod."
Na Ubuntu szyfruję, na Windowsie tylko najważniejsze dane.
EDIT: Może dodasz to do konkursu blogowego?
PS Zmień avatara, dzięki temu więcej osób to przeczyta.

Autor edytował komentarz.
clubber84   4 #3 05.02.2016 09:20

Druga metoda całkiem ciekawie wygląda, bo resetowanie hasła dla przeciętnego użytkownika to czarna magia - mimo pozornego skomplikowania w tej zabawie jest metoda.
Szczególnie, jeśli przeciętny użytkownik nie potrafi odkryć w systemie obszarów nie pozwalających przypadkowym osobom podejrzenia wrażliwych danych, jak właśnie hasła do kont systemowych, przy jednoczesnym "grzebaniu" w rejestrze systemowym.

Autor edytował komentarz.
sagraelski   6 #4 05.02.2016 10:11

Offline NT Password Reset - przydatna rzecz! Raz uratował mi d... :) Bardzo dobry wpis!

Lawstorant   6 #5 05.02.2016 10:44

O wiele prościej użyć graficznych programów zawartych w Hiren's Boot CD.

Jest też programik pod linuksa: "chntpw"

Shaki81 MODERATOR BLOGA  37 #6 05.02.2016 12:07

Logujemy się na konto gościa, aktywujemy konto Administratora, logujemy się na nie i usuwamy zapomniane hasło.

karol221-10   9 #7 05.02.2016 14:00

@Shaki81: Chyba że konto gościa jest wyłączone. Wtedy nie będzie się dało na nie zalogować.

Autor edytował komentarz.
jzaam   7 #8 05.02.2016 14:32

Z tego co pamiętam to w systemie win7 i win8 wystarczy uruchomić komputer z płyty czy pena (linuksa czy płyty instalacyjnej windowsa) i w katalogu windows/system32/ zamienić pliki ultiman.exe zamienić na cmd.exe.
Po restarcie kliknąć w oknie logowania na ikonę ułatwień dostępu i odpali się konsola: wpisać net user "nazwa użytkowanika" "nowe hasło". Nie dawno tak robiłem i działa.

  #9 05.02.2016 16:12

@Shaki81: Od kiedy z poziomu konta gościa można modyfikować inne konta użytkowników?

clubber84   4 #10 05.02.2016 16:40

@jzaam: A co, jak nie masz płyty/pena?

jzaam   7 #11 05.02.2016 16:48

@clubber84: Pobranie z sieci dowolnej dystrybucji Linuksa i wypalenie go na płytę do skomplikowanych nie należy.

clubber84   4 #12 05.02.2016 16:52

@jzaam: Ale tutaj jest mowa o zwykłych użytkownikach systemu od M$, stroniących od otwartych dystrybucji na zasadzie: "To dla mnie czarna magia, ja się nie znam, proszę mi to naprawić".

Autor edytował komentarz.
jzaam   7 #13 05.02.2016 17:10

@clubber84: Masz rację, lecz jak dla mnie zwykłego użytkownika grzebanie w rejestrze jest bardziej skomplikowane. Z tego co przeczytałem mowa jest o resetowaniu hasła, więc warto też wspomnieć o innych metodach. Poza tym jak by nie było warto znać kilka dróg prowadzących do rozwiązania jednego problemu. Wówczas można wybrać najbardziej skuteczny, prosty czy wygodny dla danej osoby. Nie chcę mi się grzebać w rejestrze to odpalę kompa z Linuksa i podmienię pliki, a być może jestem zapobiegawczy i wykonam sobie dysk resetowania hasła.

clubber84   4 #14 05.02.2016 17:13

@jzaam: O, teraz mówisz jak człowiek - w końcu lepiej zapobiegać, niż leczyć i taki dysk będzie miał palmę pierwszeństwa w razie sytuacji zapomnienia/utraty hasła. :D

Pozdrawiam

parranoya   8 #15 06.02.2016 08:26

@Shaki81: To z konta Gość można aktywować konto Administratora z takimi uprawnieniami? To po co w ogóle konto Gość? Szok i niedowierzanie...

  #16 06.02.2016 08:40

Metoda 4 - Cichy Boot Disk
http://www.cichy.net.pl/cichybootdisk.html

TadueusTaD   7 #17 06.02.2016 09:49

Jeszcze istnieje program polskiego magika, Kon-Boot, który omija procedurę sprawdzania hasła, modyfikując wszystko "w locie". Jest płatny, ale robi wrażenie :D

psejta3   4 #18 06.02.2016 12:04

Mi do tego wystarczy tylko Hirens :) I już jestem zalogowany na Windowsa na Enter :D Nie działa tylko z Windows10 a szkoda bo staje się on coraz bardziej popularny ;)

Shaki81 MODERATOR BLOGA  37 #19 06.02.2016 13:44

@parranoya: Jak wiesz jak to zrobić to i z konta gościa można uzyskać pełne prawa do systemu, taki jest Windows niestety.

edelmann   11 #20 07.02.2016 20:28

psexec –s –d –i regedit.exe - nie można znaleźć określonego pliku. Wszystko wypakowałem do System32. Oczywiście mam na myśli to że po wpisaniu komendy wyskakuje mi komunikat.

Autor edytował komentarz.
  #21 09.02.2016 08:26

@Shaki81: Dlatego konto gość jest domyślnie w Windows wyłączone.

karol221-10   9 #22 13.02.2016 11:01

@edelmann: Zawsze możesz podać pełną ścieżkę do pliku (np.: C:\Windows\system32\psexec.exe). Ale po wypakowaniu do system32 powinno działać, bo ten katalog zwykle jest w zmiennej środowiskowej PATH ...

bachus   19 #23 04.03.2016 14:41

Ja jeszcze wspomnę o świetnym narzędziu: Koon-Bot - omija hasło bez jego zmiany. Dysk oczywiście nie może być zaszyfrowany.

  #24 19.05.2016 01:32

hirens to super narzędzie, ale mam nieco inny problem. hasło zostało wcześniej zablokowane i po jego zmianie w NTPWEdit windows zażyczył sobie podanie starego hasła. czy ktoś ma pomysł jak sobie z tym poradzić?

madus   4 #25 05.06.2016 13:34

Aby szybciej uruchomić wiersz poleceń z dysku instalacyjnego Windows wystarczy naciśnąć Shift+F10 :)