*nix

индекс
298,30

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

В стандартный состав 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
Вопрос не холливара ради, а мне действительно интересно, как можно это сделать.
+25
12 сентября 2009, 23:30
39

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

+3
Gasoid #
ttysnoop
+1
chegivara #
Про эту программу я слышал, но вот воспользоваться так и не получилось.
Можете показать рабочий пример?
+1
angry_elf #
bashlogger, screen -x :)
0
chegivara #
Мило просить работать через screen?)
0
angry_elf #
usermod -s /bin/screen %username% :)
НЛО прилетело и опубликовало эту надпись здесь
+1
V2NEK #
не за кем следить будет
+2
tmp0000 #
Метод Чака Норриса? :)
+1
Anton_DS #
Скорее мистера Спока :))
НЛО прилетело и опубликовало эту надпись здесь
+1
chegivara #
Это всё не то, можно очистить да и многово не увидишь. Нужен он лайн режим.
–2
antosj #
tail
+2
l0rda #
unset HISTFILE

какой tail?
–4
andoriyu #
тот который показывает нижнии строки, типо чекать не изменился ли фаил и показывать его хвост.
+1
l0rda #
я знаю что такое tail
но он Вам не поможет, если в этот файл ничего не пишется
0
Somewan #
решение из разряда «а я тупо вынул все кабели из свича»

ставится сплиттер на выдеовыход с карты и при достаточной длине кабеля вся консоль у тебя на мониторе
0
chegivara #
это за физической, а ssh сессии как)
+3
Somewan #
как говорится, подписался на комментарии
0
AlexeyK #
на практике никак, разве что снифить приходящие на sshd команды и подавать их типа «в реальном времени», либо подобные решения
+4
Dimster #
Угу,
«Чувак, я тут у тебя с ноутом посижу ладно? Только тут вайфай ловит, проверю, что новенького на хабре. Какой кабель? К видеокарте? Так это как антенна для вайфая, я тебе точно говорю.»
–4
tmp0000 #
«Чувак, я тут у тебя с ноутом посижу ладно? Только тут вайфай ловит, проверю, что новенького на хабре. Какой кабель? К видеокарте? Так это как антенна для вайфая, я тебе точно говорю. Кстати, ты с какова раёна, парниша?»
0
anycolor #
мм, насколько я помню даже 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.
0
ColorPrint #
угу, в семерке и восьмерке тоже из коробки работает, ничего компилить не нужно
0
Spamkit #
Будьте добры посмотреть здесь на Линукс-аналог НЛО.
0
Spamkit #
Тьфу, линк не вставился linux.die.net/man/1/conspy
0
chegivara #
Это подключение к виртуальным консолям, ssh сессии так не увидеть(
0
dei34 #
НЛО прилетело и опубликовало эту надпись здесь
–1
DurRandir #
А теперь запусти то же самое, но не от рута. И удивишься, что open /dev/snp0: Permission denied
+1
StirolXXX #
Отлично, а кому это надо делать кроме как руту?
+1
ColorPrint #
ну все правильно вроде, а Вы как хотели? )
если нужна возможность делать это обычным юзерам то думаю достаточно сменить права на /dev/snp
Только вот зачем оно юзерам то? ;)
+1
ivlis #
Было бы очень странно, если бы работало, лол.
0
iscsi #
не надо ничего собирать, kldload snp, и понятное дело, если Вы смогли сделать это, то watch sometty для Вас уже не проблема вовсе.
0
akshakirov #
в линукс watch делает совсем другое… собственно так я узнал о том что делает watch в FreeBSD.

PS: какой аналог linux watch есть под freebsd?
0
dmn42 #
gnu-watch
0
dmn42 #
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.
0
dmn42 #
Йопрст, не проснулся и подумал про наоборот.

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

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

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.