it-swarm-eu.dev

můžeme vědět heslo pro ostatní uživatele, pokud máme přístup root?

Pokud má uživatel root přístup k určitému počítači RHEL, bude moci získat heslo ostatních uživatelů?

24
monu

TL; DR: Ne, heslo je uloženo jako hash, který (obecně) nelze obnovit.

Linux ve výchozím nastavení neukládá hesla prostého textu . Jsou hashovány nebo jinak šifrovány pomocí různých algoritmů. Obecně tedy ne, s uloženými daty to není možné.

Pokud máte hesla uložená někde jinde než /etc/passwd databáze, mohou být uloženy způsobem, který to umožňuje. Soubory htpasswd mohou obsahovat spletitá šifrovaná hesla a jiné aplikace mohou ukládat slabší hashe nebo hesla prostého textu z různých (obvykle špatných) důvodů.

Konfigurační soubory uživatele mohou také obsahovat nešifrovaná hesla nebo slabě chráněná hesla z různých důvodů - fetchmail pochází obsah z jiné služby, .netrc nebo jednoduché automatizované věci mohou obsahovat heslo.

Pokud jsou hesla hashována nebo šifrována starším slabým algoritmem (3DES, MD5), bylo by možné rozumně a levně zjistit, jaké heslo bylo - i když spíše než útokem na data, nikoli pouhým obrácením transformace. (např .: věci jako http://project-rainbowcrack.com/ nebo http://www.openwall.com/john/ )

Protože jste root, je také možné zaútočit na uživatelské heslo na jiné úrovni - nahraďte přihlašovací binární nebo Sudo nebo část PAM atd. Něčím, co při zadání hesla zachytí heslo.

Konkrétně tedy ne, ale obecně mají root přístup snadnější získat informace o uživatelích prostřednictvím různých postranních kanálů.

37
Daniel Pittman

Na rozdíl od některých dalších odpovědí zde bych řekl, že jednoduchá odpověď na tuto a mnoho dalších otázek, které končí slovy „pokud máte kořen“, je ANO.

V podstatě root může na počítači dělat cokoli, co dokáže samotný systém. Systém může přijmout vaše heslo, takže root může přijmout vaše heslo nebo jeho vlastní místo vašeho s dostatečným úsilím. A co je důležitější, může jednoduše změnit vaše heslo nebo se k vám dostat.

Konkrétně jsou hesla obvykle šifrována. Toto je obvykle nějaký druh takzvaného „jednosměrného“ algoritmu, který generuje číslo (hash), které lze použít ke kontrole hesla, ale obecně se k číslu nevrací a heslo znovu nedostane zpět. Není to tedy jen čtení souboru, abyste získali něčí heslo.

To znamená, že si můžete přečíst jejich historii prostředí Shell a historii přihlášení, kde pravděpodobně v určitém okamžiku zadali své heslo místo svého uživatelského jména, nebo ho zadali do shellu namísto na výzvu k zadání hesla. V takovém případě by to byl prostý text. To je znepokojivě běžné u textových terminálů bez dobrých řešení, o kterých vím.

Avšak i kdybychom tento problém odložili stranou, „jednosměrné“ šifrování není ve skutečnosti jednosměrné. Existuje spousta nástrojů, které projdou mnoha kombinacemi přístupových frází a zašifrují je stejným jednosměrným procesem, dokud nenajdete ten, který odpovídá. Poté znají heslo, které získá přístup (ačkoli jako root mají již přístup, na tomto počítači).

Horší je, že existují tabulky Rainbow, které jsou předběžnými odpověďmi na výše uvedený proces: lidé již vygenerovali původní heslo, které vychází z daného šifrovaného hesla. Při jejich použití je to jednoduché vyhledávání - není třeba časově náročných pokusů o praskání.

Opět platí, že přístup na úrovni root je věcí, kterou je třeba chránit. S tímto ohrožením je ohrožen celý stroj a vše na něm. Je na čase začít znovu, včetně informování všech vašich uživatelů o tom, že vaší firmě již nelze důvěryhodně chránit své soukromí. A ano, mohlo by to znamenat ukončení podnikání.

13
user17534

Pokud máte root, můžete spustit cracker hesel proti /etc/shadow (za předpokladu místních hesel a nikoli LDAP nebo Kerberos atd.). To nemusí být efektivní, pokud si vyberou dobrá hesla a systém je nakonfigurován tak, aby používal silné hashování heslem. Systémová hesla však nejsou uložena v prostém textu; hesla nejsou přímo dostupná ani pro root.

8
geekosaur

Všechna hesla jsou uložena v /etc/shadow soubor. Tento soubor můžete otevřít pomocí přístupu root a zobrazit hash value z těchto hesel pro každého uživatele (i root).

Pokud nemáte nějaký software pro dešifrování hesla, nemůžete převést tyto hodnoty hash zpět na normální text.

Pokud ale máte přístup ke kořenovému uživateli, můžete pomocí následujícího příkazu změnit libovolné běžné heslo uživatele a získat přístup k jeho účtu.

[email protected]$ passwd pradeep

To vás požádá o nové heslo, které chcete nastavit pro uživatele pradeep. Tímto způsobem můžete změnit přístupové heslo pro pradeep.

Nyní máte přístup z jeho účtu:

[email protected]$ su pradeep

Výsledkem bude přepnutí na uživatele s předstihem a získáte terminál jako je tento:

[email protected]$

5
pradeepchhetri