gregzem

gregzem
Рейтинг
134
Регистрация
22.11.2004
Должность
web security
vtomas:
запуск с паролем, и пустая страница, если у кого есть предыдущая версия киньте в личку, срочно надо сканернуть один сайт.
P.S. ЗАРАБОТАЛО, видать браузер глюкнул!

Отлично. Если будут проблемы - пишите в личку, я посмотрю оперативненько.

Пустая страница или страница с сообщением, что надо указать пароль?

Теперь запускать нужно так:

http://ва_сайт_с_путем/ai-bolit.php?p=пароль (пароль прописан в начале скрипта рядом с PASS)

Можете в логе посмотреть, есть ли какие-то ошибки? Я на своих трех хостингах проверил, ошибок нет.

Выложил новую версию:

Изменения в версии 20120412

- добавлена сигнатура спам-скрипта

- вместе с файлами отображается дата и время создание файла

- файлы .js добавлен к списку сканируемых обязательно

- добавлена эвристика для анализа троянов в javascript

- добавлена проверка кол-ва директорий дорвеев

- запуск с паролем из браузера и без пароля из командной строки

http://revisium.com/ai/

freeman12:

Опасное что-то?))
Кстати он так на все ДЛЕ сайты ругается) У них этот файл по умолчанию в движке.

Ну, вообще, с помощью него можно легко слить всю базу и утащить себе. Я на всякий случай добавил в сигнатуры. Лучше подстраховаться, потому что некоторые заливают его отдельно, чтобы воровать БД.

bork75:
Вот, что нашёл сегодня на своём заражённом сервере.
Айболит не нашёл
http://rghost.ru/37516707

Проверил последней версией (та, что на сайте) - все определил как шеллы. Попробуйте ей.

suraev:
$strings = array("Web Shell by boff", "Web Shell by oRb", "devilzShell", "Shell by Mawar_Hitam", "N3tshell", "Storm7Shell", "Locus7Shell", "private Shell by m4rco", "w4ck1ng shell", "FaTaLisTiCz_Fx Fx29Sh", "r57shell.php", "default_action = 'FilesMan'");

Добавил в базу.

suraev:

Вот ещё идейка: довольно часто, если на аккаунте много сайтов, дополнительные домены лежат не в отдельных корневых папках, а находятся как внутренние папки в папке основного домена. Когда таких дополнительных сайтов много, у скрипта нет шансов отработать - слишком много файлов. В итоге я могу по отдельности проверить папки дополнительных доменов, но не могу проверить папку основного домена. Нужна настройка, чтобы можно было игнорировать папки, являющиеся доменными именами (например, игнорировать папки первого уровня, содержащие в названии точку).

Проблема с недостаточным временем на отработку скрипта решается очень просто - нужно запустить его из командной строки. Я уже про это писал. Не вижу особого смысла реализовывать сложный механизм отсеивания директорий, сканирования по частям, перезапуск на ajax и пр. Все это очень сложно и особой выгоды не дает. Запускаем из под SSH и все (я ранее уже писал про это).

---------- Добавлено 10.04.2012 в 18:07 ----------

bork75:
gregzem, спасибо большое!
Очень шустро работает.
Добавил бы кошельки на странице для желающих поддержать скрипт или в будущем планируется платная версия? ))

Платную не планирую. А на счет "отблагодарить" - вот страничку пожертвований сделал. Милости прошу: http://revisium.com/ai/others.php

bork75:
Есть отличная идея для скрипта.
После запуска скрипт выдал мне список файлов с возможным размещением шеллов и я руками сравнивал эти файлы с оригиналами.
Почему бы не добавить папку с файлами для сравнения.

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

---------- Добавлено 10.04.2012 в 18:12 ----------

WebGomel:
Профессионалы может и обфусцируют по несколько раз, но на практике это редко встречается. Обычно на сайтах они лежат стандартные.
А с сигнатурами поможем :). Я сейчас на всех сайтах, которые чищу, "гоняю" и ваш скрипт. Если попадутся шеллы, которые он не увидит - примеры естественно буду.

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

Присылать это чудо нужно, естественно, в .zip архиве с паролем. У меня злой антивирус ))

Nowell:
Однозначно полезный и нужный скрипт, добавил в избранное. Спасибо автору! :)

Обновления не забывайте скачивать. Сейчас бывает, что по два раза на дню выходят.

---------- Добавлено 10.04.2012 в 08:31 ----------

Карманный флудер:
504 Gateway Time-out

на старой версии айболита не было

На старой версии проверялось в несколько раз меньше файлов. Запускайте из командной строки или увеличьте timeout в php.ini.

WebGomel:
Тестировал сегодня этот скрипт на взломанной джумле, причём судя по количеству шеллов, их разновидности, и дате загрузки, взломанной не один раз - айболит показал себя на твёрдую четвёрку с плюсом :) gregzem спасибо.

Четвёрка, потому что не нашёл он FilesMan. Точнее, он его определил как потенциально опасный, но вот шеллом не назвал. Однако его же, но немного в другом исполнении нашёл.
...

