Привет, с вами Джонни Хищник. И сегодня я вам расскажу, как мы гоняли втроем самку чужого

predator

Привет, с вами Джонни Хищник. И сегодня я вам расскажу, как мы гоняли втроем самку чужого

Вкратце. В последнее время завелась какая напасть. В магазинах  на Opencart появляется вирус, который переименовывает error.log в error.php и начинает себя плодить по всем папкам, куда у него хватает прав записаться.

Я три дня вялотекуще бился над этой проблемой и плюнул уже, решив угомонить зловреда по классической схеме (выделенный сервер + suhosin +  mod_security + htacces c Deny From All во всех критичных местах) и через месяц любая падла забивает на попытки тебе нагадить в тапки), но господин Freelancer оживил тему и подкинул идей иии.. понесласаь. Потом появился господин Savage4Pro и мы тесной гопкомпанией с ружбайкой на перевес раскинули корм и сели в засаду.

Что из этого получилось?

Подробности вечером.

И кстати — всех деталей не раскрою. Так как уязвимость Opencart — оказалась вроде бы и не уязвимость, но определенную опасность особенно от Школоты и обиженных фрилансеров под собой несет. Хотя если я ошибаюсь и все хуже чем я думаю — то это может быть не уязвимость а дырища. Но мы в шесть пар глаз просмотрели десять раз по кругу один и тот же код. По идее всему виной по классике admin/admin и 12345.
Так что чую придется писать Сесурити-пак, во избежание подобных ситуаций.

Как я уже писал последствия были достаточно типичные. Error.log переименован в Error.php — там загрузчик вредоноса. И потом через этот загрузчик во все доступные папки для записи грузятся обфусцированные файлы. Фрилансер, случайно в разговоре сказал, что есть мол новый модный вирус — работает через админку. Как заселяется непонятно.

Так как несколько дней назад я все вычистил и пересмотрел 10 раз. Поставил минимальные права на папки и позакрывал все известные дыры и все равно. Значит что то я делаю не так. Слава богу мы смогли обнаружить логи магазина.

В которых, четко, во время появления зловреда было обращение к контроллеру админки с готовым сформированным токеном, после которого log.error снова мутировал. Это гооворило о двух вещах. У зловреда был доступ в админ и лог пасс от юзера с админскими привелегиями, который позволил сформировать этот токен. Или все сложно и запущено и это глобальная жопа, И какой то умник написал совсем дикую срань, которую хрен обнаружишь и которая подделывает токен, куки, формирует сессию и отсылает владельцу.

Тогда было принято решение ловить на живца, из того что я начитался про подобного рода мероприятия, было ясно, что через какое то время зловред не найдя своих посевов, очнется и будет пытаться тем способом которым он заселился сеять вновь.

В любом случае любой зловред получает указание из мира через get или post запросы. А так как ни один хостинг не хранит данные запросов — а только заголовки, а у нас еще и потный beget. Ну что ж, написать логгеры post-get контента, дело пяти минут. Но что делать с сессиями? Ведь сессия жива, в папку  к сессиям на шареде доступа нет. Ну и хер с ними Фрилансер подсказал гениальную идею — перенести их в локальную папку прямо в корне движка. А как же настройки сессий, спросите вы, да похрен на них — делаем это прямо в index.php, Не забываем, делать в обоих. Ну и нам же надо отловить mysql на всякий случай. Для запросов тоже пишем лог. Берем ружбайку, меняем пароли в админке. Чистим заново всю гадость, садимся  и ждем. Время к полуночи. Иди сюда. POST  login=>admin  (admin | admin).  И такое бывает на рабочем магазине, оказывается был такой юзер. Которого в процессе самолечения грохнули и сказать забыли. И собственно банальным брутом эта зараза и получила доступ в админ. Создала сессию, а кто — то умный сделал в php.ini gc.maxlifetime = 999999999. Так что этой одной сессии хватило бы до скончания времен.

