Jak stwierdzić, czy logowanie do konsoli jest prawidłowe?

13

W systemie Windows można wymusić naciśnięcie Ctrl+ Alt+, Delaby uruchomić przerwanie, które wywołuje okno logowania.

Podczas logowania do konsoli komputera z systemem Linux: Jak mogę sprawdzić, czy ten login jest prawdziwy, czy wykpany w celu kradzieży moich danych uwierzytelniających?

Max Ried
źródło

Odpowiedzi:

14

Zakładając, że chcesz być chroniony przed innymi normalnymi użytkownikami systemu (jeśli przeciwnik ma dostęp do konta root, wszystkie zakłady są wyłączone), możesz w zasadzie użyć klucza bezpiecznej uwagi :

System Secure Attention Key systemu operacyjnego to narzędzie bezpieczeństwa, które zapewnia ochronę przed programami przechwytującymi hasła trojanów. Jest to nie do pokonania sposób na zabicie wszystkich programów, które mogą maskować się jako aplikacje do logowania. Należy nauczyć użytkowników wprowadzania tej sekwencji klawiszy przed zalogowaniem się do systemu.

(Obsługa klucza Secure Attention Key (SAK) w systemie Linux 2.4.2, Andrew Morton, 18 marca 2001 r. )

To powiązane pytanie dotyczące U&L może być interesujące: Jak mogę znaleźć Bezpieczny klucz uwagi (SAK) w moim systemie i czy mogę go wyłączyć?

dhag
źródło
Co może się stać, gdy SAK zostanie aktywowany przy włączonym serwerze X?
Incnis Mrsi,
@IncnisMrsi: Próbowałem tego; wydaje się, że jest to mniej więcej odpowiednik Ctrl + Alt + Backspace, zakładając, że nie wyłączyłeś tego. Pamiętam, że wydawało mi się to trochę nieporadne, ale nie pamiętam żadnych szczegółów.
Kevin
Uderzyłem go często na moim molo i po pewnym czasie login nie wrócił. To wydaje się błędne, ale daje +1 za użyteczny na co dzień SysRq.
Max Ried
@Kevin: Więc jeśli użytkownik uruchomił legalny serwer X (to koniecznie jest euid = 0, przynajmniej na komputerach PC) na tty ≠ 7, jego konfiguracja ma wyłączony SAK, to nie jest tak niemożliwe do pokonania, jak twierdzą dokumenty jądra? Załóżmy, że działa na nim emulowany GUI DM.
Incnis Mrsi,
@IncnisMrsi: Myślę, że tak naprawdę zabija wszystko w sesji i ponownie uruchamia „poprawną” rzecz, cokolwiek to może być. Więc jeśli tty = 7, dostaniesz zupełnie nowy X, w przeciwnym razie dostaniesz loginitd. To jest błąd, ponieważ niektóre wymyślne DE takie jak GNOME nie lubią być zabijane znikąd. Ale jeśli twój atakujący ma euid = 0, i tak już przegrałeś.
Kevin,
2

Przede wszystkim nie jestem pewien, czy możesz być zbyt pewny okna logowania Ctrl+ Alt+ Delw systemie Windows, jest to również rola wirusa / trojana w przechwytywaniu przerwania, a jego wdrożenie jest bardzo możliwe.

Po drugie, jeśli taki mechanizm jest wdrożony zarówno w systemie Windows / Linux, oznacza to, że uprawnienia administratora są z pewnością zagrożone.

W Linuksie, jeśli ktoś napisał fałszywą powłokę, aby wyświetlić monit i złapać twoje poświadczenia, myślę, że podstawowy Ctrl+ Club Ctrl+ Zmoże wystarczyć, jeśli te sygnały nie zostaną złapane, aby odkryć sztuczkę. Również kilkakrotne wprowadzenie błędnych danych logowania może pomóc w zauważeniu odchyleń od normalnego zachowania timera.

Przełączanie między różnymi konsolami, jak również, zwiększa prawdopodobieństwo wykrycia sztuczki.

Ale w każdym razie nie możesz być pewien 100% na jakimkolwiek systemie wiarygodności twojego pytania / okna logowania.

netmonk
źródło
0

