czy znamy hasło dla innych użytkowników, jeśli mamy dostęp do konta root?


24

Jeśli dana osoba ma dostęp root do określonej maszyny RHEL, czy będzie w stanie odzyskać hasło innych użytkowników?


4
Tak, możesz, mogą podzielić się nim z tobą ładnie zadanym :) innymi słowy, twoje pytanie nie jest dokładnie postawione.
poige

Odpowiedzi:


37

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/passwdbaza danych, mogą być przechowywane w sposób, który na to pozwala. htpasswdpliki 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 .netrclub 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.


1
Więcej informacji w Wikipedii: /etc/shadow, kryptograficzna funkcja skrótu , sól i łamania haseł
Tim

2
Jest to w większości dobra odpowiedź, jednak 3DES i MD5 nie są w rzeczywistości znacznie słabsze niż inne algorytmy. Brute force jest wciąż jedyną metodą znalezienia hasła z hasza ( tabele tęczy to sposób na przyspieszenie metod brute force dla dowolnego algorytmu, a nie słabość MD5). Co poprawia metodę skrótu dla haseł, to to, że jest powolna i używa wystarczająco długiej soli.
Gilles „SO- przestań być zły”

13

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.


Uzyskanie dostępu do mojego konta różni się od uzyskania hasła. Jeśli pozwolisz mi na zalogowanie się do twojego komputera, a ja (głupie, ale powszechne) używam tego samego hasła do wszystkich komputerów, nie masz dostępu do wszystkich komputerów po prostu b / c możesz zmienić moje hasło na swoim komputerze. Zostałem zablokowany z jednego konta.
emory

Ponadto w przypadku korzystania z zaszyfrowanych systemów plików dla poufnych danych kompromis w zakresie dostępu do katalogu głównego nie oznacza czasu na rozpoczęcie od nowa.
emory

@emory Jeśli używasz zaszyfrowanych systemów plików, a system jest przejęty przez root, to czy możesz zaufać kodowi, który zajmuje się zaszyfrowanym systemem plików, czyta hasło szyfrowania itp.? Powiedziałbym, że nie możesz, ponieważ z definicji kompromis w zakresie uprawnień roota oznacza, że ​​wszystko w systemie (aż do jądra) jest do zgarnięcia.
CVn

@ MichaelKjörling Czy mogę ufać kodowi, który dotyczy zaszyfrowanego systemu plików? W większości przypadków nie. W moim przypadku tak. Jest umieszczony na nośniku tylko do odczytu. Root nie może do niego pisać. Dzienniki przechodzą na dysk WORM. Tak samo, nie rozdaję kluczy do rootowania i prawdopodobnie zacznę od nowa.
emory

8

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.


5

Wszystkie hasła są przechowywane w /etc/shadowpliku. Możesz otworzyć ten plik za pomocą dostępu do hash valuekonta 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$


1
możesz zrobić „su pradeep” nawet bez zmiany hasła pradeep, ponieważ kiedy robisz „su pradeep” z użytkownikiem root, nie musisz wpisywać hasła pradeep, aby się zalogować ...
Wolfy
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.