![]() |
Антивирус на php.
Идея.
Скажем, у Вас есть свой проект (пусть тот же хеко-саент) который Вы холите и лелеете. Но Вам постоянно докучают злобные хэккеры, ужасающе втыкивающие кавычку в адресную строку и пишущие алерт(/лол/) в Ваших комментах. Да мы не идеальны, допустить одну брешь можно и да наверно, скорее, нужно. Писать без ошибок не получается только у тех, кто не пишет ничего. Ну так вот, допустим писали вы свой проект и допустили такую маленькую ошибочку, а злобный хакер применив свой талант втыкивать в нужное место кавычку и хеккерский прием (инто аутфайл) закатал Вам свой шелл. А теперь надену галстук и скажу немного серьезнее. Вчера мне пришла нетрезвая мысль написать «антивирус» для своего блога. Из всего выше изложенного бреда, можно уяснить, что данный скрипт будет искать гадкие веб шеллы. Приступ к алгоритмизации и последующей реализации. PHP код:
Моя логика была такова: имеется массив с названием папок(он же $dir), из которого затем извлекаются имена файлов, у которым делаем обрезание(по расширению) и если этой php-файл заносив его в новый массив, элементы которого проходят проверку на вшивость из уже имеющегося массива заданных файлов. P.S Конечно, если хеккер проникает внутрь то он может залить свой шелл как index-файл в любую диру, но это представляет опасность с точки зрения многих искателей приключений, хочется как бы затаиться, поэтому и придумывают имена отличные от index.php =)) ЗУФСУ ! |
вообще от такой фигни пользы практически нет.
|
А что мешает хакеру, залившему шелл, добавить его в список разрешенных?
Имхо такую вещь надо реализовывать так: делать скрипт на баше, который раз в Н часов (по крону) проверяет папку на наличие подозрительных файлегов и в случае обнарежения оных отправляет админу письмо. Примерно, вот так: Код:
my $dir = '/usr/local/bin/apache/htdocs'; |
проникнувший на саент хэкка может внедрить злостный код прямо в антивирус и он будет писать чтонибудь матное или работать не так как полагается или просто удалить или он просто ... вот так вот =\
|
2KSURi:
Огасики.. Тогда уж сообщение на сотовый =) Я не кожу на баше =/ Цитата:
Цитата:
|
2r0
фишка не в мыле, фишка в том, чтобы хакер не имел доступа к скрипту авира. |
Ну да, ты прав..
|
еще вариант в зенде его зашифровать.
|
Я нечто подобное писал, даже где-то сохранилось. Мой скрипт искал новые файлы, и если файл подпадал под критерий опасности посылала мне на мыло информацию.
+ проверял размеры всех существующих файлов с теми же размерами хранящимися в базе. Эта проверка раз в сутки запускалась. Отдельно можно было запустить проверку контента новых и измененных файлов на предмет наличия "опасных функций". Вещь на самом деле полезна для тех кто любит устраивать на ФТП своего сайта свалку, так что потом в случае чего хрен поймешь что твое а что чужое. |
Цитата:
|
Как я понял, скрипт проверяет только определенные диры?
Что мешает сделать mkdir pohek; echo 'evil c0de here' > pohek/xek.pl ? |
В идеале он должен рекурсивно проверять все диры и файлы из некой корневой точки
|
Цитата:
|
Ненадо такое писать а тем более класть в паблик.
"Не пили ветку, на которой сидишь." |
Цитата:
|
уже писали и выкладывали подобные скриптики..
кроме того под *nix ведь тоже бывают антивирусы, которые умеют искать и веб-шеллы.. |
Подобный скрипт может помочь владельцу сайта, но теперь представьте админа сервера (примерно на 1к сайтов) которого зафлудит мессагами :)
PS: код php вообще не читаем раскраска ужасна (берите пример с vim) |
Вспоминаем сниффер!!!
к примеру через SQL-inj или PHP-inj заливаем shell.jpg и .htaccess который будет асоциировать картинку с php файлом. ;) ну а далее дело техники.... Квартет (с) Крылов ;) |
аффтар жжот)
нужна рекурсия по дире: PHP код:
добавить функцию хеширования файла мд5 и проверять чек-сумму, ведь обычно код встраивают в существующие файлы. проверять на всяк дату изменения (если ты параноик) но это просто обойти. скрыть сам скрипт антивируса, например в свою домашнюю диру. или же сверять файлы с копией в надежном месте. + верно отмечено, зырить так же нужно и на спец файлы веб-сервера (.htaccess .htpasswd) Конечно, когда серв под 1 проект, или он под хрутом, то лучше всего вырезать все "ненужные" форуму функции пшп машины. ЗЫ считаю глупостью рассказывать свои применяемые методы, т.к. это ослабит их защиту) |
эти методы и так не дают никакой защиты, разве что от полных нубов, которым дали ссылку на шелл.
|
Идея на нова. Проще сделать следить за контрольной суммой ф-лов и директорий. Написать скрипт, который из крона каждые 5 минут будет это проверят. В случае изменения контрольной суммы файла\директории создавать страничку "ворненг! одей сплойтенг детектед!" и закрывать доступ к сайту :)
А твой способ не сработает при банальном протраянивании файла. |
Talisman
Если бы все думали как Вы, сейчас php был бы правительственной тайной Цитата:
Цитата:
|
Можно написать скрипт который будет выводить на вашу страницу...коглда и какой файл изменился посл.раз....
Если допустим это было сделано не с вашего ип, то....эм.....че-нить делаем... Уйма способов |
Это уже не антивирусы обсуждаются, а... ну... фильтры что ли...
под антивирусами я бы понимал какие-нить анти-руткиты или типа... |
А имена шеллов всегда такие будут?
PHP код:
|
Цитата:
|
Цитата:
|
У него в коде написано
Цитата:
|
Это уже получается Ids с контролем целостности файлов.
|
Цитата:
Вот это отличная идея, если кто сможет, реализуйте плиииз!!! |
>> Вот это отличная идея, если кто сможет, реализуйте плиииз!!!
ок, напишу на Perl.. +) |
Цитата:
|
Я завтра напишу на Php, но в моей версии кроме отправления сообщения на мыла, сайт будет закрыватся (тут естевственно надо под конкретный проект писать)
|
4 Nightmarе.
Делать было нечего, сделал Скрипт пользуеца мускулом, предварительно ему нужны данные для доступа. Он делает слепок директории и заносит в базу, делая мд5 и определяя размер файлов и директоии. При проверке эти данные сверяются, если что-то не совпадает то в корне контролируемой директоии создается .htaccess блокирующий файл для всех (кто хочет может поменять на локалхост) и высылает репорт админу. Код:
<?phpЗ.Ы. Просьба на корявости не обращать внимания, ибо писал ночью и особенной ценности скрипт для меня не представлял. З.Ы.Талисману пасиба за реверсивный поиск, ибо самому было лень) |
Супер, пасиб за скрипт!!!!!!
|
life_is_shit, в твоем скрипте дырок 5 минимум...
Инклуд и скули уже увидел... |
Нету там ни одного вызова инклуд функций.
life_is_shit, пасиб за скрипт. |
В идеале брать чексум файла и проверять на изменение. Скрипт кодится зендом и все. никаких проблем. Зенд платный? О_о
|
Безусловно скрипт не имеет смысла и не от чего не защищает. Защита от инклюда файлов должна быть сделана на основании серии исследований:
1) Проверка контрольной суммы всех файлов. 2) Поиск записей в файлах, которые попадают под возможности шела (типа инклюде, eval , system и т. д.) . Файлы в которых нужны эти функции и места в них помечаются (хотя по любому проверка мд5 такие файлы защитит). 3) Создаем серию ловушек. Типо файлы конфигов и мониторим время их просмотра. В случае измениния времени начинаем думать какая зараза смотрит наши файлы. Этого будет достаточно. Могу тоже самое продолжить про мониторинг всег sql инъекций, но это на уровне шаре хостинга реализовать сложнее. |
4 Егорыч+++
Полностью прав, но для магазина к примеру скрипт вполне подойдет. 4 Nightmarе & 4 The_HuliGun всегда пожалуйста, если нада туда чонить дописать пишите в аську, без проблем. 4 Isis вообще-то скрипт желательно запоролить, или поставить доступ с одного Ip. недостаток в том, что пароли к базе в открытом виде, но есть зенд) |
| Время: 22:30 |