Я радий, що послухати про чуже горе ледь-ледь набралося 15 людей 😉
Але ви просили – ми зробили. Лонгрід. Зумерам набратися терпіння. Тіктокерам – взяти відпустку для прочитання.
Мій сайт зламали. Як дізнався – на пошту прийшло повідомлення, що в Google Search Console додали двох нових користувачів. Звісно, що я їх не додавав. Підтвердили через завантаження файлу в корінь сайту. Це вже не вперше мої сайти ламають. Також пробували шантажувати тим, що, мовляв, зламали і що треба дати на хлєбушек з маслом ось на цей криптогаманець, тоді все повернеться вспять. Але це інша історія, то про неї й іншим разом.
Пішов дивитись по FTP, що сі коїть. Зайшов, а там купа папок зі сторінками, які раніше з бази тягнулись, а зараз напряму з файлів відкриваються. Зробили з сайту дор. Для роботів сторінки з казино (привіт колегам Сороки), а для людей – код 403. Лазиш по меню, а замість сторінок сайту – помилки. В пошуку – сніпети слотів. Ці хлопці навіть встигли в Google Search Console відправити примусово 12 сторінок на індексацію.
Пройшовся по всьому цьому, видалив усе підозріле, змінив паролі (адмінка, БД, FTP, SSH, пошта), перевірив доступи і відновив частину файлів з резервної копії. Здавалось, що на цьому можна видихнути.
Видихнув. Але ненадовго.
Як виявилось, адреса сайту вже ходила по якихось тематичних Telegram-каналах як зламаний ресурс, на який можна заливати свої файли. Тому після першого очищення прийшли знову й досить швидко підсадили вже інший код.
Тут стало зрозуміло, що просто видаляти наслідки можна довго. Треба шукати, через що саме заходять. Це мало бути зрозуміло з самого початку, але… Ну, протупив я, чого тут викручуватись.
Знайшов файл, дата створення в якого «сьогодні». Почав розбирати серверні логи. У них знайшов, коли до того файлу був запит і проаналізував, до чого був запит безпосередньо перед цим. Знайшов послідовність запитів: звернення до старого компонента JCE, завантаження першого PHP-файлу, а потім створення через нього наступних. Компонент JCE (редактор тексту/коду) був дуже старий, як і сама Joomla. Оновлення Joomla і компонентів ускладнене через відсутність оновлення для деяких компонентів (а сам JCE треба знову купувати, бо ліцензія закінчилась) і через великі зміни в шаблоні, перенести який на нову версію немає змоги, бо він не підтримує наступну версію PHP.
В общім, зробити можна, але дуууже багато часу і гемору, тому простіше не оновлювати :) Але й ризикованіше, як можна побачити.
Також після другої підсадки файлів створили нового суперадміна в БД і нові профілі для користувачів JCE, яким дали права на завантаження не лише зображень через редактор, але й php файлів. На цей раз замість того, щоб робити дорвей просто додали код в шаблон сайту для виведення посилань. Бог вам суддя, якщо ви купуєте посилання з ломів! Стид-позор!
Другим заходом вже прибрав саму першопричину: повністю видалив старе розширення, його профілі, тимчасові файли та зайві акаунти в Joomla. Також завершив усі активні сесії, ще раз змінив доступи й перевірив SSH, FTP, базу та файли сайту. Ну і сам код, що тягне лінки, звісно, видалив.
Видихнув ще раз. 🤞
Підсумуємо:
1. Слідкуйте за сайтами. Навіть якщо вони не наповнюються/оновлюються і просто висять собі, то треба контролювати, щоб вони не висіли для когось другого.
2. Двофакторка допомагає від бруту і або використання паролів зі зламаних баз, але є купа інших способів залізти туди, куди ви б не хотіли, щоб хтось ліз.
3. Треба шукати першоджерело зламу, а не лише видаляти наслідки. Я й досі заходжу пару раз на тиждень і дивлюсь, чи не з’явились якісь нові файли на хості. І базу проглядаю, чи не з’явилось нових записів.
4. Налаштуйте всі сповіщення, які тільки можна, про якісь суттєві зміни на сайті.
5. Обмежте доступ по FTP тільки для свого IP. Це трошки незручно, якщо IP часто змінюється, проте дає додатковий захист.
П.С. Як виявилось, це була стара відома проблема з цією версією JCE - 2.7.14.
Тому якщо у вас щось працює на старій джумлі і маєте цей компонент – перевірте, що там з цим компонентом і або оновіть, або видаліть.
Post #36
108
SEO Окунь От наче від взаємодії з контентом в ТГ каналі щось залежить... Але давайте пограємо в ці «якщо це пост набере...» Максимум в каналі було 11 реакцій на публікацію. Тому... Якщо цей пост набере 15 реакцій (какуні теж рахуватимуться), то я розкажу, як на цих…
- 🔥 3
- 😱 3