Спасибо за комментарии. Нужно понимать, что все возможные варианты и сигнатуры собрать физически нереально. Любой шелл можно обфусцировать бесконечное кол-во раз. Уверен, кто профессионально ломают сайты, как раз так и делают - шифруют для каждого нового сайта новым способом. И найти такой обфусцированный вариант можно единственным способом - с помощью эвристики. Я анализирую base64 кодированные последовательности и стандартные функции, типа eval(), base64_decode(), gzipinflate().

Естественно, нельзя 100% гарантировать, что эти функции не встретятся в CMS или других скриптах, поэтому скрипт при обнаружении не кричит про шеллы, а уравновешенно предупреждает о том, что в файле подозрительный код. А уже ответственность админа сайта сходить и проверить, что там. В большинстве случаев там действительно оказывается какая-нибудь "нечисть".

---------- Добавлено 10.04.2012 в 06:38 ----------

TF-Studio:
Товарищ, а можно сделать как-то по-другому?
Так чтобы можно его было запускать по крону и сохранять где-то результаты (или на почту).
Цены бы не было тогда )

Товарищ, ага :)

По-другом сделать можно, причем мое участие здесь не нужно. Я писал об этом уже выше:

/usr/bin/php ai-bolit.php > result.html
^^^^^ путь до вашего интерпретатора, где там у вас он установлен

Запускать можно раз в сутки по крону - будет сваливать в файл result.html (пути там правильные указать и все будет хорошо).

В кроне можно настроить, чтобы он результат отработки скрипта присылал на почту. Будет вам как раз отчет на мыло.

---------- Добавлено 10.04.2012 в 06:40 ----------

kismedia:
Очень полезный скрипт.
...
Единственная проблема - последняя версия выдает ошибку:
Скрипт не вернул результата в требуемое время.
Возможно хост, к которому обращается скрипт не отвечает

Это можно исправить или у меня на хосте прописыватиь лимит на выполнение сценария.

Или ставьте лимит на время выполнения скрипта минут 20 (на время запуска ai-bolit.php), или

(так предпочтительнее) запускайте из командной строки через ssh.



---------- Добавлено 10.04.2012 в 06:41 ----------

neonlabs:
Аналогичная ошибка выскакивает.
Версия PHP 5.2.6-1+lenny13

Я добавил проверку на "scandir" в новую версию скрипта. Если функции нет - работать не будет. В перспективе, наверное, переделаю на обычные opedir, readdir. Может кто знает, почему функции scandir на некоторых хостингах нет?

Jaf4:
Очень ждем..
Вопрос такой, как правильно поставить его на дедик так, чтобы просмотрел всю папку www (сайтов около 70-ти)?

Надо положить на уровень выше www, зайти по ssh, запустить его из командной строки

php ai-bolit.php > result.html

и посмотреть что получится.

---------- Добавлено 09.04.2012 в 14:27 ----------

pwd:
Я обычно пользовался шельником find + grep + mail по крону, преимуществ в реализации http не вижу.
Тем не менее большой респект за сигнатуры ! где вы их насобирали

По сусекам поскреб ) У меня много клиентских сайтов оказывается с шеллами были. Оттуда много навыгребал.

Да добрые люди помогли, подогнали несколько новых буквально на прошлой неделе.

pwd:

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

Это все здорово, но конкретно этот скрипт проектировался как маленький и удаленький, самодостаточный и не требующий никакого хранилища. Конечно, можно реализовать и инкрементальную проверку (с сохранением предыдущих результатов) и отправку на email, и запуск по cron'у. Наверное, я все это сделаю, но чуть позже, и это будет отдельный скрипт.

---------- Добавлено 09.04.2012 в 15:11 ----------

Хортица:
Может и я криво смотрел, но вот часть из того что не увидел у Вас: http://rghost.ru/37490877
По поводу типизации, вот картинка - http://rghost.ru/37490941 - откройте ее в текстовом редакторе точнее с помощью текстового редактора и посмотрите. О дальнейших действиях в целях безопасности рассказывать не буду, но тот кто понимает что с этим можно сделать, тот сделает и без меня.

Так вот собственно вопрос был в том - какие расширения файлов проверяет ваш скрипт? Опять же не увидел этого.

Спасибо за архивчик. Добавил сигнатуры, обновил архив со скриптом http://revisium.com/ai/.

Про типизацию: по-умолчанию сканируются только .php*/.tpl/.inc/.htm*. Но если в скрипте поставить константу define('SCAN_ALL_FILES', 0); - будут анализироваться все файлы (включая картинок). Ваш .jpg файл тоже найдется.

zzzzz:
Права поставил, теперь открывается белая страница :(

Что-то, видимо, не то поменяли. Я смогу помочь, если будет FTP доступ.

---------- Добавлено 09.04.2012 в 12:23 ----------

Master_globus:
gregzem, Было бы не плохо, в случае появления на сайте подозрительного файла, на почту админа приходило письмо-уведомление.

В перспективе так и планировалось. Но это уже другого класса скрипт. Чуть серьезнее )

Всего: 273