🛠 Закрыть уязвимость ≠ закрыть инцидент

🛠 Один инцидент, который наглядно показывает: закрыть уязвимость ≠ закрыть инцидент. Сеть из ~15 магазинов на типовом OpenCart. Бывший разработчик шантажирует владельца и вешает баннеры с угрозами прямо на витрины. Меня зовут найти его каналы доступа и провести пентест всей инфраструктуры.

Что всплыло по ходу: — замаскированный под системный сервис systemd-юнит с бэкдором — подменённый бинарь sshd и чужие SSH-ключи — SQLi и открытые API-эндпоинты без аутентификации, зеркально повторяющиеся на всех сайтах — обход проверки при загрузке изображений товаров Ключевой момент: закрыли первый вход — атакующий в тот же вечер вернулся через загрузку картинок. Отсюда вывод, который вынес в отчёт: пока у атакующего есть параллельные пути, точечный фикс бесполезен. Решение — единое синхронное окно на все 15 серверов сразу. Полный разбор — цепочка атаки, находки и как строил remediation — на гитхабе 👇

🔗 https://github.com/Fnay1/pentest-writeups/tree/main/reports/retail-ecommerce-engagement #pentest #dfir #opencart