А дальше цирк с конями. Вдруг начинается дождь обращений  к каким то уже давно убитым php файлам, и почту шлет и пароли подбирает, и команды на старт раздает. А ничего нету все убито. Но за счет обнаружившейся ошибки на сервере. Бот видит 200 ок. И думает что он в работе. Вобщем изьебывал я его до утра. В процессе почитывая рекламу Виагры, Сиалиса и увелечения пинаса из рассылок.

Когда утром стало понятно, что проделанных мероприятий достаточно. Звероящера больше нет возникло три проблемы:

1 — определить был ли это таки мегазловред, или классический брутфорс админки и использование уязвимости с админским доступом.

2 — принять меры для того чтобы исключить повторение подобного в будущем. Так как это все черевато ошибками при работе магазина. Вонью хостеров, попаданием в спам и абуз базы. И нарушением привычного ритма работы.

3 — в каком формате обозначить суть проблемы, ведь если расписать механизм атаки полностью, завтра в к каждом подвале, каждая уважающая себе школота начнет брутить поголовно админки магазинов.

По первому пункту. Хоть Фрилансер и высказывал аргументы, что это очень странное поведение вируса, мое личное мнение один в одни сходится с мнением уважаемого Savage4pro, привожу цитату:

точно, можно поставить один кривой маленький модуль и открыть БД на редактирование с фронта, чего же нет, зачем все остальное
я к чему, если есть идеи насчет списка конкретных модулей, которые отправляют авторизационные данные куда попало, надо их изучить

Т.е. вероятность существования модулей с намеренно внедренными спящими эксплойтами, мы допускаем. Но в ситуации, если у нас есть готовый эксплойт, мы считаем что то поведение, которое проявлял зловред, однозначно является поведением узконаправленного, но все же ботнета, чем хитромудро внедренного модуля либо же специально обученного человека. Потому как,  если у вас получилось занести зловредный файл на хостинг жертвы, не нужно гродить весь этот хоровод с Блекджеком и шлюхами, так как достаточно одного правильно спрятанного eval() и почти любой магазин полностью под нашим контролем. Ну а антивирусы для php к сожалению это миф. Так что методология создания максимального изолированного и безопасного серверного окружения рулит — но про это позже отдельным постом.

В том что магазин моего подопечного чист от варезных модулей  — я готов ручаться своей репутацией.

По пункту 2 и 3 подробнее завтра, на сегодня хватит.

Хуйнаныр(11)Очко(0)

Запостить высер

Стучать мне на мыло
avatar

Сортировать:   Свежие | Тухлые | Хуйнанырные
Станислав
робот-вертер
Станислав
11 месяцев 10 дней назад

Поэтому и юзаю только вашу сборку.
В очередной раз вижу, что правильно делаю.

Aleks
робот-вертер
11 месяцев 9 дней назад

Да, и если поднять архивы ocshop info, то там найдётся отличная статья про защиту, которая была использована мной после обнаружения заражения папки download всякой хренью и дальнейшей чистки магазина, пока помогает, хотя попытки взлома повторялись.

Andre
робот-вертер
Andre
11 месяцев 8 дней назад

А меня все время мучает параноя, когда вижу ионкубы.

Andre
робот-вертер
Andre
11 месяцев 8 дней назад

Жги исчо

Сергей
робот-вертер
Сергей
11 месяцев 6 дней назад

Нашлось чем дыру залепить? У меня такое произошло прям один в один. Аж до черных списков аваста и битдефендера дошло. Внутри system/log паразиты собрали exe-шник. За что и получил жирный бан от упомянутых антивирей и хостера впридачу. Люди подсказывают поставить пароль на веб доступ к админской папке и переименовать лог ошибок. Только у меня не было стандартных админ логинов и паролей…

Саня
робот-вертер
Саня
11 месяцев 4 дней назад

спасибо автору и всем кто принимал участие за путевую статью,тоже ждем продолжения… ;)

wpDiscuz