Joomla вірус iframe і як його видалити





Що собою являє цей "подарунок долі"? Це файл, в якому запрограмована генерація певного коду з iframe і додавання його в файли за певною масці. Якщо Ви виявили код з iframe у себе на сайті, значить потрібно в першу чергу шукати саме файл-генератор цієї зарази, а не викорінювати всі заражені файли.
Нещодавно до мене звернувся клієнт, у якого був свій сайт. який був створений рік або два тому на движку Joomla 1.5. Стояло завдання привести сайт в нормальний вигляд і поставити його на просування. При цьому всі паролі до хостингу і адмінки були загублені, але слава Богу згадали пароль пошти, на яку реєструвався хостинг. Таким чином, подавши заявку на зміни пароля з контактного ящика, отримав паролі до хостингу, виходячи з чого зробив доступ до ftp і т.д. Маючи доступ до БД, вирішив питання щодо скидання пароля до адмінки Joomla. Далі слід було зробити найскладніше - викорінити вірус iframe.
Як згадувалося вище - спосіб №1 - повністю перезаліть файли сайту з бекапу, зробленого в момент, коли сайт ще був "здоровий". У моєму випадку, з моменту зараження пройшло вже більше 8-ми місяців і жодного бекапу колишнім так званим вебмастером жодного разу не робилося. Хостер як виявилося зберігає резервні копії на протязі останніх 7-ми днів. З цієї ситуації є 2 виходи - створити сайт заново, або лікувати вже існуючий. Вирішив спочатку спробувати прибрати вірус.
Поміняв всі паролі доступу до сайту, побачив і видалив в корені сайту підозрілий php-файл, не виключено, що це і був той файл, який і генерував iframe. Виявив кілька тисяч заражених файлів, де в кінці кожного була прописана рядок з посиланням на сторонній сайт, що починається з
- Міняємо всі паролі доступу до сайту.
- Відключаємо антивирусник (якщо він "матюкається" на
- Копіюємо всі файли кореневої директорії сайту до себе на ПК.
- Качаємо і встановлюємо "Notepad ++". Запускаємо.
- Шукаємо інфіковані файли і видаляємо


Після того, як натиснули "Знайти" Ви побачите вікно результатів пошуку, в якому міститься інформація в яких файлах міститься зазначених код, шляхи до них і т.д. Проробивши те ж саме і натиснувши "Замінити в файлах" ми тим самим замінимо цей рядок на нічого, чим і видалимо її.

Але таке прокотить тільки в тому випадку, якщо код у всіх файлах однаковий. Я зіткнувся з тим, що код відрізнявся посередині рядка цифрами (що напевно позначали генерацію якогось лічильника). Так що довелося все файли "index.html" правити в три етапи: замінювати спочатку першу частину рядка до цифр на порожньо, замінювати другу частину рядка після цифр на порожньо і замінювати кожну цифру на порожньо:

Тут використовується регулярний вираз "/ d", яке позначає цифру. Таким чином, ми замінюємо всі цифри в кожному файлі index.html обраної директорії. При цьому зверніть увагу на те, що "режим пошуку" потрібно встановити в "Регулярний вираз".
Після цих дій все файли "index.html" вилікувані і коли ми відкриємо будь-який з них, він буде містити ось такий код:
Інфіковані php-файли правимо вручну, оскільки заміна цифр призведе до того що повністю їх зіпсуємо, оскільки ці файли до зараження містять інші цифри, крім того що під шкідливий код. Але, знаєте, це файлів 100, а не 1000, тому закочує рукави, і шарудить пальцями по клаві і мишкою по столу.
- Знаходимо шкідливу рядок в інших файлах (я шукав все заражені файли за посиланням на сторонній сайт, яка була в iframe-рядку):


які і правимо вручну:
