Nahrazení hesla v Linuxu

Hamparle

  • ****
  • 365
  • junior developer ucho
    • Zobrazit profil
    • E-mail
Nahrazení hesla v Linuxu
« kdy: 15. 10. 2020, 10:34:41 »
Když mám nainstalovaný linux, kterému jsem zapomněl heslo pro svůj účet i pro root (uživatele, ne web o počítačích), a samozřejmě mám přístup k počítači včetně úložiště, jde nějak zprovoznit do použivatelného stavu, aby se tam šlo přihlásit? Například :
-provést novou instalaci (když vím o jakou jde distribuci) na další HDD a pak obsah disku přepsat tím existujícím mimo pár klíčových souborů (různé /etc/passwd, v tom se nevyznám)
- natvrdo nějak zeditovat obsah souboru obsahující login údaje (to /etc/passowords)
« Poslední změna: 15. 10. 2020, 11:34:51 od Petr Krčmář »


alex6bbc

  • *****
  • 1 637
    • Zobrazit profil
    • E-mail
Re:nahrazení hesla linux
« Odpověď #1 kdy: 15. 10. 2020, 10:39:26 »
najdi si jak nabootovat do single mode, premountovat disk i pro zapis a vymazat hash hesla.

Hamparle

  • ****
  • 365
  • junior developer ucho
    • Zobrazit profil
    • E-mail
Re:nahrazení hesla linux
« Odpověď #2 kdy: 15. 10. 2020, 11:21:11 »
a když grub není? předpokládám, že single mode je nějaká volba v bootparametrech...

ten zapis a vymazat hesla musím dělat z aktuálního systému nebo to jde "offline" (klidně i z jiného počítače, kde je připojen disk)

Re:Nahrazení hesla v Linuxu
« Odpověď #3 kdy: 15. 10. 2020, 11:36:05 »
Pokud není Grub, tak se systém zavádí nějakým jiným zavaděčem a neviděl jsem situaci, že by nebylo možné jádru předat parametr.

Každopádně je samozřejmě možné heslo nastavit i offline, je zahašované v souboru /etc/shadow a ten záznam se dá vytvořit třeba pomocí mkpasswd. Stačí pak nahradit ten řádek novým a heslo je změněno.

RDa

  • *****
  • 2 674
    • Zobrazit profil
    • E-mail
Re:Nahrazení hesla v Linuxu
« Odpověď #4 kdy: 15. 10. 2020, 11:41:10 »
Proc tak komplikovane... vytahnu disk s instalaci a zmenim v nem heslo.
Kód: [Vybrat]
sudo bash
mount /dev/zapomenuto1 /mnt/x
chroot /mnt/x /bin/bash
passwd


Re:Nahrazení hesla v Linuxu
« Odpověď #5 kdy: 15. 10. 2020, 20:55:49 »
ze zvědavosti, o jaké distro se jedná?

Re:Nahrazení hesla v Linuxu
« Odpověď #6 kdy: 16. 10. 2020, 00:20:11 »
Pokud není Grub, tak se systém zavádí nějakým jiným zavaděčem a neviděl jsem situaci, že by nebylo možné jádru předat parametr.

Pokud zavádíte kernel přímo z UEFI (třeba přes efistub), tak mu parametry buď nemáte jak předat (musíte je nastavit přímo v jádře přes CONFIG_CMDLINE), a nebo je nemáte jak změnit (protože jsou zakompilovány do unified kernel image a firmware PC to zrovna neumí).

k3dAR

  • *****
  • 2 989
  • porad nemam telo, ale uz mam hlavu... nobody
    • Zobrazit profil
    • E-mail
Re:Nahrazení hesla v Linuxu
« Odpověď #7 kdy: 16. 10. 2020, 03:35:08 »
Pokud není Grub, tak se systém zavádí nějakým jiným zavaděčem a neviděl jsem situaci, že by nebylo možné jádru předat parametr.

Pokud zavádíte kernel přímo z UEFI (třeba přes efistub), tak mu parametry buď nemáte jak předat (musíte je nastavit přímo v jádře přes CONFIG_CMDLINE), a nebo je nemáte jak změnit (protože jsou zakompilovány do unified kernel image a firmware PC to zrovna neumí).

nebi pri pouziti zavadece SicherBoot a aktivniho SecureBoot umyslne brani upravy boot parametru...

