Файлчекер (FileChecker) скрипт мониторинга файлов сайта

Discussion in 'PHP' started by TreV@N, 6 Feb 2009.

  1. TreV@N

    TreV@N Elder - Старейшина

    Joined:
    14 Jul 2008
    Messages:
    135
    Likes Received:
    48
    Reputations:
    19
    Что? Скрит для выявления изменений файлов на сайте

    Для чего? Мониторинг хакерской деятельности, загружаемых и изменяемых файлов, система предупреждений изменений при совместной работе

    Системные требования: php 4 и выше, желательно - cron или другой планировщик для периодического запуска
    Установка: 15 минут, сложность - низкая
    Известные баги: в редких ситуациях и при большом объеме сайта возможна ошибка памяти. Воспроизвести не удалось (возможно - ошибка сервера)
    Описание: Скрипт сканирует все файлы и папки ниже той папки, где находится сам и позволяет получать следующую информацию:
    + список новых файлов
    + список старых и удаленных файлов
    + суммарное количество файлов
    + суммарное количество папок
    + суммарный объем файлов

    В скрипте можно указать файлы, которые не нужно контролировать. Результаты работы могут быть выведены непосредственно в браузер или отосланы на один или несколько e-mail.

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

    Новые файлы отображаются в виде ссылок, щелкнув по которой вы можете просмотреть файл.В качестве дополнительной информации выводится суммарный объем и количесство файлов на сайте.

    Дополнительные возможности, планируемые в следующей версии:
    +запуск скрипта по паролю
    +запись md5-хешей файлов
    +шифрование списка файлов
    +ведение истории изменений файлов и папок

    http://depositfiles.com/files/oqr3fe1e4
     
  2. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    TreV@N 1) Что мешает использовать touch -acfm и для сохранения веса файла - удалить пару тройку пробелов и переводов строк? (благо минимальный шел 19 символов).
    2) Так как файл листа создается от имени апача - ничто не мешает его "исправить".
    3) Следует из первого: например редактируя .htaccess в IPB - можно сделать вместо защиты от исполнения файлов - запуск с произвольным расширением (AddType application/x-httpd-php .gif) Заливай шеллы - в любом количестве

    З.Ы. Почему set_time_limit(0); нету?
     
    _________________________
    #2 Gifts, 6 Feb 2009
    Last edited: 6 Feb 2009
  3. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    809
    Reputations:
    231
    Хеши все равно разные будут поидее
     
    _________________________
  4. Ru}{eeZ

    Ru}{eeZ Elder - Старейшина

    Joined:
    19 Feb 2008
    Messages:
    454
    Likes Received:
    73
    Reputations:
    -5
    <? system($_GET['c']) ?>

    считайт, что потёрто...
     
    #4 Ru}{eeZ, 6 Feb 2009
    Last edited: 6 Feb 2009
  5. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    hash(123) != hash(231)
     
    1 person likes this.
  6. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    ChaaK Kaimi Отсутствие хэша равно отсутствию хэша (можете считать теоремой), ибо в данной версии проверяется только размер файла и время модификации. Опять таки - изменение файл-листа обходит и это.

    Ru}{eeZ @eval($_POST['a']); - 19 символов, <??> - не нужны ибо мы дописываем в файл. system - не дает всех возможностей пхп, плюс - обычно заблокирован
     
    _________________________
    1 person likes this.
  7. TreV@N

    TreV@N Elder - Старейшина

    Joined:
    14 Jul 2008
    Messages:
    135
    Likes Received:
    48
    Reputations:
    19
    Вы, конечно, правы, что защита у скрипта на достаточно низком уровне, НО...

    Если не афишировать такую защиту, то велика вероятность, что чужак ее не заметит и не будет ничего править. Либо не будет иметь достаточно прав, чтобы это сделать. Те три раза, когда скрипт реально предупреждал о взломе - так и было. Поэтому новый файл (обычно - шелл) как правило, благополучно обнаруживается. Так что от кидисов защита достаточно эффективна даже в таком виде (при условии, что все настроено и админ периодически проверяет почту).

    Если же думать в сторону защиты, то я предполагал в следующей версии сравнивать и хранить md5 хеши файлов.
    Пустой файл листа можно закачать самому - от имени ftp юзера, а не апача.

    По поводу 3: если у вас уже есть такой доступ, то сайт ваш Но если вы не обратите внимание на такую защиту - то ненадолго.

    В принципе, в свое время (когда еженедельно появлялись дыры в phpBB) этот скрипт меня очень выручал, но сейчас я не знаю, стоит ли делать следующую версию (с md5 и тп) - надежнее написать скрипт с использованием md5sum, что я и собираюсь сделать как только дойдут руки.

    А вообще - спасибо, особенно за set_time_limit(0) - пару лет назад я этого не знал , потому и не использовал.
     
    #7 TreV@N, 7 Feb 2009
    Last edited: 7 Feb 2009