Odpowiedzi:
TL; DR: Nie, hasło jest przechowywane jako skróty, których (ogólnie) nie można odzyskać.
Linux domyślnie nie przechowuje haseł w postaci zwykłego tekstu . Są one mieszane lub w inny sposób szyfrowane za pomocą różnych algorytmów. Ogólnie więc nie, nie jest to możliwe w przypadku przechowywanych danych.
Jeśli masz hasła zapisane w innym miejscu niż /etc/passwd
baza danych, mogą być przechowywane w sposób, który na to pozwala. htpasswd
pliki mogą zawierać słabo zaszyfrowane hasła, a inne aplikacje mogą przechowywać słabsze hasła lub hasła zwykłego tekstu z różnych (zwykle złych) powodów.
Ponadto pliki konfiguracyjne użytkownika mogą zawierać niezaszyfrowane hasła lub słabo chronione hasła z różnych powodów - pobieranie wiadomości z innej usługi przez aplikację fetchmail .netrc
lub proste automatyczne elementy mogą zawierać hasło.
Jeśli hasła zostaną zaszyfrowane lub zaszyfrowane przy użyciu starszego, słabego algorytmu (3DES, MD5), możliwe byłoby wypracowanie rozsądnie wydajnego / taniego hasła - aczkolwiek poprzez atakowanie danych, a nie tylko odwrócenie transformacji. (np .: rzeczy takie jak http://project-rainbowcrack.com/ lub http://www.openwall.com/john/ )
Ponieważ jesteś rootem, możliwe jest także zaatakowanie hasła użytkownika na innym poziomie - zastąp binarny login, sudo lub część PAM itp. Czymś, co przechwyci hasło po jego wprowadzeniu.
Tak więc, konkretnie, nie, ale ogólnie dostęp do roota ułatwia dostęp do danych użytkowników za pośrednictwem różnych kanałów bocznych.
W przeciwieństwie do niektórych innych odpowiedzi tutaj, powiedziałbym, że prosta odpowiedź na to i wiele innych pytań, które kończą się słowami „jeśli masz root” to TAK.
Zasadniczo root może zrobić na komputerze wszystko, co sam system. System może zaakceptować twoje hasło, więc root może zaakceptować twoje hasło lub własne zamiast twojego, z wystarczającym wysiłkiem. Co ważniejsze, może po prostu zmienić hasło lub ZOSTAĆ.
W szczególności hasła są zwykle szyfrowane. Zwykle jest to rodzaj tak zwanego algorytmu „jednokierunkowego”, który generuje liczbę (skrót), której można użyć do sprawdzenia hasła, ale ogólnie nie do odwrócenia numeru i odzyskania hasła ponownie. Więc nie chodzi o to, aby po prostu odczytać plik, aby uzyskać czyjeś hasło.
To powiedziawszy, MOŻESZ odczytać ich historię powłoki i historię logowania, gdzie najprawdopodobniej wpisali swoje hasło zamiast nazwy użytkownika w pewnym momencie lub wpisali je w powłoce zamiast po pytaniu o hasło. W takim przypadku Mógłby to być zwykły tekst. Jest to niepokojąco powszechne w terminalach tekstowych, bez dobrych rozwiązań, o których wiem.
Jednak nawet pomijając ten problem, szyfrowanie „jednokierunkowe” nie jest tak naprawdę jednym sposobem. Istnieje wiele narzędzi, które przechodzą przez wiele kombinacji haseł, szyfrując je za pomocą tego samego jednokierunkowego procesu, aż znajdziesz takie, które pasuje. Następnie znają hasło, które uzyska dostęp (chociaż jako root mają JUŻ dostęp na TYM komputerze).
Co gorsza, istnieją tęczowe tabele, które są wstępnie obliczonymi odpowiedziami na powyższy proces: ludzie już wygenerowali oryginalne hasło, które pochodzi z danego zaszyfrowanego hasła. Korzystanie z nich jest proste - nie wymaga czasochłonnych prób włamań.
Ponownie, dostęp na poziomie root jest ochroną. Po tym zagrożeniu cała maszyna i wszystko na niej jest zagrożone. Czas zacząć od nowa, w tym poinformować wszystkich użytkowników, że Twojej firmie nie można już ufać w celu ochrony ich prywatności. I tak, może to oznaczać rezygnację z działalności.
Jeśli tak root
, możesz uruchomić narzędzie do łamania haseł /etc/shadow
(zakładając hasła lokalne, a nie LDAP lub Kerberos itp.). Może to nie być skuteczne, jeśli wybiorą dobre hasła, a system jest skonfigurowany do używania silnego haszowania haseł. Ale hasła systemowe nie są przechowywane w postaci zwykłego tekstu; hasła nie są bezpośrednio dostępne nawet dla root
.
Wszystkie hasła są przechowywane w /etc/shadow
pliku. Możesz otworzyć ten plik za pomocą dostępu do hash value
konta root i zobaczyć te hasła dla każdego użytkownika (nawet użytkownika root).
O ile nie masz oprogramowania do odszyfrowywania haseł, nie możesz przekonwertować wartości skrótu na normalny tekst.
Ale nadal, jeśli masz dostęp do użytkownika root, możesz zmienić hasło każdego normalnego użytkownika za pomocą następującego polecenia i uzyskać dostęp do jego konta.
root@localhost$ passwd pradeep
Zostaniesz zapytany o nowe hasło, które chcesz ustawić dla użytkownika pradeep
. W ten sposób możesz zmienić hasło dla pradeep.
Teraz możesz uzyskać dostęp z jego konta poprzez:
root@localhost$ su pradeep
Spowoduje to przejście do użytkownika pradeep i otrzymasz terminal taki:
pradeep@localhost$