SB

  • ****
  • 347
    • Zobrazit profil
    • E-mail
Re:Nahrazení hesla v Linuxu
« Odpověď #8 kdy: 16. 10. 2020, 11:48:31 »
Tak potom je nejjednodušší připojit disk jinam, nebo nabootovat z klíčenky a soubor /etc/shadow upravit, přičemž buďto stávající hashované heslo nahradím nějakým známým z mého systému (nemusím jej složitě vyrábět), nebo, pokud si dobře pamatuju, tak se dalo heslo i vymazat, a pak se přihlašovalo bez hesla.

Re:Nahrazení hesla v Linuxu
« Odpověď #9 kdy: 16. 10. 2020, 17:45:22 »
...

Nejbezpečnější je vlézt do toho připojeného rootfs pomocí chroot(1) a pak to provést nativně pomocí passwd(1) nebo jiného nástroje, který máte přímo v tom systému. Ruční editací nebo úpravou nástrojem z nabootované live distribuce se může stát, že uděláte nějaký překlep nebo použijete hashovací funkci, kterou nativní systém zrovna nepodporuje :)

_Jenda

  • *****
  • 1 601
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:Nahrazení hesla v Linuxu
« Odpověď #10 kdy: 17. 10. 2020, 04:14:48 »
Proc tak komplikovane... vytahnu disk s instalaci a zmenim v nem heslo.
Kód: [Vybrat]
sudo bash
mount /dev/zapomenuto1 /mnt/x
chroot /mnt/x /bin/bash
passwd
Fun fact: lidi tohle dělají, aniž by si uvědomovali, že tímto spustili bash z toho cizího systému pod rootem na svém systému (a z chrootu kde máte roota se dá snadno uniknout). Přidejte do svého bashe rootkit a užívejte si přístupu na stroje lidí, kteří vám chtěli změnit heslo.

Re:Nahrazení hesla v Linuxu
« Odpověď #11 kdy: 17. 10. 2020, 07:16:42 »
Pro nahrazení hesla (ne změnu) bych si přidal klíč do /root/.ssh/authorized_keys .

aaa158

  • ***
  • 245
    • Zobrazit profil
    • E-mail
Re:Nahrazení hesla v Linuxu
« Odpověď #12 kdy: 17. 10. 2020, 10:46:56 »
Proc tak komplikovane... vytahnu disk s instalaci a zmenim v nem heslo.
Kód: [Vybrat]
sudo bash
mount /dev/zapomenuto1 /mnt/x
chroot /mnt/x /bin/bash
passwd
Fun fact: lidi tohle dělají, aniž by si uvědomovali, že tímto spustili bash z toho cizího systému pod rootem na svém systému (a z chrootu kde máte roota se dá snadno uniknout). Přidejte do svého bashe rootkit a užívejte si přístupu na stroje lidí, kteří vám chtěli změnit heslo.

Fun fact: toto je osobne PC (podla OP), clovek ktory chrootne hdd ktory nasiel na ulici a pripojil do PC na ktorom ma dolezite data... je to samozrejme jeho problem..

Re:Nahrazení hesla v Linuxu
« Odpověď #13 kdy: 20. 10. 2020, 08:35:05 »
Proc tak komplikovane... vytahnu disk s instalaci a zmenim v nem heslo.
Kód: [Vybrat]
sudo bash
mount /dev/zapomenuto1 /mnt/x
chroot /mnt/x /bin/bash
passwd
Tomu chroot se dá vyhnout, passwd má krásný parametr -R.

Re:Nahrazení hesla v Linuxu
« Odpověď #14 kdy: 20. 10. 2020, 10:38:42 »
Tak potom je nejjednodušší připojit disk jinam, nebo nabootovat z klíčenky a soubor /etc/shadow upravit, přičemž buďto stávající hashované heslo nahradím nějakým známým z mého systému (nemusím jej složitě vyrábět), nebo, pokud si dobře pamatuju, tak se dalo heslo i vymazat, a pak se přihlašovalo bez hesla.

Pamatujete si to správně. Nejjednodušší je spustit jádro s parametrem init=/bin/sh, a pokud to nejde (secureboot apod.), pak jakýkoliv linux (třeba z jakéhokoliv live CD), připojit disk, a ze shadow souboru heslo prostě vymazat. Chroot je blbost, je to složitější a nebezpečnější.