Jak dostać się do Windows 7/8/10 gdy ktoś zapomniał hasła?
Załóżmy, że zgłosił się do nas po pomoc znajomy, który zapomniał hasła do własnego laptopa z Windows 7/8/10. Ta osoba nie tylko chciałaby odzyskać swoje ważne pliki, ale również (jeśli to możliwe) życzyłaby sobie uniknięcia konieczności reinstalacji całego systemu operacyjnego, sterowników i przede wszystkim tak wielu używanych w komputerze aplikacji.
Teoretycznie bez hasła niewiele da się zrobić; można oczywiście użyć ophcracka i tęczowych tablic (czyli tak naprawdę metody brute force), ale jest to dla nas niewygodne bo po prostu dość czasochłonne. My, zgodnie z zasadą brzytwy Ockhama, sięgniemy po najprostsze rozwiązanie i wykorzystamy tylko Linuxa oraz dwa wbudowane w Windowsa programy. Spróbujemy w ogóle obejść konieczność złamania hasła i dostać się na podane konto inną drogą, w dodatku w przeciągu co najwyżej kilku minut.
Poradnik ten służy jedynie celom edukacyjnym, nie ponoszę odpowiedzialności za jakiekolwiek rezultaty niewłaściwego wykorzystania zawartych tutaj technik testowania zabezpieczeń.
Zacznij od Linuxa
Linux jest odpowiedzią na nasz problem, ponieważ pozwala zignorować najprostsze zabezpieczenia profilu z Windowsa. Skorzystam dziś z dystrybucji Linuxa o nazwie Puppy (ang. szczeniak), a w zasadzie jego release'u o nazwie Slacko 5.5. Dlaczego akurat to distro? Bo jest to bardzo lekka wersja systemu (obraz ISO waży zaledwie 164MB) - można go pobrać stąd. Dodatkowo ten Linux przy uruchomieniu jest ładowany w całości do pamięci RAM. W praktyce oczywiście może to być jakikolwiek Linux obsługujący LiveCD.
Wystarczy wypalić pobrany obraz ISO na płytę programem do nagrywania płyt albo wbudowanym narzędziem Windows (prawy klik na plik ISO):

Jeśli jednak wolisz zabootować Linuxa z pendrive'a, to potrzebny będzie program YUMI (dostępny tutaj). Wkładamy pendrive'a (oczywiście użyjmy takiego, który nie zawiera ważnych danych!) i uruchamiamy pobrany plik YUMI. Potwierdzamy przeczytanie licencji, podajemy literę napędu naszej pamięci przenośnej, z listy wybieramy Slacko Puppy (chyba że używamy innego Linuxa), a potem wskazujemy pobrany plik ISO i czekamy na dokończenie procesu tworzenia napędu.

Uruchamiamy komputer naszego zapominalskiego znajomego bootując go z napędu DVD albo z pendrive'a (dokonujemy wyboru w boot menu - najczęściej uruchamiamy je na ekranie startowym komputera klawiszem F12, albo ustawiamy w BIOSie odpowiedni boot order). Naszym oczom ukazuje się jakże uroczy ekran startowy Slacko:

a już po krótkiej chwili znajdujemy się na pulpicie systemowym. Wystarczy kliknąć OK na poniższym oknie powitalnym (chyba, że mamy ochotę dostosować niektóre ustawienia).
Skopiujmy z komputera ważne pliki
Na wszelki wypadek (choć nie jest to krok absolutnie potrzebny) skopiujemy na pendrive'a ważne dane - trzeba jedynie zamontować dysk systemowy z Windowsem i będziemy mogli zupełnie swobodnie przeglądać jego zawartość. Jeszcze mała uwaga: domyślnie w Puppy to pojedyncze (a nie podwójne) kliknięcie otwiera folder/program; szkoda tracić czasu na zmienianie tego, te parę minut jakoś się przemęczymy. Dysk montujemy klikając pojedynczo ikonkę z pulpitu:

W nowo otwartym oknie należy jedynie odnaleźć dysk systemowy zawierający Win7:

Naszym oczom ukazuje się zawartość dysku systemowego, możemy zbackupować ważne pliki (na przykład przekopiować na pendrive'a):

W zasadzie, gdyby chodziło tylko o odzyskanie plików, to nasza praca w tym momencie się kończy. Jednak nasz znajomy nie ma ochoty tracić kilku godzin na reinstalację wszystkiego i raczej nie będzie korzystał na co dzień z mini-dystrybucji Linuxa :)
Pora oszukać ekran logowania Windows
Przypominam, że póki co "jedynie" uratowaliśmy ważne pliki. Wciąż nie znamy hasła, a jego łamanie z użyciem metod brute force'owych może okazać się czasochłonne. Z pomocą przychodzi nam funkcja Windowsa o nazwie "klawisze trwałe". Jeżeli korzystasz teraz z siódemki, naciśnij szybko pięć razy klawisz Shift. Na ekranie ukaże się prompt z pytaniem czy chcesz włączyć wspomnianą funkcję:

Co ciekawe, skrót klawiaturowy 5-krotnego naciśnięcia Shifta zadziała także na ekranie logowania do systemu. I to będzie nasza furtka. Za uruchomienie klawiszy trwałych w siódemce odpowiada program sethc.exe, znajdujący się w folderze C:WindowsSystem32. Starając się myśleć out of the box, możemy zapytać głośno samych siebie: a co gdyby podmienić ten plik na cmd.exe? Gdy użyjemy 5xShift podczas logowania to Windows pomyśli, że uruchomił nam klawisze trwałe, a tak naprawdę poda nam na tacy konsolę administratora z pełnymi prawami :-) Korzystając z niej ustawimy nowe hasło do konta, zastępując to zapomniane. Zatem do dzieła - w miejsce sethc.exe podstawimy cmd.exe. Oczywiście zrobimy to z poziomu Linuxa, bo do Windowsa bez hasła nie wejdziemy. Przechodzimy do folderu C:WindowsSystem32 i odnajdujemy sethc.exe:

Tworzymy kopię zapasową tego pliku (bo zostanie docelowo zastąpiony) klikając na nim prawym przyciskiem myszki:

Następnie również posługując się prawym przyciskiem myszki usuwamy oryginał sethc.exe:

Pozostaje już tylko utworzyć kopię cmd.exe o nazwie sethc.exe (zwróć uwagę, że nie usuwam oryginału cmd.exe):

Resetujemy laptopa usuwając z napędu płytę z Linuxem. Gdyby siódemka zapytała o tryb uruchomienia wybieramy po prostu: Uruchom system Windows normalnie. Czekamy na pojawienie się ekranu logowania:

Jak gdyby nigdy nic, naciskamy szybko pięć razy klawisz Shift i cieszymy się widokiem konsoli systemowej:

Pora zastąpić zapomniane hasło nowym używając polecenia:
net user [nazwa_uzytkownika] [nowe_haslo_do_konta]

Zamykamy konsolę, wpisujemy ustawione hasło i logujemy się bez najmniejszego problemu na konto. Korzystając już bezproblemowo z Windowsa, dzięki utworzonej wcześniej kopii przywracamy normalną sytuację z plikiem sethc.exe (bo nieładnie jest zostawiać tak ewidentne backdoory w cudzych komputerach) :)
Komentarze