Пентестинг Web Shell
В этой статье описаны различные способы загрузки PHP Web Shell для получения доступа к веб-серверу путем инъекции вредоносного фрагмента кода, написанного на PHP.
Знакомство с PHP Web Shells
Web Shells – это специальные скрипты, которые написаны и кодируются на многих языках, таких как PHP, Python, ASP, Perl и т.д. В дальнейшем они используются в качестве бэкдора для получения доступа к любому серверу, загружая их на него.
Таким образом, злоумышленник может непосредственно выполнить операцию чтения и записи, как только бэкдор будет загружен в пункт назначения. Он способен отредактировать любой файл или удалить его с сервера. Сегодня пользователь познакомится со всеми видами PHP Web Shells, которые когда-либо были доступны на Kali Linux.
Kali Linux имеет встроенные PHP-скрипты для использования их в качестве бэкдора и облегчения работы во время пентестинга. Они хранятся внутри /usr / share/webshells / php, и пентестер может применить их, не тратя времени на написание специального PHP-кода для получения вредоносного скрипта.
Выделяют несколько видов PHP Web Shells:
- simple backdoor.php
- qsd-php backdoor web shell
- php-reverse-shell.php
Simplebackdoor.php shell
Simple-backdoor.php – это Web Shell, который может генерировать удаленное выполнение кода, однажды введенного в веб-сервер и скрипт, сделанный John Troon. Он уже доступен на Kali в папке /usr/share/web shells/php, как показано на рисунке ниже. После этого пользователь запустит команду ls-al, чтобы проверить разрешения, предоставленные файлам.
Теперь нужно найти способ загрузить Shell в свое приложение. Поскольку пользователь делает все это ради пентестинга, он сначала попробует использовать простой бэкдорный PHP Shell, который уже доступен на Кali. Следует нажать кнопку Отправить файл, чтобы осуществить саму загрузку.
Как можно увидеть, пользователь успешно загрузил вредоносный php-файл и получил гиперссылку на него.
Таким образом, человек пытается получить доступ к simple-backdoor.php и наблюдает следующий результат. Как заметно на картинке, здесь «cmd=cat+ / etc/passwd» является четким указанием на удаленное выполнение кода.
Итак, стоит все-таки попробовать запустить cat+ / etc / passwd, чтобы получить все пароли сервера.
В результате пользователь извлек все записи из файла passwd, следовательно, он может выполнить любую команду, такую как ls, cp и другие. Теперь он способен получить Web Shell, используя REC.
qsd-php backdoor shell
Эксплойт Web Shell обычно рассматривается как бэкдор, который позволяет злоумышленнику удаленно получать доступ к серверу и управлять им, а qsd-php backdoor shell – это своего рода оболочка, которая предоставляет платформу для выполнения системных команд и отличного скрипта, разработанного Daniel Berliner.
Как можно заметить, пользователь успешно загрузил файл qsd-php-backdoor.php.
Затем он попробовал получить доступ к qsd-php-backdoor.php, как это было сделано на предыдущем шаге. Таким образом, пользователь обнаружил то, что показано на рисунке ниже. Здесь он способен выполнить обход каталога, а также получить прямой доступ к нему, введя команду и нажав на кнопку «Go».
Как можно понять, пользователь смог получить доступ к текущему каталогу непосредственно без выполнения какой-либо системной команды.
Он также может выполнить произвольную системную команду, так как этот бэкдор предоставляет платформу для выполнения команд оболочки, таких как cat/etc/passwd, ls-al и многих других. Человек способен запустить две команды одновременно и наблюдать за конечным результатом.
Как можно заметить, результат не может не радовать.
PHP-reverse shell
Теперь настала пора перейти к следующему PHP Web Shell, который является php-reverse-shell.php. Он откроет исходящее TCP-соединение с веб-сервера на хост и скрипт, выполненный “pentestmonkey”. Shell будет также подключен к TCP-соединению (реверсивное TCP-соединение). С помощью этого скрипта пользователь получит возможность запускать интерактивные программы, такие как telnet, ssh и т.д. Важен тот момент, что он отличается от других скриптов Web Shell, поскольку с помощью него можно отправить одну команду, а затем мгновенно вернуть результат себе на компьютер.
Для этого пользователю нужно открыть этот скрипт через nano:
Здесь человеку нужно предоставить желаемое соединение LISTEN_IP (Kali Linux), а вот номер LISTEN_PORT можно установить любой.
Далее следует загрузить этот Web Shell, чтобы получить обратное (реверсивное) соединение. Таким образом, пользователь загрузит вредоносный файл и со своей стороны запустит netcat listener внутри нового терминала.
Видно, что загрузка была завершена успешно.
Теперь, как только пользователь запустит загруженный файл и, если все пройдет хорошо, то веб-сервер должен будет сбросить PHP-reverse shell листенеру netcat. Человек может убедиться, что он успешно захватил Web Shell.
PHP Backdoor с помощью MSFvenom
Пользователь также может создать PHP Web Shell с помощью msfvenom. Поэтому он использует следующую команду для генерации вредоносного php-кода в формате raw.
Затем ему необходимо скопировать этот код и сохранить его под именем meter.РНР
Пользователь загрузит этот вредоносный Shell в лабораторию DVWA, чтобы получить реверсивное соединение. Теперь он может увидеть, что meter.php был успешно загружен. Это сообщение, показанное на скриншоте, означает, что PHP-бэкдор добрался до нужного места.
Для того чтобы запустить Shell, пользователю следует открыть URL-адрес DVWA.
Одновременно он запустит мультиобработчик, где получит meterpreter shell, и введет следующие команды: нужно указать lhost и lport, чтобы установить обратное соединение.
Как только пользователь исследует загруженный путь и выполнит бэкдор, он получит сеанс meterpreter.
Weevely Shell
Weevely – это скрытый PHP Web Shell, который имитирует ссылку на Telnet и предназначен для выполнения удаленного администрирования серверов и тестирования на проникновение. Он может быть использован в качестве скрытого бэкдора Web Shell для управления законными веб-учетными записями. Weevely также является важным и незаменимым инструментом для постэксплуатации веб-приложений. Пользователь, таким образом, может создать PHP-бэкдор, защищенный паролем.
Человеку необходимо открыть терминал и ввести weevely, чтобы сгенерировать PHP-бэкдор, а также установить пароль. В данном случае пользователь взял учетные данные “raj123 ” и сохранил этот Web Shell как weevely.php.
Теперь ему нужно загрузить PHP Web Shell в целевую папку, как в данном случае он отправил его в Web for pen testers. После этого пользователь откроет URL-адрес в браузере, чтобы запустить сам Web Shell.
Следует ввести следующие данные, чтобы инициировать атаку веб-сервера и поместить скопированный URL-адрес в команду Weevely с помощью пароля raj123. Пользователь сможет увидеть, что он получил Shell жертвы через weevely. Это можно проверить с помощью команды id:
Пользователь способен также проверить всю функциональность weevely с помощью команды help.
PHPbash shell
Пользователь может использовать Phpbash Web Shell, который является автономным и полу-интерактивным. Он загрузит его с GitHub, а затем зайдет в каталог phpbash и выполнит команду ls-al, чтобы проверить доступные файлы.
Итак, внутри phpbash пользователь нашел php-скрипт с именем «phpbash.php». Его нужно загрузить в целевую папку.
Теперь человек загрузит этот PHP Web Shell в DVWA lab и увидит сообщение о том, что все прошло успешно.
После этого пользователь откроет URL-адрес для выполнения Shell.
Вредоносный файл phpbash уже выполняется, и человек получает Web Shell. Преимущество phpbash заключается в том, что он не требует какого-либо типа листенера, такого как netcat, потому что shell сам по себе имеет встроенный bash, что можно наблюдать ниже.
В результате пользователь получил bash www-data Shell. Он способен выполнять системные команды непосредственно через эту платформу.
Таким образом, в данной статье были исследованы и проверены практическим путем множество способов получения Web Shell.
Важно! Информация исключительно в учебных целях. Пожалуйста, соблюдайте законодательство и не применяйте данную информацию в незаконных целях.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.