Fórum Root.cz
Hlavní témata => Distribuce => Téma založeno: Hamparle 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)
-
najdi si jak nabootovat do single mode, premountovat disk i pro zapis a vymazat hash hesla.
-
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)
-
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.
-
Proc tak komplikovane... vytahnu disk s instalaci a zmenim v nem heslo.
sudo bash
mount /dev/zapomenuto1 /mnt/x
chroot /mnt/x /bin/bash
passwd
-
ze zvědavosti, o jaké distro se jedná?
-
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í).
-
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...
-
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.
-
...
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 :)
-
Proc tak komplikovane... vytahnu disk s instalaci a zmenim v nem heslo.
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.
-
Pro nahrazení hesla (ne změnu) bych si přidal klíč do /root/.ssh/authorized_keys .
-
Proc tak komplikovane... vytahnu disk s instalaci a zmenim v nem heslo.
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..
-
Proc tak komplikovane... vytahnu disk s instalaci a zmenim v nem heslo.
sudo bash
mount /dev/zapomenuto1 /mnt/x
chroot /mnt/x /bin/bash
passwd
Tomu chroot se dá vyhnout, passwd má krásný parametr -R.
-
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ší.
-
Díky všem za rady,nakonec jsem užil nahrazení řetězce :$6$salt$hodnota$: na ::.
Jen ze zvědavosti,nejsou na tohle navázané nějaké klíčenky či úložiště hesel v různých userspace programech přes gnome-keyring atd?
-
Jen ze zvědavosti,nejsou na tohle navázané nějaké klíčenky či úložiště hesel v různých userspace programech přes gnome-keyring atd?
Pokud vím, tak ne, a nedovedu si ani představit mechanismus, jak by to jít mělo.
Tuto funkcionalitu najdete na Windows - jakmile admin změní heslo (tj. bez znalosti původního), zneplatní se uložené klíče v certificate store.
-
Jen ze zvědavosti,nejsou na tohle navázané nějaké klíčenky či úložiště hesel v různých userspace programech přes gnome-keyring atd?
Pokud vím, tak ne, a nedovedu si ani představit mechanismus, jak by to jít mělo.
Tuto funkcionalitu najdete na Windows - jakmile admin změní heslo (tj. bez znalosti původního), zneplatní se uložené klíče v certificate store.
Samozrejme ze ano, resp. pokud uzivatel NEpouziva autologin, ale prihlasuje se rucne, tak se mu tim automaticky odemkne zminovana gnome klicenka, ktera pri zalozeni pouzila heslo uzivatele, takze po zmene hesla uzivatele je potreba pustit spravce klicenky, zadat PUVODNI heslo a to nove, aby se klicence heslo zmenilo na stejna jako ma nove uzivatelsky ucet, pokud to uzivatel neudela a ZNA puvodni heslo (coz tazatel nezna) tak si klicenka (tim ze je neodemcena) pri prvnim (v ramci beziciho systemu) pusteni zepta o heslo (to puvodni) a uzivatel ji dodatecne takto odemkne, pokud ale PUVODNI heslo nezna, tak klicenku neodemkne...
-
@k3dAR
Já měl na mysli jiný mechanismus. Na Windows, pokud dojde k násilnému změnění hesla, tak se ke klíčům už nedostanete.
To, co popisujete, je single sign on k počítači a klíčence. Ta v případě linuxu zůstane netknutá, jen pod starým heslem.