Взять исходники любого шелла, того же баша. Добавить кусочек, чтобы все исполняемые команды писались в некий файлик (можно например продублировать кусок с history, сменив только расположение файла и правда на доступ, так чтобы юзер об этом файле ни слуху ни духу, либо банально нечто вроде echo «X» | wall ). Собрать модифицированный шелл и назначить его шеллом для интересующего пользователя. Кейлоггер такой получается. Если я правильно помню, различные хацкеры так и работают, подменяя родные бинарники на скомпроментированной машине. Причем в этих модифицированных бинарниках может быть какой угодно функционал, помимо номинального.
не буду врать, не в курсе внутренней логики мультиплексора терминалов. Но в данном случае получится скрин в скрине/тмукс в тмуксе? Но в каждом из этих виртуальных терминалов запущен шелл? В моем варианте, шелл и есть кейлоггер.
Но скорее всего я неверно понял суть вашего поста, не могли бы вы пояснить?
скрин позволяет совместное использование, отображая действия подключившихся к общему терминалу всем наблюдателям. При подключении к ssh можно сразу указать программу, которая должна запускаться, и это может быть, например, screen, или tmux. Только тебе такое решение не подходит, ИМХО, а подходит именно вариант с корябанием history-блока в исходниках баша, т.к. это позволит _заставить_ подключающегося по ssh действовать соответственно твоим требованиям по мониторингу.
> Взять исходники любого шелла, того же баша. Добавить кусочек, чтобы все исполняемые команды писались в некий файлик (можно например продублировать кусок с history, сменив только расположение файла и правда на доступ, так чтобы юзер об этом файле ни слуху ни духу, либо банально нечто вроде echo «X» | wall ).
script есть.
$ cat /usr/local/bin/scrsh
#!/bin/sh
# Spy login script v 1.0
if pgrep script > /dev/null
then bash
else script -fq
fi
Вот эту фигню назнаешь шеллом. Ещё можно на файл поставить chatr a (append only) и тогда его невозможно редактировать или подменить, не будучи рутом (и то, только сняв атрибут a)