Możesz użyć ctrl+ alt+ F1..., F7aby przejść do innego tty i zalogować się stamtąd. Możesz także użyć ctrl+ zlub ctrl+ c. Jeśli jednak ktoś próbuje ukraść login i hasło przy użyciu tej metody, nadal możliwe jest, że jesteś oszukany. Zależy od używanego systemu operacyjnego, kto miał do niego dostęp i jaki miał dostęp.

Ogólnie rzecz biorąc, nigdy nie możesz być w 100% pewien, ale jeśli ktoś to zrobił, zakładam, że ma on już dostęp do konta root - więc twoje dane logowania byłyby dla niego bez znaczenia.

MatthewRock
źródło
3
Gdybym miał ustawić taką pułapkę, zdecydowanie bym uruchomił mój program na każdym tty. Pamiętaj, że osoby, do których masz dostęp za pomocą klawiszy sterowania, nie są szczególnie bezpieczniejsze.
John WH Smith,
Słuszny punkt; to było najlepsze, co przyszło mi do głowy.
MatthewRock,
Czy jakiś magiczny system może ci pomóc?
Max Ried
0

Użytkownik (nawet nie root) mający fizyczny dostęp do konsoli może wykonać taką sztuczkę.

Zaloguj się sshi sprawdź, które procesy działają na wirtualnej konsoli, którą chcesz zalogować lokalnie. Czy to jest getty(dla TUI tty), czy inny legalny menedżer wyświetlania? Czy ma UID = 0?

Jeśli którakolwiek z dwóch wartości jest fałszywa, sztandar nazwy hosta login: jest z pewnością sfałszowany. Ale, jak już napisano odpowiedzi państwowe, nie pomaga to, aby sprawca przestępstwa miał już zwiększone przywileje root.

Incnis Mrsi
źródło
-1

Krótka odpowiedź: nie możesz powiedzieć.

Ale jeśli polecenie logowania zostanie zastąpione, oznacza to, że osoba atakująca ma dostęp do konta root na komputerze. W takim przypadku on / ona może również:

  • zainstalowałem keylogger do kradzieży hasła. Możesz złagodzić problem, używając unikalnego hasła, aby atakujący nie mógł uzyskać dostępu do innych usług online, z których korzystasz;
  • zaloguj się jako Ty (lub jakikolwiek inny użytkownik) na komputerze, po prostu zmieniając hasło lub uzyskując dostęp do plików (lub innych osób).

Dlatego martwienie się, czy monit logowania jest prawidłowy, czy nie, jest kwestią sporną.

Zasadniczo nie należy logować się na maszynie, która Twoim zdaniem może być zagrożona.

dr01
źródło
8
Mógłbym zaprojektować program imitujący zachowanie monitu logowania i uruchomić go w każdym TTY bez uprawnień roota (jak ja). Jeśli zostanie to wykonane poprawnie, nie będzie możliwe odróżnienie rzeczywistego monitu od wyniku programu, zachęcając do wprowadzenia poświadczeń. Należy jednak pamiętać, że uwierzytelnienie użytkownika wymagałoby uprawnień administratora (dzięki czemu pułapka jest całkowicie przezroczysta), więc jeśli logowanie się nie powiedzie i jesteś pewien, że nie popełniłeś literówki ... możesz założyć, że zostałeś uwięziony (zbyt późno).
John WH Smith,
6
Nie instalujesz go. Po prostu używasz własnego konta, aby zalogować się do każdego terminala i uruchomić tam fałszywy login. Użytkownicy, którzy spróbują później użyć terminala, znajdą fałszywy monit, działający tak jak Ty, a nie loginprogram działający jako root. Nie zakładam, że rzeczywiście loginnaruszono rzeczywisty program.
John WH Smith,
7
@ dr01. Zaloguj się jak zwykle. Gdy będziesz gotowy, aby rozpocząć ~/bin/fakelogin, użyj go exec ~/bin/fakelogintak, aby po jego zamknięciu (z dowolnego powodu) Twoje konto użytkownika zostało wylogowane, a prawdziwy monit o zalogowanie się wyświetlony drugiemu użytkownikowi.
roaima,
3
Zwykle, gdy próbujesz ukraść hasło w monicie, logujesz je i piszesz „Nieprawidłowe logowanie.”, A następnie wychodzisz z programu. Więc nie ma potrzeby uwierzytelniania za pomocą $euid=0.
Ned64
1
Dlaczego opinie negatywne?
dr01