Odstranění hesla Administrátora ve Windows (chntpw)

Z Milan Kerslager
Verze z 22. 9. 2022, 21:06, kterou vytvořil Milan.Kerslager (diskuse | příspěvky) (Použití chntpw: styl)
Přejít na: navigace, hledání

!!! ČLÁNEK NENÍ DOKONČEN !!!

Hesla jsou ve Windows uložena v databázi SAM (Security Accounts Manager). Pokud zapomenete heslo správce systému, je možné pomocí přímé změny této databáze heslo odstranit. Je možné též účet odemknout po hodně pokusech o přihlášení špatným heslem nebo udělat obyčejného uživatele správce (zařadit ho do skupiny Administrators). K tomu je možné použít nástroj chntpw, který je zdarma a funguje v Linuxu. Podstatou metody je tedy nastartovat systém s USB flash paměti nebo CD/DVD média, na kterém je zapsána malá linuxová distribuce, která obsahuje zmíněný nástroj chntpw.

Bootovací médium

Nejprve vytvoříme médium, ze kterého počítač nastartujeme. Jednou z možností je použít SystemRescueCD z adresy https://www.system-rescue.org, odkud stáhněte 64bitový ISO soubor (amd64). Varianta pro 32bitový systém je vhodná jen pro úplně nejstarší počítače.

Vytvoření CD/DVD

Ve Windows je možné vypálit ISO přímo na CD/DVD tak, že na něj kliknete pravým tlačítkem myši a vyberete Vypálit bitovou kopii disku.

Vytvoření USB média

Bootovací USB médium je možné vytvořit pomocí nástroje Rufus, který stáhnete z adresy https://rufus.ie (použijte portable variantu, kterou není potřeba instalovat).

Spusťte program RUFUS, zasuňte USB flash disk (POZOR!!! VŠECHNA DATA BUDOU SMAZÁNA!!!) a stisknutím tlačítka VYBRAT vyberte stažené ISO s distribucí SystemRescueCD. Podle typu (resp. stáří) vašeho počítače nastavte buď:

  • Oddíl typu: MBR a Cílový systém: BIOS pro starší počítače
  • Oddíl typu: GPT a Cílový systém: UEFI pro novější počítače (podporují UEFI a Secure boot)

Boot počítače z média

Aby bylo možné nastartovat z CD/DVD nebo USB flash, je potřeba v nastavení Setupu (tzv. BIOS) počítače nastavit, aby systém byl zaveden prioritně z vašeho média (tj. CD/DVD nebo USB flash paměť). Buď je možné použít stisk klávesy při startu, která umožní vybrat bootovací médium (např. u notebooků Lenovo je to klávesa F12, ale může to být klávesa F9 nebo F10 nebo úplně jiná). Nebo je nutné v Setupu nastavit, že prvním médiem bude právě CD/DVD (nebo USB).

Každý počítač (resp. jeho základní deska) se chová jinak a jinak se nastavuje, takže nelze dát univerzální návod. Použijte Google (hledejte například: Jak nastartovat notebook Lenovo z USB nebo How to boot Lenovo notebook from USB).

Secure boot

V novějších počítačích s UEFI je nutné v Setupu vypnout Secure boot, jinak se SystemRescueCD nezavede. Nastavení je opět velmi variabilní a záleží na konkrétní základní desce (resp. typu notebooku).

Start SystemRescueCD

Zavaděč SystemRescueCD se nejprve ohlásí na modré obrazovce s menu. Ponechte první položku a buď uplynutím času nebo stisknutím klávesy Enter spusťte zavádění (start) linuxového systému SystemRescueCD.

Odlišnost Linux od Windows

Adresáře a soubory jsou ve Windows oddělovány znakem zpětné lomítko (\), zatímco v Linuxu se pro stejný účepo používá dopředné lomítko (/).

Použití chntpw

Nástroj chntpw umí pracovat se SAM databází uživatelů a hesel, která je obvykle umístěna v souboru C:\Windows\system32\config\SAM.

Připojení oddílu s Windows

V Linux je nejprve nutné zjistit, jaký oddíl na pevném disku obsahuje instalaci Windows a tedy i výše zmíněný soubor SAM. Kvůli tomu si nejprve vypíšeme všechny oddíly na pevném disku. Pevné disky jsou v Linuxu reprezentovány speciálními blokovými zařízeními. První pevný disk v počítači se jmenuje /dev/sda, druhý /dev/sdb atd. Jednotlivé oddíly jsou označeny čísly, takže první oddíl na prvním disku se jmenuje /dev/sda1 a čtvrtý oddíl na druhém disku bude /dev/sdb4.

Všechny oddíly na všech discích lze vypsat příkazem: fdisk -l

