AntiBdoor @author Dimi4 [UASC] @copyright 2009 @version 1.0 B Скрипт для мониторинга ваших файлов. Разделы админки: Get detected alerts - Получить из базы список модифицированых файлов. Check files - Проверить на наличие модификаций Crawl - Наново проиндексировать все файлы Search Shells - Осуществить поиск шеллов (по имени и фиксированному размеру) Options - Опции После установки (необходимо PHP+MYSQL) рекомендуется засунуть в кронтаб файл cron.php на выполнение каждые 15 минут. Результат проверки будет оправлен на мыло, указанное при установке. Это только Бетка, так что все будет дорабатываться, пополнятся функционал. Сриншоты: install auth Inside - http://img692.imageshack.us/i/insidev.jpg/ Скачать - http://uasc.org.ua/files/antibdoor.rar
Реализация поиска шеллов не понравилась =) На днях столкнулся с проблемой, мой шелл удаляли на одном серваке чуть не каждый день, в итоге фартануло и нашел сканер файлов который ищет функции exec, system, eval, iframe и тд. так что думаю по етой аналогии и стоит делать систему, в добавок подобный скрипт нужно держать не в ДОКУМЕНТ_РУТ, сделать алиасом, держать под .htpasswd и под правами отличными от www юзвера. Можно даже добавить функцию "Точек восстановления" тоесть сканер видит измененный файл, и заменяет его безопасной копией.
Конечно реализация для поиска шеллов тупая, но я говорю что это бетка. Добавлю функции поиска по содержимому и тд. Над точками восстановления можно подумать
Например в скриптах шелла можно изменить пароль, изменяешь > уже не соответствие размера А если например eval(base64_decode()) ?) Тогда точно ненайдёшь
ну конечно) А если шелл закодирован в base64 или гзипом? Что ты будешь искать? Поиск по размеру очень хорошая идея, хотя конечно другие алгоритмы поиска добавить не помешает
Да есть туча вполне мирных функций, которые можно использовать в качестве полноценного бекдора. Если все их искать, получим тучу ложных срабатываний. Хотя в любом случае подобный скрипт только полумера, лучше так чем ничего. Хотя бы от киддисов поможет.
РСТ палится евалом ВСО палится прег_репл с ключем "е" Как сказал Qwazar "лучше так чем ничего" Что хорошего ? Потер лишние коментарии в скрипте (если есть) и втулил свой код. Если уже и проверять то по мд5 сумме файлов, и иметь папку mirror с копией веб директории для мгновенной замены если несоотвествует сумме мд5.
евалом палится куча мирных скриптов, как и прег_реплейс с /е, такой поиск выдаст кучу ложных срабатываний. Оно надо? а ты сам то часто трешь коменты чтобы изменить размер?
Насчет коментариев, допустим ситуация такая что я каким-то образом знаю что проверка осуществляется по размеру =) Это все конечно теоретически. Все же если делать, так делать на совесть =)
не забываем тот факт, что многие веб приложения используют кеширование, а это значит создаются временные файлы.
Чисто теоретически любую защиту можно обойти. Вопрос времени. Но это не значит что защиты не надо. >>Кстате планирую добавить исключения, правила.
Вот собственно мой простенький вариант на баше ) И так что умеет: + работает без использования БД + поиск изменений в файлах + отправка этого добра на указанный email + автоматическое восстановление файлов и удаление новых + возможность указать файлы(типы) которые не надо проверять Прикрепил скрипт в архиве. Как использовать: 1. для начала распаковать архив, например в домашнюю директорию пользователя /root/smonit 2. поправить файл config, установить нужные пути 3. добавить в nocheck.txt типы файлов которые не надо проверять 4. дальше перейти в директорию /root/smonit и выполнить команду ./create.sh . Эта команда создаст точку восстановления в каталоге /root/smonit/backup 5. затем следует добавить в cron Все, готово. При изменении файлов, в зависимости от настроек, будет высылаться емаил, a файлы автоматически восстанавливаться. Косяков конечно там много... ну эт просто наброски. К чему это я, да к тому что не нужно изобретать велосипед. diff и patch
Делал когда-то такую штуку, как плагин к админке магазина. банально. делается md5 слепок всего нужного и записывается в базу либо в файл (на сервере не сохраняется, выдается на скачку). потом сверяется со слепком. что-то поменяли - сделали новый слепок и работаем дальше. имхо, парсить код совсем не вариант.
Че-то спорите ниочем. Давайте все-таки различать 2 задачи: 1. Обнаружение бэкдоров с помощью поиска изменений в файлах, когда у нас есть слепок файлов и каталогов 2. Поиск бэкдоров когда никакого слепка нету. Это 2 совершенно разные задачи и, на мой взгляд, для их решения стоило бы создать 2 разные тулзы. Первая задача решается, вобщем-то, легко, и мне уже немало реализаций для ее решения встречалось. А вот поиск бекдоров без слепка - гораздо сложнее (и интересней ). Способов автоматизированного поиска можно придумать кучу, и поиск по опасным функциям - это лишь самый примитивный, хотя и действенный (пускай и с ложными срабатываниями) - по собственному опыту могу сказать, что 90% взломщиков не удосуживаются хоть немного обфусцировать код спрятанного шелла.
update. версия 1.1 http://uasc.org.ua/files/AntiBdoor_v1.1.rar *Мелкие исправление *Добавил Exceptions В следующей версии: постараюсь реализовать новые методы поиска шеллов, функцию точек восстановления. p.s. в паблек