Что происходит, когда www‑data внезапно запускает bash.
Ещё десять лет назад термин «веб-шелл» встречался лишь в узком кругу специалистов по информационной безопасности. Сегодня же он звучит в сводках кибер-новостей едва ли не каждую неделю. Веб-шелл — это небольшой скрипт, который позволяет злоумышленнику управлять сервером через обычный браузер, будто бы он сидит прямо в командной строке машины-жертвы. На первый взгляд — просто файл, на деле — полноценный плацдарм для шпионажа, вымогательства и масштабных атак.
Тема стала по-настоящему громкой после цепочки атак на Microsoft Exchange в 2021 году (эксплойты ProxyShell и ProxyLogon) и появления целого «зоопарка» универсальных скриптов, таких как China Chopper. По оценке «Cisco Talos», десятки тысяч серверов по всему миру до сих пор держат в себе активные веб-шеллы — зачастую владельцы об этом даже не подозревают. Игнорировать проблему — значит играть в русскую рулетку с репутацией и данными.
Проще всего представить веб-шелл как мост между браузером злоумышленника и командной строкой сервера. Скрипт обрабатывает HTTP-запросы, извлекает из них команды и передаёт их в систему, а затем возвращает вывод обратно в ответ страницы. В отличие от привычного «локального» шелла типа Bash или PowerShell, здесь не требуется физического доступа или SSH — достаточно открыть URL.
Чаще всего подобные скрипты размещаются на:
Схема взаимодействия проста: клиент → веб-интерфейс → сервер. Злоумышленник заполняет форму или добавляет параметр ?cmd=whoami
в URL, веб-шелл исполняет команду whoami
от имени процесса веб-сервера и выводит результат прямо в браузер. Такая связка снимает все географические ограничения и отлично интегрируется в автоматические боты, потому что завязана на стандартный HTTP-трафик.
Пишут веб-шеллы на всём, что понимает веб-сервер: PHP, ASPX, JSP, Perl, Python. Классический «привет-мир» для злоумышленника выглядит так:
<?php system($_GET['cmd']); ?>
Чтобы не попасться на глаза администратору или антивирусу, скрипт маскируют: добавляют слой Base64, прячут код внутрь изображений, подменяют имена файлов на favicon.ico, используют запутанные цепочки функций или даже полноценное шифрование с однократными ключами.
Появиться в каталоге сайта веб-шелл может разными путями:
Набор возможностей ограничен лишь фантазией автора и правами процесса веб-сервера. Самые распространённые сценарии:
rm -rf /
);Наблюдая эволюцию скриптов, аналитики делят их на четыре условных категории:
Те самые <?php system(); ?>
— легко обнаружить поиском, но они всё ещё работают на poorly-secured сайтах.
WSO, C99, R57 — обеспечивают «панель управления» с вкладками для файлов, базы данных, почтового клиента. Пользоваться таким шеллом может даже новичок.
Код разбит на бессмысленные переменные, динамически собирается в рантайме, шифруется XOR или AES. Антивирусу приходится «разжёвывать» десятки слоёв.
Здесь — чат с оператором, прокси-туннели, переброска портов и возможность управлять множеством серверов из единой панели. Часто продаются на даркнет-форумах по подписке.
Полностью исключить риск сложно, но обнаружить чужой скрипт — реально:
www-data
внезапно вызывает bash
— повод забить тревогу.China Chopper — микроскопический ASPX-скрипт, всего 4 КБ, но с удобной GUI-частью под Windows. В 2021-м именно он помог атакующим закрепиться на сотнях узлов Microsoft Exchange после эксплуатации ProxyShell.
Другой показательный случай — Havex. APT-группа «Energetic Bear» встроила веб-шелл в сайт поставщика ПО для промышленных систем: обновление скачивали клиенты, заражали свои внутренние сети, и атакующие получали удалённый доступ без лишнего шума.
В массовых атаках ботов вроде Kinsing веб-шелл выступает точкой входа перед скачиванием криптомайнера. Скрипт ищет неправильно настроенный Docker API, заливает PHP-шелл, запускает монеродобытчик и тут же маскирует логи.
Ниже — базовый, но рабочий чек-лист:
root
, chroot-тюрьмы, SELinux/AppArmor.Веб-шелл — это не просто очередной скрипт в каталоге /uploads. Это «карманный взломщик», который может неделями жить на сервере и тихо открывать двери в корпоративную сеть. Полностью исключить риск невозможно, но грамотная профилактика, своевременное обновление софта и автоматизированный мониторинг значительно снижают вероятность взлома и минимизируют ущерб.
И помните: чем дольше веб-шелл остаётся незамеченным, тем выше цена инцидента. Проверьте свои бэкапы, обновите плагины и загляните в логи — возможно, именно сегодня вы избавитесь от незваного гостя.