Vypsat jen řádky s textem Disk lze příkazem (svislá čára je tzv. trubka, která se na anglické klávesnici píše pomocí SHIFT a klávesy obvykle umístěné v blízkosti klávesy Enter, na české klávesnici je to pravý Alt+q):

# fdisk -l | grep Disk
Disk /dev/sda: 465.76 GiB, 500107862016 bytes, 976773168 sectors
Disk model: Samsung SSD 870 
Disklabel type: gpt
Disk identifier: 41DD3463-2DD2-4266-B7FD-D8C3E98F1CAC
Disk /dev/sdb: 14.32 GiB, 15376000000 bytes, 30031250 sectors
Disk model: Ultra USB 3.0   
Disklabel type: dos
Disk identifier: 0x8b88e996
Disk /dev/loop0: 645 MiB, 676331520 bytes, 1320960 sectors

Z výše uvedeného výpisu vyplývá, že v počítači jsou přítomny dva disky: sda, sdb: První je 500 GB SSD Samsung (resp. 465.76 GiB), druhý je USB flash disk o kapacitě 16 GB (resp. 14,32 GiB) ze kterého nastartoval systém SystemRescueCD. Podíváme se na rozdělení prvního disk (sda). Pokud je disk rozdělen na oddíly pomocí MBR tabulky, mohli bychom vidět něco podobného, jako je následující příklad výpisu:

# fdisk -l
Disk /dev/sda: 465.76 GiB, 500107862016 bytes, 976773168 sectors
Disk model: ST500LM000-SSHD-
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xd9fa2484

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1  *         2048   1026047   1024000   500M  7 HPFS/NTFS/exFAT
/dev/sda2         1026048 407967033 406940986   194G  7 HPFS/NTFS/exFAT
/dev/sda3       407967744 409602047   1634304   798M 27 Hidden NTFS WinRE
/dev/sda4       409602048 976769023 567166976 270.4G  7 HPFS/NTFS/exFAT

Pokud by šlo o disk s GPT tabulkou, pak bychom mohli vidět tento výstup:

# fdisk -l /dev/sda
Disk /dev/sda: 465.76 GiB, 500107862016 bytes, 976773168 sectors
Disk model: Samsung SSD 870 
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 41DD3463-2DD2-4266-B7FD-D8C3E98F1CAC

Device         Start       End   Sectors   Size Type
/dev/sda1       2048    206847    204800   100M EFI System
/dev/sda2     206848    239615     32768    16M Microsoft reserved
/dev/sda3     239616 975725128 975485513 465.1G Microsoft basic data
/dev/sda4  975726592 976771071   1044480   510M Windows recovery environment

V prvním z výše uvedených výpisů je systémový disk (ve Windows je to obvykle disk C:) na druhém oddílu (partition) s označením sda2, protože je dostatečně velký a je typu NTFS. V druhém výpisu je systémovým diskem třetí oddíl (Microsoft basic data) s označením sda2. Abychom mohli se zamýšleným oddílem pracovat, vytvoříme si adresář disk a do něj oddíl sda2 (nebo sda3) připojíme a zkontrolujeme jeho obsah. Měli bychom (kromě jiného) vidět systémový adresář Windows

# mkdir disk
# ntfs-3g /dev/sda3 disk
# ls disk
'$Recycle.Bin'  'Documents and Settings'   hiberfil.sys   pagefile.sys   ProgramData     'Program Files (x86)'   swapfile.sys                 Users
'$WinREAgent'    DumpStack.log.tmp         Intel          PerfLogs      'Program Files'   Recovery              'System Volume Information'   Windows

Použijeme nástroj chntpw, otevřeme s ním SAM databázi a objeví se následující nabídka:

# chntpw -i win/Windows/System32/config/SAM
chntpw version 1.00 140201, (c) Petter N Hagen
Hive <disk/Windows/System32/config/SAM> name (from header): <\SystemRoot\System32\Config\SAM>
ROOT KEY at offset: 0x001020 * Subkey indexing type is: 686c <lh>
File size 65536 [10000] bytes, containing 6 pages (+ 1 headerpage)
Used for data: 315/29928 blocks/bytes, unused: 18/6744 blocks/bytes.

<>========<> chntpw Main Interactive Menu <>========<>

Loaded hives: <disk/Windows/System32/config/SAM>

 1 - Edit user data and passwords
 2 - List groups
     - - -
 9 - Registry editor, now with full write support!
 q - Quit (you will be asked if there is something to save)

What to do? [1] -> 1

Zvolíme nabídku 1 (napíšeme jedničku a zmáčkneme klávesu Enter, přičemž na anglické klávesnici nepoužijeme klávesu SHIFT):

===== chntpw Edit User Info & Passwords ====

