最为全面的利用Wordpress拿Shell的方法
什么是WordPress
自2003年推出以来,WordPress已成为最受欢迎的内容管理系统(CMS)之一。它基于PHP编程语言和MariaDB或MySQL数据库。截至2021年,有4.55亿个网站在WordPress上运行,大约占互联网上所有网站的43%。正是因为它的流行,WordPress也成为大多数网络攻击的目标,因此WordPress也是当下各种CTF靶机中的重要类型。本文重点讨论作为渗透测试人员如何渗透测试WordPress站点,尤其是如何获得运行WordPress站点的主机的控制权,或者Shell(命令执行环境)。本文也许是目前最为全面的拿Shell的方法(哈哈)。
WordPress渗透测试步骤
一般来说,针对WordPress类型的渗透测试目标,可使用以下步骤:
第一步:目录扫描
通过各类目录扫描工具比如Gobuster、dirb、nikto、dirbuster等枚举出WordPress站点的所在目录。
第二步:获取管理员凭证
接下来的目标是获得WordPress管理后台的用户名和密码。可以先检查是否存在弱口令(比如admin:admin等)。如果没有成功,可以使用wpscan工具或Hydra工具破解WordPress的管理员用户名和密码。如果破解不成功,可以尝试探测是否存在有漏洞的插件。
$ wpscan --url <WordPress网址> -e u,p
第三步:获取Shell
在获得WordPress管理员用户名和密码后,接下来的目标是获取目标主机的控制权,即Shell。
方法一:替换Theme Editor中的404.php模板
将php反向Shell(shell.php)文件的代码拷贝替换Theme Editor中的404.php模板。如果成功更新文件,说明可以通过该方式获取目标主机的Shell。一旦更新文件成功,在攻击机(比如Kali Linux)启动nc监听(端口要与shell.php一致),然后访问靶机的URL,该URL为shell.php所在的URL。可以在页面源代码中查找到该URL的前缀,一般是在/wp-content/。
方法二:利用Metasploit框架
通过Metasploit中的exploit/unix/webapp/wpadminshell_upload模块获取目标主机的Shell。根据靶机情况设置管理员用户名和密码等信息。这个方法适用于所有版本的WordPress,因此会提供网络服务器的meterpreter会话。
方法三:插件安装
- 将php反向Shell文件压缩成zip格式,然后将其作为插件进行安装。
- 登录WordPress管理后台,查看是否已经安装有插件,并且插件的功能中有可以上传文件的入口,此时将php反向Shell以规定的格式(比如zip)上传至目标站点。
- 向目标主机上传有漏洞的插件,比如Responsive Thumbnail slider version 1.0。上传成功后,利用Metasploit中的wpresponsivethumbnailsliderupload模块获得meterpreter session。
方法四:替换主题文件
在安装与靶机相同的主题文件后,将其中的404.php内容替换为shell.php内容,然后上传更新主题文件。但是本人没有找到合适的环境测试成功该方法,列在此处仅为参考。
以上就是渗透测试WordPress站点的一般步骤和获取Shell的方法。希望对您有所帮助!