Отлично. Если будут проблемы - пишите в личку, я посмотрю оперативненько.
Пустая страница или страница с сообщением, что надо указать пароль?
Теперь запускать нужно так:
http://ва_сайт_с_путем/ai-bolit.php?p=пароль (пароль прописан в начале скрипта рядом с PASS)
Можете в логе посмотреть, есть ли какие-то ошибки? Я на своих трех хостингах проверил, ошибок нет.
Выложил новую версию:
Изменения в версии 20120412
- добавлена сигнатура спам-скрипта
- вместе с файлами отображается дата и время создание файла
- файлы .js добавлен к списку сканируемых обязательно
- добавлена эвристика для анализа троянов в javascript
- добавлена проверка кол-ва директорий дорвеев
- запуск с паролем из браузера и без пароля из командной строки
http://revisium.com/ai/
Ну, вообще, с помощью него можно легко слить всю базу и утащить себе. Я на всякий случай добавил в сигнатуры. Лучше подстраховаться, потому что некоторые заливают его отдельно, чтобы воровать БД.
Проверил последней версией (та, что на сайте) - все определил как шеллы. Попробуйте ей.
Добавил в базу.
Проблема с недостаточным временем на отработку скрипта решается очень просто - нужно запустить его из командной строки. Я уже про это писал. Не вижу особого смысла реализовывать сложный механизм отсеивания директорий, сканирования по частям, перезапуск на ajax и пр. Все это очень сложно и особой выгоды не дает. Запускаем из под SSH и все (я ранее уже писал про это).---------- Добавлено 10.04.2012 в 18:07 ----------
Платную не планирую. А на счет "отблагодарить" - вот страничку пожертвований сделал. Милости прошу: http://revisium.com/ai/others.php
Идея хорошая и понятная. Спасибо. Хотя реализовывать ее, дюже гемморно, да и пользоваться ей будет мало пользователей. Я ее записал (вообще я все пожелания записываю) и, возможно, когда-нибудь сделаю.---------- Добавлено 10.04.2012 в 18:12 ----------
Да, просьба к пользователям. Если у вас появляется в списке подозрительных (но не шеллов) скрипт, и у вас есть чувство (или вы уверены), что это шелл или дорвей, пожалуйста, скиньте мне на мыло. Я добавлю сигнатуру. Спасибо.
Присылать это чудо нужно, естественно, в .zip архиве с паролем. У меня злой антивирус ))
Обновления не забывайте скачивать. Сейчас бывает, что по два раза на дню выходят.---------- Добавлено 10.04.2012 в 08:31 ----------
На старой версии проверялось в несколько раз меньше файлов. Запускайте из командной строки или увеличьте timeout в php.ini.
Спасибо за комментарии. Нужно понимать, что все возможные варианты и сигнатуры собрать физически нереально. Любой шелл можно обфусцировать бесконечное кол-во раз. Уверен, кто профессионально ломают сайты, как раз так и делают - шифруют для каждого нового сайта новым способом. И найти такой обфусцированный вариант можно единственным способом - с помощью эвристики. Я анализирую base64 кодированные последовательности и стандартные функции, типа eval(), base64_decode(), gzipinflate().
Естественно, нельзя 100% гарантировать, что эти функции не встретятся в CMS или других скриптах, поэтому скрипт при обнаружении не кричит про шеллы, а уравновешенно предупреждает о том, что в файле подозрительный код. А уже ответственность админа сайта сходить и проверить, что там. В большинстве случаев там действительно оказывается какая-нибудь "нечисть".---------- Добавлено 10.04.2012 в 06:38 ----------
Товарищ, ага :)
По-другом сделать можно, причем мое участие здесь не нужно. Я писал об этом уже выше:
/usr/bin/php ai-bolit.php > result.html^^^^^ путь до вашего интерпретатора, где там у вас он установлен
Запускать можно раз в сутки по крону - будет сваливать в файл result.html (пути там правильные указать и все будет хорошо).
В кроне можно настроить, чтобы он результат отработки скрипта присылал на почту. Будет вам как раз отчет на мыло.---------- Добавлено 10.04.2012 в 06:40 ----------
Или ставьте лимит на время выполнения скрипта минут 20 (на время запуска ai-bolit.php), или
(так предпочтительнее) запускайте из командной строки через ssh.
---------- Добавлено 10.04.2012 в 06:41 ----------
Я добавил проверку на "scandir" в новую версию скрипта. Если функции нет - работать не будет. В перспективе, наверное, переделаю на обычные opedir, readdir. Может кто знает, почему функции scandir на некоторых хостингах нет?
Надо положить на уровень выше www, зайти по ssh, запустить его из командной строки
php ai-bolit.php > result.html
и посмотреть что получится.---------- Добавлено 09.04.2012 в 14:27 ----------
По сусекам поскреб ) У меня много клиентских сайтов оказывается с шеллами были. Оттуда много навыгребал.
Да добрые люди помогли, подогнали несколько новых буквально на прошлой неделе.
Это все здорово, но конкретно этот скрипт проектировался как маленький и удаленький, самодостаточный и не требующий никакого хранилища. Конечно, можно реализовать и инкрементальную проверку (с сохранением предыдущих результатов) и отправку на email, и запуск по cron'у. Наверное, я все это сделаю, но чуть позже, и это будет отдельный скрипт.---------- Добавлено 09.04.2012 в 15:11 ----------
Спасибо за архивчик. Добавил сигнатуры, обновил архив со скриптом http://revisium.com/ai/.
Про типизацию: по-умолчанию сканируются только .php*/.tpl/.inc/.htm*. Но если в скрипте поставить константу define('SCAN_ALL_FILES', 0); - будут анализироваться все файлы (включая картинок). Ваш .jpg файл тоже найдется.
Что-то, видимо, не то поменяли. Я смогу помочь, если будет FTP доступ.---------- Добавлено 09.04.2012 в 12:23 ----------
В перспективе так и планировалось. Но это уже другого класса скрипт. Чуть серьезнее )