войти зарегистрироваться

*nix whois

индекс
0,00

Шпионаж за чужой консолью

В стандартный состав FreeBSD входит замечательная программа watch(8), которая позволяет подсматривать за чужой консолью.

Всё, что ей для этого необходимо это snp модуль, который достаточно собрать из сурцов а программа сама его подгрузит:
# cd /usr/src/sys/modules/snp/
# make && make install


Теперь выбираем цель:
# w
9:16PM up 55 days, 52 mins, 2 users, load averages: 0.08, 0.06, 0.00
USER TTY FROM LOGIN@ IDLE WHAT
nlo1 p0 nlo.habr.ru 9:06PM - w
nlo2 p1 nlo.habr.ru 9:16PM - -bash (bash)


И подсматриваем за интересной нам консолью(TTY).
# watch p1

Назревает вопрос, каким образом можно подсмотреть за чужой консолью в Linux?
p.s
Вопрос не холливара ради, а мне действительно интересно, как можно это сделать.

комментарии (45)

  • ttysnoop
    • Про эту программу я слышал, но вот воспользоваться так и не получилось.
      Можете показать рабочий пример?
  • bashlogger, screen -x :)
    • Мило просить работать через screen?)
      • usermod -s /bin/screen %username% :)
  • НЛО прилетело и опубликовало эту надпись здесь.
    • не за кем следить будет
    • Метод Чака Норриса? :)
      • Скорее мистера Спока :))
  • НЛО прилетело и опубликовало эту надпись здесь.
    • Это всё не то, можно очистить да и многово не увидишь. Нужен он лайн режим.
      • tail
        • unset HISTFILE

          какой tail?
          • тот который показывает нижнии строки, типо чекать не изменился ли фаил и показывать его хвост.
            • я знаю что такое tail
              но он Вам не поможет, если в этот файл ничего не пишется
  • решение из разряда «а я тупо вынул все кабели из свича»

    ставится сплиттер на выдеовыход с карты и при достаточной длине кабеля вся консоль у тебя на мониторе
    • это за физической, а ssh сессии как)
      • как говорится, подписался на комментарии
      • на практике никак, разве что снифить приходящие на sshd команды и подавать их типа «в реальном времени», либо подобные решения
    • Угу,
      «Чувак, я тут у тебя с ноутом посижу ладно? Только тут вайфай ловит, проверю, что новенького на хабре. Какой кабель? К видеокарте? Так это как антенна для вайфая, я тебе точно говорю.»
      • «Чувак, я тут у тебя с ноутом посижу ладно? Только тут вайфай ловит, проверю, что новенького на хабре. Какой кабель? К видеокарте? Так это как антенна для вайфая, я тебе точно говорю. Кстати, ты с какова раёна, парниша?»
  • мм, насколько я помню даже snp не нужно собирать. В стандартной поставке есть все, что нужно:

    DEscriptION
    The watch utility allows the user to examine all data coming through a
    specified tty using the snp(4) device. If the snp(4) device is not
    available, watch will attempt to load the module (snp). The watch util-
    ity writes to standard output.

    Может я конечно отстал от жизни, но в FreeBSD 5.2 не нужно было дополнительно ничего собирать, чтобы использовать watch.
    • угу, в семерке и восьмерке тоже из коробки работает, ничего компилить не нужно
  • Будьте добры посмотреть здесь на Линукс-аналог НЛО.
    • Тьфу, линк не вставился linux.die.net/man/1/conspy
      • Это подключение к виртуальным консолям, ssh сессии так не увидеть(
  • для Linux www.phrack.org/issues.html?issue=50&id=5
  • НЛО прилетело и опубликовало эту надпись здесь.
  • А теперь запусти то же самое, но не от рута. И удивишься, что open /dev/snp0: Permission denied
    • Отлично, а кому это надо делать кроме как руту?
    • ну все правильно вроде, а Вы как хотели? )
      если нужна возможность делать это обычным юзерам то думаю достаточно сменить права на /dev/snp
      Только вот зачем оно юзерам то? ;)
    • Было бы очень странно, если бы работало, лол.
  • не надо ничего собирать, kldload snp, и понятное дело, если Вы смогли сделать это, то watch sometty для Вас уже не проблема вовсе.
  • в линукс watch делает совсем другое… собственно так я узнал о том что делает watch в FreeBSD.

    PS: какой аналог linux watch есть под freebsd?
  • Port: gnu-watch-3.2.7
    Path: /usr/ports/misc/gnu-watch
    Info: GNU watch command
    Maint: ehaupt@FreeBSD.org
    B-deps:
    R-deps:
    WWW: procps.sourceforge.net/

    Enjoy.
    • Йопрст, не проснулся и подумал про наоборот.

      • о! Круто! Как раз про «наоборот» и хотел спросить =)
  • tail /dev/ttyN не работает? (просто интересно)
  • Я использовал ttyrpld.

    Работает примерно так: после загрузки ядерного модуля создаётся устройство, которое позволяет перехватывать любые псевдотерминалы и следить за тем, как они создаются и исчезают. В userspace работает специальный демон, который использует это устройство для записи лога всех псевдотерминалов. Также есть программа, которая чем-то похожа на видеоплеер — она воспроизводит запись сессии, позволяет «ускорять время», сокращать ожидание до следующего изменения данных, показывать невыводимые (когда режим echo на tty выключен) символы (бывает полезно, чтобы подсмотреть пароль).
  • Как защитится от watch? К примеру руки кривые, команды набираешь с ошибками и не особо хочется, чтобы другой root это видел.
    • Идея навскидку: выгрузить модуль ядра и добавить в блек-лист?
      • Упс, на дату не посмотрел.
      • ну так-то да, но защититься от другого рута в принципе проблематично, ибо он может всё, как и ты :) загрузить этот модуль обратно к примеру.
        • Еще более радикальный вариант — убить все активные левые сессии рутов, запретить логиниться по-новой (например поставив вместо пароля * в /etc/shadow), сделать свое черное дело и вернуть как было.
          Но тут сразу два «но». Злой рут может иметь всякие бекдоры/руткиты, и всякий раз так делать замаешься да и не при всяких условиях это допустимо. Так что 100% гарантировать то, что за тобой никто не следит — из области фантастики :-)
Только авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста.