Как правило такая фигня распространяется двумя способами:
А. дыра в сайте. ищется путём усердного чтения логов и поиска шеллов.
совсем недавно я помогал товаришу с похожей штукой (на ресурсе воткнулись iframe'ы). порядок действий был примерно такой:
- сравнение с бэкапом и выявление изменнённых / новых файлов
- изучение новых файлов, естественно, один из них оказался шеллом ( .cache_rcnzyz.php )
(если нет бэкапов, то ССЗБ стоит поискать на стандартные функции шеллов (в случае с php это всякие shell_exec и base64 [стоит учитывать, что свой код так же может их использовать, поэтому искать нужно внимательно])
- изучение логов на предмет доступа и заливки данного шелла. у меня были примерно такие строки:
xxx.xxx.xxx.xx - - [09/Jan/2013:18:09:46 +0400] "POST /images/stories/.cache_rcnzyz.php HTTP/1.0" 200 501 "-" "Mozilla/5.0 (Windows NT 5.1; rv:8.0) Gecko/20100101 Firefox/8.0"
к сожалению злоумышленник оказался достаточно осторожным и с этого ip (который к тому же оказался и зарубежным, т.е. доблестной полиции не пожалуешься) других обращений не было. нужная дыра была найдена по времени создания файла (+- пара минут).
zzz.zzz.zzz.zz - - [08/Jan/2013:00:02:21 +0400] "POST //index.php?option=com_jce&task=plugin&plugin=imgmanager&file=imgmanager&version=1576&cid=20 HTTP/1.0" 200 668 "-" "BOT/0.1 (BOT for JCE)"
ура, дырка найдена, заплатка сделана, злоумышленник забанен.
В. человек с ftp доступом к ресурсу подхватил троян (про ssh слышал лишь один раз). ну тут менять пароли и фиксить заражённую машину.