安云网 - AnYun.ORG | 专注于网络信息收集、网络数据分享、网络安全研究、网络各种猎奇八卦。
当前位置: 安云网 > 技术关注 > WEB安全 > 如何为Wordpress做安全防护?

如何为Wordpress做安全防护?

时间:2014-12-01来源: 作者:碳基体点击:
最近看了infosec 出品的Protecting WordPress Installations in an IaaS Environment》,决定给裸奔的wordpress做做安全加固。wordpress是国人搭建个人博客的首选,其地位等同于论坛搭建首选discuz(话说…

最近看了infosec出品的<<ProtectingWordPressInstallationsinanIaaSEnvironment》,决定给裸奔的wordpress做做安全加固。 //本文来自安云网

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

//内容来自安云网

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

一、wpscan –Wordpress指纹识别及漏洞检查工具 //内容来自安云网

该网站被丧心病狂的GFW封掉了,翻墙吧psiphon搔年,或者使用渗透套装kali(重点不是wpscan,了解攻击才能给出相应防御措施) //内容来自AnYun.ORG

a.安装 //本文来自安云网

以ubuntu安装为例 //内容来自AnYun.ORG

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 //内容来自AnYun.ORG

b.基本使用

//内容来自AnYun.ORG

枚举站点信息:用户名、插件、样式等信息 //内容来自安云网

 ruby wpscan.rb --url www.tanjiti.com --enumerate

//内容来自安云网

以下是探测结果样本

//本文来自安云网

[+]URL:http://www.tanjiti.com
[+]Started:TueOct2815:46:302014

[!]TheWordPress'http://www.tanjiti.com/readme.html'fileexists
[+]XML-RPCInterfaceavailableunder:http://www.tanjiti.com/xmlrpc.php
[!]Uploaddirectoryhasdirectorylistingenabled:http://www.tanjiti.com/wp-content/uploads/

[+]WordPressversion4.0identifiedfrommetagenerator

[+]WordPressthemeinuse:twentyfourteen-v1.2

[+]Name:twentyfourteen-v1.2
| Location:http://www.tanjiti.com/wp-content/themes/twentyfourteen/ //本文来自安云网
| StyleURL:http://www.tanjiti.com/wp-content/themes/twentyfourteen/style.css
| Referencedstyle.css:http://www.tanjiti.com/wp-content/themes/twentyfourteen/style.css
| ThemeName:TwentyFourteen
| ThemeURI:http://wordpress.org/themes/twentyfourteen
| Description:In2014,ourdefaultthemeletsyoucreatearesponsivemagazinewebsitewithasleek,moderndes...
| Author:theWordPressteam
| AuthorURI:http://wordpress.org/

[+]Enumeratinginstalledplugins(onlyvulnerableones)...

 Time:00:00:37<==============================================>(880/880)100.00%Time:00:00:37

[+]Nopluginsfound

[+]Enumeratinginstalledthemes(onlyvulnerableones)...

 Time:00:00:16<==============================================>(308/308)100.00%Time:00:00:16 //内容来自安云网

[+]Nothemesfound

[+]Enumeratingtimthumbfiles...

 Time:00:01:48<============================================>(2539/2539)100.00%Time:00:01:48

[+]Notimthumbfilesfound

[+]Enumeratingusernames...
[+]Identifiedthefollowing1user/s:
  +----+---------+---------+
  |Id|Login |Name  |
  +----+---------+---------+
  |1 |tanjiti|tanjiti|
  +----+---------+---------+

[+]Finished:TueOct2815:49:342014
//内容来自安云网

//内容来自AnYun.ORG

察看详细的探测信息

//内容来自安云网

ruby wpscan.rb --url www.tanjiti.com --debug-output --random-agent >debug.log //内容来自AnYun.ORG

(注意:wpscan默认User-Agent为WPScanv2.5.1(http://wpscan.org),扫描器使用常识之一使用正常变化的ua,避免触发WAF之类的防御部署) //内容来自AnYun.ORG

基本察看LOG,我们就可以知道wpscan是如何收集信息 //内容来自安云网

例如检查响应头X-Pingback:http://www.tanjiti.com/xmlrpc.php头 (xmlrpc漏洞) //本文来自安云网

检查xmlrpc.php(xmlrpc漏洞)
检查robots.txt文件(敏感信息泄露)
检查readme.html文件(敏感信息泄露)
检查/wp-content/debug.log(敏感信息泄露)

//内容来自AnYun.ORG

检查配置文件(能够明文读取配置文件基本就是挂掉了),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>searchwordpress

MatchingModules
================

 Name                           DisclosureDate Rank   Description
 ----                           --------------- ----   -----------
 auxiliary/admin/http/wp_custom_contact_forms       2014-08-07   normal  WordPresscustom-contact-formsPluginSQLUpload
 auxiliary/dos/http/wordpress_xmlrpc_dos         2014-08-06   normal  WordPressXMLRPCDoS
//内容来自安云网

//本文来自安云网

以前段时间有名的XMLRPCDoS为例(漏洞说明见《[科普]什么是billionlaughs-WordPress与Drupal的DoS攻击有感》)//内容来自AnYun.ORG

msf>useauxiliary/dos/http/wordpress_xmlrpc_dos  
msfauxiliary(wordpress_xmlrpc_dos)>showoptions

Moduleoptions(auxiliary/dos/http/wordpress_xmlrpc_dos):

 Name   CurrentSetting Required Description
 ----   --------------- -------- -----------
 Proxies          no    Useaproxychain
 RHOST           yes   Thetargetaddress
 RLIMIT  1000      yes   Numberofrequeststosend
 RPORT   80       yes   Thetargetport
 TARGETURI /        yes   Thebasepathtothewordpressapplication

//本文来自安云网


 VHOST           no    HTTPservervirtualhost

msfauxiliary(wordpress_xmlrpc_dos)>setRHOSTwww.tanjiti.com
RHOST=>xxx
msfauxiliary(wordpress_xmlrpc_dos)>setTARGETURI/
TARGETURI=>/wordpress/wordpress/
msfauxiliary(wordpress_xmlrpc_dos)>run
//内容来自安云网

//内容来自安云网

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

//本文来自安云网

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

//内容来自AnYun.ORG

//内容来自安云网

安装及规则编写的基础知识见《[科普文]ubuntu上安装Apache2+ModSecurity及自定义WAF规则》 //内容来自AnYun.ORG

vim /usr/share/modsecurity-crs/activated_rules/MY.conf //内容来自AnYun.ORG (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 //内容来自AnYun.ORG

使用MSF发送攻击包

//内容来自AnYun.ORG

msfauxiliary(wordpress_xmlrpc_dos)>useauxiliary/scanner/http/wordpress_pingback_access
msfauxiliary(wordpress_pingback_access)>showoptions

Moduleoptions(auxiliary/scanner/http/wordpress_pingback_access):

 Name   CurrentSetting Required Description
 ----   --------------- -------- -----------
 Proxies          no    Useaproxychain
 RHOSTS           yes   ThetargetaddressrangeorCIDRidentifier
 RPORT   80       yes   Thetargetport
 TARGETURI /        yes   Thepathtowordpressinstallation(e.g./wordpress/)
 THREADS  1        yes   Thenumberofconcurrentthreads //内容来自AnYun.ORG
 VHOST           no    HTTPservervirtualhost

msfauxiliary(wordpress_pingback_access)>setRHOSTSwww.tanjiti.com
RHOSTS=>xxx
msfauxiliary(wordpress_pingback_access)>setTARGETURI/
TARGETURI=>/wordpress/wordpress/
msfauxiliary(wordpress_pingback_access)>run
//本文来自安云网

//内容来自AnYun.ORG


//内容来自AnYun.ORG

可以看到拦截日志如下

//内容来自安云网

Message:Warning.Stringmatch"/xmlrpc.php"atREQUEST_URI.[file"/usr/share/modsecurity-crs/activa
ted_rules/MY.conf"][line"4"][id"0000003"][msg"blockwordpressxmlrpc.php"][tag"WEB_ATTACK/WOR
DPRESS"] //本文来自安云网

//本文来自安云网


//本文来自安云网

(2)添加防御wpscan默认扫描头的规则

//内容来自安云网

SecRuleREQUEST_HEADERS:User-Agent"@containswpscan""t:lowercase,deny,tag:'WEB_ATTACK/WORDPRESS',ms
g:'blockwpscannerdefaultuseragent',id:0000004,phase:1"
//本文来自安云网

//内容来自AnYun.ORG

再次运行wpscan,可以看到拦截日志如下

//内容来自AnYun.ORG

essage:Warning.Stringmatch"wpscan"atREQUEST_HEADERS:User-Agent.[file"/usr/share/modsecurity-
crs/activated_rules/MY.conf"][line"6"][id"0000004"][msg"blockwpscannerdefaultuseragent"][ta
g"WEB_ATTACK/WORDPRESS"]

//本文来自安云网

//内容来自安云网


//本文来自安云网

大伙可以针对性地添加规则,对个人网站而已,添加白规则较之黑规则会事半功倍,这里的示例规则仅仅是抛砖引玉。

//本文来自安云网

四、wordpress防护——屏蔽敏感信息访问

//内容来自安云网

vim /etc/apache2/apache2.conf
//内容来自安云网
<FilesMatch"\.(sw[po]|old|save|bak|orig(?:inal)?|php(?:~|_bak|\x23))$">
    Requirealldenied
</FilesMatch> //内容来自AnYun.ORG

//内容来自安云网 service apache2 restart //内容来自AnYun.ORG 五、wordpress防护——启用安全头
//内容来自AnYun.ORG

vim /etc/apache2/conf-available/security.conf

//内容来自安云网

(1) 防止在IE9、chrome和safari中的MIME类型混淆攻击 //内容来自安云网

Header set X-Content-Type-Options: "nosniff"

//本文来自安云网

(2)防止clickjacking,只允许遵守同源策略的资源(和站点同源)通过frame加载那些受保护的资源。  //内容来自AnYun.ORG

Header set X-Frame-Options: "sameorigin"

//本文来自安云网

(3)开启xss防护并通知浏览器阻止而不是过滤用户注入的脚本。

//内容来自AnYun.ORG

Header set X-XSS-Protection "1;mode=block" //内容来自AnYun.ORG service apache2 restart //本文来自安云网 六、wordpress防护——登陆口防爆破 //本文来自安云网

一般的方法是设置一个登陆口白名单,但现在越来越多的网站使用CDN服务,明显不再是个好的防护方案

//内容来自AnYun.ORG

安装LoginLockDown 插件,wordpress后台插件管理处搜索即可,设置也超级简单

//内容来自AnYun.ORG

设置实例:

//本文来自安云网

//本文来自安云网

 如果在5分钟失败3次就会封锁IP60分钟 //内容来自AnYun.ORG

//内容来自安云网

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