Как определить подлинность входа в консоль?

13

В Windows можно принудительно нажать Ctrl+ Alt+ Delдля запуска прерывания, которое вызывает окно входа в систему.

При входе в консоль компьютера с Linux: как я могу узнать, является ли этот логин реальным или имитированным, чтобы украсть мои учетные данные?

Макс Рид
источник

Ответы:

14

Предполагая, что вы хотите быть защищены от других обычных пользователей системы (если у злоумышленника есть root-доступ, все ставки отключены), вы можете в принципе использовать безопасный ключ внимания :

Secure Attention Key операционной системы - это средство защиты, которое предоставляется для защиты от троянских программ захвата паролей. Это непобедимый способ уничтожения всех программ, которые могут маскироваться под приложения для входа в систему. Пользователей необходимо научить вводить эту последовательность клавиш перед входом в систему.

( Обработка ключа защищенного внимания (SAK) в Linux 2.4.2, Эндрю Мортон, 18 марта 2001 г. )

Этот связанный вопрос U & L может быть интересен: как я могу найти Secure Attention Key (SAK) в моей системе и можно ли его отключить?

dhag
источник
Что может произойти, когда SAK будет активирован с включенным X-сервером?
Инснис Мрси
@IncnisMrsi: я пробовал это; кажется, что это примерно эквивалентно Ctrl + Alt + Backspace, если вы не отключили это. Я помню, что это казалось немного странным, но я не могу вспомнить какие-либо подробности.
Кевин
Я часто нажимал на Vtty, и через некоторое время логин не вернулся. Это глючит, но +1 для действительно полезного SysRq каждый день.
Макс Райд
@Kevin: Итак, если пользователь запустил законный X-сервер (который обязательно должен быть euid = 0, по крайней мере, на ПК) на tty ≠ 7, в его конфигурации отключен SAK, тогда SAK не так уж непобедим, как утверждают документы ядра? Предположим, на нем работает эмулируемый графический интерфейс пользователя DM.
Инснис Мрси
@IncnisMrsi: Я думаю, что он на самом деле убивает все в вашей сессии и перезапускает «правильную» вещь, что бы это ни было. Так что, если tty = 7, вы получите совершенно новый X, иначе вы получите loginи т. Д. Это глючит, потому что некоторые модные DE, такие как GNOME, не любят быть убитыми из ниоткуда. Но если ваш атакующий имеет euid = 0, вы все равно проиграли.
Кевин
2

Прежде всего, я не уверен, что вы можете быть слишком уверены в окне входа в систему Ctrl+ Alt+ Delв Windows, это также роль вируса / трояна для перехвата прерывания, и его реализация очень возможна.

Во-вторых, если такой механизм реализован в Windows / Linux, это означает, что привилегии администратора наверняка скомпрометированы.

В Linux, если кто-то написал поддельную оболочку для отображения приглашения и перехвата ваших учетных данных, я полагаю, что базового Ctrl+ Cили Ctrl+ Zможет быть достаточно, если эти сигналы не пойманы, чтобы обнаружить хитрость. Кроме того, ввод неправильных учетных данных несколько раз может помочь вам увидеть любое отклонение от нормального поведения таймера.

Переключение между различными приставками, например, также увеличивает вероятность обнаружить трюк.

Но в любом случае вы не можете быть уверены на 100% в любой системе надежности вашего логина / окна.

netmonk
источник
0

Вы можете использовать ctrl+ alt+ F1..., F7чтобы перейти к другому tty и войти в систему оттуда. Вы также можете использовать ctrl+ zили ctrl+ c. Однако, если кто-то пытается украсть ваш логин и пароль, используя этот метод, все же возможно, что вас обманут. Зависит от того, какую ОС вы используете, кто имел к ней доступ и какой у него доступ.

Как правило, вы никогда не можете быть на 100% уверены, но если бы кто-то сделал это, я бы предположил, что у него уже есть root-доступ, поэтому ваши данные для входа в систему будут для него бессмысленными.

MatthewRock
источник
3
Если бы я создал такую ​​ловушку, я бы обязательно запустил свою программу на каждом tty. Имейте в виду, что те, к которым вы получаете доступ с помощью клавиш управления, не особенно безопасны.
Джон У. С. Смит,
Честная оценка; это было лучшее, что пришло мне в голову.
МэтьюРок
Может ли какой-нибудь волшебный sysrq помочь вам?
Макс Райд
0

Пользователь (даже не root), имеющий физический доступ к консоли, может сделать такой хитрость.

Войдите в систему sshи проверьте, какие процессы работают на виртуальной консоли, в которую вы хотите войти локально. Является ли это getty(для TUI tty) или другой законный менеджер отображения? Это UID = 0?

Если любой из двух является ложным, то баннер имени хоста login: наверняка подделан. Но, как уже написано в ответах государства, это не поможет противозаконному лицу, которому уже были повышены его привилегии root.

Incnis Mrsi
источник
-1

Краткий ответ: вы не можете сказать.

Но если команда входа в систему была заменена, это означает, что злоумышленник имеет root-доступ на компьютере. В этом случае он / она может также:

  • установили кейлоггер, чтобы украсть ваш пароль. Вы можете решить эту проблему, используя уникальный пароль, чтобы злоумышленник не смог получить доступ к другим используемым вами онлайн-сервисам;
  • Войдите в систему как вы (или любой другой пользователь) на компьютере, просто изменив пароль, или получите доступ к своим (или чьим-либо другим) файлам.

Поэтому вопрос о том, является ли приглашение для входа в систему законным или нет, является спорным вопросом.

Как правило, вы не должны входить в систему на компьютере, который, по вашему мнению, может быть скомпрометирован.

dr01
источник
8
Я мог бы разработать программу, которая имитирует поведение приглашения на вход в систему, и запускать его в каждом TTY без прав root (как у меня). Если все сделано правильно, было бы невозможно отличить реальное приглашение от вывода программы, предлагая вам ввести свои учетные данные. Тем не менее, обратите внимание, что для аутентификации вас потребуются привилегии суперпользователя (что делает ловушку полностью прозрачной), поэтому, если вход в систему не удается и вы уверены, что не сделали опечатку ... вы можете предположить, что вы оказались в ловушке (тоже хотя поздно).
Джон У. С. Смит,
6
Вы не устанавливаете это. Вы просто используете свою учетную запись для входа в каждый терминал и запускаете там поддельный вход. Пользователи, которые попытаются использовать терминал после этого, найдут ваше поддельное приглашение, работающее от имени вас, а не loginпрограмму, работающую от имени пользователя root. Я не предполагаю, что настоящая loginпрограмма была скомпрометирована.
Джон У. С. Смит,
7
@ dr01. Войдите как обычно. Когда вы будете готовы начать свою работу ~/bin/fakelogin, используйте ее exec ~/bin/fakeloginтак, чтобы при ее выходе (по какой-либо причине) ваша учетная запись пользователя вышла из системы, а реальное приглашение для входа в систему было представлено другому пользователю.
Ройма
3
Обычно, когда вы пытаетесь украсть пароль в приглашении, вы регистрируете его и пишете «Неверный логин», затем выходите из программы. Таким образом, нет необходимости проверять подлинность с помощью $euid=0.
Нед64,
1
Почему отрицательные?
dr01