| RID -|---------- Username ------------| Admin? |- Lock? --|
| 01f4 | Administrator                  | ADMIN  | dis/lock |
| 01f7 | DefaultAccount                 |        | dis/lock |
| 01f5 | Guest                          |        | dis/lock |
Cannot find value <\SAM\Domains\Account\Users\FFFFFFFF\V>

Please enter user number (RID) or 0 to exit: [1] 01f4

Zapíšeme číslo 01f4, což je RID označení uživatele Administrator (můžeme zapsat i jiné číslo podle toho, který účet chceme odemknout).

================= USER EDIT ====================

RID     : 0500 [01f4]
Username: Administrator
fullname: 
homedir : 

00000220 = Administrators (which has 2 members)

Account bits: 0x0211 =
[X] Disabled        | [ ] Homedir req.    | [ ] Passwd not req. | 
[ ] Temp. duplicate | [X] Normal account  | [ ] NMS account     | 
[ ] Domain trust ac | [ ] Wks trust act.  | [ ] Srv trust act   | 
[X] Pwd don't expir | [ ] Auto lockout    | [ ] (unknown 0x08)  | 
[ ] (unknown 0x10)  | [ ] (unknown 0x20)  | [ ] (unknown 0x40)  | 

Failed login count: 0, while max tries is: 0
Total  login count: 0

- - - - User Edit Menu:
1 - Clear (blank) user password
2 - Unlock and enable user account [probably locked now]
3 - Promote user (make user an administrator)
4 - Add user to a group
5 - Remove user from a group
q - Quit editing user, back to user select
Select: [q] > 1

Zvolíme číslo 1, čímž dojde k nastavení prázdného hesla.

Password cleared!
================= USER EDIT ====================

RID     : 0500 [01f4]
Username: Administrator
fullname: 
homedir : 

00000220 = Administrators (which has 2 members)

Account bits: 0x0211 =
[X] Disabled        | [ ] Homedir req.    | [ ] Passwd not req. | 
[ ] Temp. duplicate | [X] Normal account  | [ ] NMS account     | 
[ ] Domain trust ac | [ ] Wks trust act.  | [ ] Srv trust act   | 
[X] Pwd don't expir | [ ] Auto lockout    | [ ] (unknown 0x08)  | 
[ ] (unknown 0x10)  | [ ] (unknown 0x20)  | [ ] (unknown 0x40)  | 

Failed login count: 0, while max tries is: 0
Total  login count: 0
** No NT MD4 hash found. This user probably has a BLANK password!
** No LANMAN hash found either. Try login with no password!

- - - - User Edit Menu:
1 - Clear (blank) user password
2 - Unlock and enable user account [probably locked now]
3 - Promote user (make user an administrator)
4 - Add user to a group
5 - Remove user from a group
q - Quit editing user, back to user select
Select: [q] > 2

Zvolíme číslo 2, čímž dojde k odemčení účtu:

Unlocked!
================= USER EDIT ====================

RID     : 0500 [01f4]
Username: Administrator
fullname: 
homedir : 

00000220 = Administrators (which has 2 members)

Account bits: 0x0210 =
[ ] Disabled        | [ ] Homedir req.    | [ ] Passwd not req. | 
[ ] Temp. duplicate | [X] Normal account  | [ ] NMS account     | 
[ ] Domain trust ac | [ ] Wks trust act.  | [ ] Srv trust act   | 
[X] Pwd don't expir | [ ] Auto lockout    | [ ] (unknown 0x08)  | 
[ ] (unknown 0x10)  | [ ] (unknown 0x20)  | [ ] (unknown 0x40)  | 

Failed login count: 0, while max tries is: 0
Total  login count: 0
** No NT MD4 hash found. This user probably has a BLANK password!
** No LANMAN hash found either. Try login with no password!

- - - - User Edit Menu:
 1 - Clear (blank) user password
(2 - Unlock and enable user account) [seems unlocked already]
 3 - Promote user (make user an administrator)
 4 - Add user to a group
 5 - Remove user from a group
 q - Quit editing user, back to user select
Select: [q] > q

Zvolíme volbu q pro opuštění menu:

<>========<> chntpw Main Interactive Menu <>========<>

Loaded hives: <disk/Windows/System32/config/SAM>

 1 - Edit user data and passwords
 2 - List groups
     - - -
 9 - Registry editor, now with full write support!
 q - Quit (you will be asked if there is something to save)

What to do? [1] -> q

Zvolíme opět volbu q pro opuštění programu:

Hives that have changed:
#  Name
0  <disk/Windows/System32/config/SAM>
Write hive files? (y/n) [n] : y

Potvrdíme záměr zapsat databázi účtů na disk (y a Enter):

0  <disk/Windows/System32/config/SAM> - OK

Nyní můžeme systém restartovat do Windows zadáním příkazu reboot a zavedením systému Windows z pevného disku.