Скрыть задание crontab

Всегда помните, что команда historyотображает историю текущего пользователя. Это означает, что один пользователь не может видеть историю другого пользователя.

Пожалуйста, войдите как rootпользователь

Выполните следующую команду

grep -e "$pattern" /home/*/.bash_history

Если у вас несколько пользователей, имя пользователя будет отображаться как/home/username

Пример вывода:

/home/testuser1/.bash_history:ls
/home/testuser2/.bash_history:pwd

Как увидеть метки времени в истории bash

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

HISTTIMEFORMAT="%d/%m/%y %T "

Затем введите команду history

Пример вывода

root@system:~# history
   67  02/04/18 19:25:03 echo 'hi'
   68  02/04/18 19:25:03 ls -l
   69  02/04/18 19:25:03 pwd
   70  02/04/18 19:25:03 ifconfig
0
11.12.2019, 05:08
4 ответа

Существует несколько довольно простых способов скрыть запись путем неправильного направления (, но они не выдерживают тщательной проверки ).

Например, вот упрощенное доказательство концепции вмешательства в вывод crontab -lна лету.

crontab() {
  case "$*" in
    (*-l*) command crontab "$@" | grep -v "some_haxx.sh" ;;
    (*) command crontab "$@" ;;
  esac
}

Вам придется вставить это в профиль оболочки.

С небольшим усилием можно было бы сделать его более гибким, но уловка все равно может быть обнаружена, если вы простоcat /var/spool/cron/someuser

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

РЕДАКТИРОВАТЬ :на самом деле есть более простой способ скрыть информацию от пользователя, который работает crontab -l. Встроенные последовательности клавиш(Ctrl -vCtrl -m)предполагают, что Vim является вашим редактором:

* * * * * /somedir/some_haxx.sh # Ctrl-vCtrl-m# anything can go here this overwrites the cron entry you could just put lots of spaces here or a dummy cron entry

Вы не увидите ничего особенного в редакторе (кроме ^Mсредней линии ). Сохраните файл и выйдите из редактора. Этот хак должен работать только при просмотре файла из командной строки. Здесь мы вставляем управляющий символ carriage return, это приводит к тому, что отображаемый текст перезаписывается всем, что следует за строкой.

Это устраняет недостаток cat, упомянутый выше, но вам все равно потребуется немного дыма и зеркал, чтобы скрыть его от пользователя, который редактирует с помощью crontab -e--, поскольку редактор по-прежнему будет отображать управляющий символ как ^M.

2
28.01.2020, 02:29

Дополняя решение bxm, следующая функция работает, чтобы также скрыть оскорбительную строку, когда crontab -eиспользуется для редактирования файла cron (добавить где-то в$USER/.bashrc):

crontab() {
  case "$*" in
    (*-l*) command crontab "$@" | grep -v "some_haxx.sh" ;;
    (*-e*) H=$(grep "some_haxx.sh" /var/spool/cron/$USER); O=$(grep -v "some_haxx.sh" /var/spool/cron/$USER); echo "$O">/var/spool/cron/$USER; command crontab -e; echo "$H" >> /var/spool/cron/$USER ;;
    (*) command crontab "$@" ;;
  esac
}

Затем вы можете скрыть соответствующую строку из cat, используя упомянутый трюк CTRL -vCTRL -m в Vim bxm.

Если пользователь меняет оболочку по какой-либо причине или вызывает bashс помощью bash --norc, вышеуказанная функция не будет работать.

0
29.01.2020, 17:10

Как root, создайте файл в /etc/cron.d/, crontabs в /etc/cron.d/нельзя отображать или редактировать с помощью crontab -lи crontab -e.

man cron:

This directory can contain any file defining tasks following the format used in /etc/crontab

0
29.01.2020, 18:14

Когда я услышал о PPP в дневниках даркнета, у меня возник тот же вопрос. Нашел ответ здесь.

http://vladz.devzero.fr/004_hide-crontab.html

пример:

printf "* * * * * >/tmp/x;\rno crontab for $USER\n" | crontab -
1
30.03.2020, 17:01

Теги

Похожие вопросы