WordPress安全——如何攻击一个WP网站

这些技术可以用来攻击和攻破基于WordPress的网站。通过提供这些类型的攻击的详细信息,目的是提高对WordPress强化和安全监控需求的认识。当然,任何希望弹出基于WordPress的网站的渗透测试人员也可以在本指南中找到一些有用的指针。

WordPress是所有网站中29.3%的应用程序。它的易用性和开放源代码基础使其成为如此受欢迎的解决方案。安装数量不断增加; 还有数以百万计的WordPress安装的。这种流行使其成为旨在将恶意目的使用受攻击的Web服务器的坏人的目标

保护WordPress

有很多关于保护WordPress安装的非常好的详细指南,本文不打算重复这些内容。要开始保护WordPress安装,请尝试wordpress.org门户网站http://codex.wordpress.org/Hardening_WordPress上的优秀指南。

另外请记住,如果您使用托管WordPress托管服务,其中一些攻击(和缓解措施)将由您的托管服务提供商负责。如果您在非托管VPS上自行托管,则安全是您的责任。好的,准备开始?让我们开始吧。

  信息收集

攻击WordPress站点的第一步是收集有关安装的信息。首先,我们想了解网站的维护情况,确定网站是否运行最新的WordPress核心版本是一个好的开始。

WordPress核心版本

发现WordPress站点的核心版本的两种最快方式是检查源头meta generator的HEAD或examplesite.com/readme.html作为核心安装文件的一部分分发的文件中标签页面的HTML源。

这个例子取自版本3.5.2和二十二个主题的默认WP安装源。源HTML:

<meta name =“generator”content =“WordPress 3.5.2”/>

如果元标记已被禁用,请检查/readme.html安装的根目录是否存在。该信息文件包含顶部的WordPress版本。

通过这两种技术之一找到安装版本是很常见的。即使在WordPress核心的某些最新版本中也存在已知的安全问题,因此请根据已知的漏洞检查发现的版本。即使你无法找到WordPress核心版本的任何好漏洞,但知道安装正在运行的任何东西比最新版本都要旧,这表明该网站可能没有被密切管理 – 在这种情况下,其他地方的利用机会大大增加。

目录索引

目录索引是Web服务器的一个功能,它允许您查看Web可访问路径中目录的内容。查看目录的内容允许未经授权的用户收集大量有关安装的信息,例如安装了哪些插件和主题。

要检查目录索引,可以浏览到文件夹位置,并查看是否收到包含“索引”和文件夹/文件列表的响应。常见的位置检查将是:

/wp-content/
/wp-content/plugins/
/wp-content/themes/
/uploads/
/images/

如果您可以浏览/wp-content/plugins/– 信息收集阶段的下一步,我们试图找到安装的插件和版本变得更容易!

WordPress插件版本

在这一步中,我们将尝试尽可能多地查找已安装的插件(无论它们是否已启用)。知道安装了哪些插件后,我们可以尝试确定它是否容易受到已知漏洞攻击。

  • 被动分析可用于通过对WordPress网站的常规HTTP请求查找插件。
  • 主动分析更具侵略性,通常涉及使用脚本或工具执行数百甚至数千个大多数无效的HTTP请求。

回顾WordPress网站的HTML源代码可以揭示已安装的插件javascript links,评论和资源,例如css加载到页面中的资源。这些是最容易发现的插件,不需要对目标站点进行积极的测试。即使HTTP标头也可以显示信息,例如X-Powered-By显示W3-Total-Cache插件存在的标头。

由于在HTML源代码中没有看到一些插件,要找到所有安装的插件,你必须采取更积极的态度。许多工具可以强制从路径中强制已知的插件列表/wp-content/plugins/ * plugin to test * /。Web服务器响应通常会显示有效的目录,而不是Web服务器上的未知目录及其HTTP响应代码。

用户枚举

通过发现网站用户的帐户名称,您可以通过WordPress登录表单攻击这些用户的密码。我们将在下一部分通过攻击密码,现在让我们枚举该网站的用户。

在默认安装中,您应该能够通过迭代用户标识并将它们附加到网站URL来查找网站的用户。例如/?author=1,向URL添加2和3等将通过具有位置HTTP标头的301重定向来显示用户登录ID

wordpressexample.com/?author=1

 拥有有效的用户帐户在暴力破解密码方面非常有用。自动用户枚举可以通过下面暴力强制部分列出的工具来执行。

 攻击用户

对WordPress用户最常见的攻击是暴力破解帐户的密码以访问WordPress系统的后端。其他可以泄露密码的方法包括通过HTTP登录会话以明文形式嗅探密码,甚至从WordPress管理员工作站上的密钥记录器获取凭证。

由于管理员用户可以达到的恶作剧量,因此具有管理员级别访问权的帐户是最受追捧的帐户; 通过管理界面直接添加PHP command shells或者恶意javascript是常见的例子。

暴力wp登录

使用我们在信息收集期间收集的用户名,我们可以开始使用(或者试试admin)。查看登录表单/wp-login.php,注意输入错误密码时失败登录如何确认用户名。这对攻击者来说非常有用……这也让忘记了用户名和密码的最终用户对用户更友好。这个“功能”已经被辩论,并且已经决定在WordPress代码中保留这个响应。

弹出弱密码的工具

使用许多开源工具可以强制用户的强制帐户。此外,还有近期蠕虫喜欢的脚本已经通过WordPress interwebs传播,搜索并传播到WordPress管理员密码较弱的站点。

  WPScan – http://wpscan.org

该WPScan工具是最好的之一,当它涉及到测试WordPress安装从黑盒的角度。它能够强力插件,检测易受攻击的主题,枚举用户和强力帐户。

这里是我使用WPScan在低端数字海洋 VPS($ 5 /月)上运行的测试的示例输出,其中我安装了默认安装的WordPress。

ruby wpscan.rb -u 192.241.xx.x68 --threads 20 --wordlist 500worst.txt --username testadmin

********* SNIP ******************

[+]启动密码暴力破解器

  暴力强制用户'testadmin'与500个密码... 100%完成。
[+]于2013年7月18日03:39:02完成
[+]已用时间:00:01:16

让我们回顾一下输出,500个密码是针对’testadmin’帐户(在用户枚举期间发现的)进行测试的。这500个密码在1分16秒内被测试!当测试运行时,该网站仍在响应; 如果没有安装某种安全日志监控系统(OSSEC做得很好),Web服务器管理员将不知道发生了攻击。

上面使用的’500最差’密码列表来自Skull Security。该网站有大量的密码列表,包括60mb的rockyou列表,其中包含500多个密码!

  Nmap NSE脚本 – http://nmap.org

端口扫描器的Nmap可以做的不仅仅是找到开放的端口。最近的Nmap版本与NSE脚本捆绑在一起,可用于测试许多不同的漏洞; 包括枚举用户和暴力破解WordPress密码。

nmap -sV --script http-wordpress-enum --script-args limit = 25
[code]
ruby wpscan.rb -u 192.241.xx.x68 --threads 20 --wordlist 500worst.txt --username testadmin

********* SNIP ******************

[+] Starting the password brute forcer

  Brute forcing user 'testadmin' with 500 passwords... 100% complete.
[+] Finished at Thu Jul 18 03:39:02 2013
[+] Elapsed time: 00:01:16

[/code]

上面的输出显示了一个使用http-wordpress-enum NSE脚本枚举WordPress用户的示例运行。

港口国服务原因
80 / tcp打开http syn-ack
| HTTP的WordPress的,残忍的:
| 帐号
| testadmin:myS3curePass =>登录正确
| 统计
| _ _ Perfomed 113秒猜测,平均tps:6

以上是使用http-wordpress-brute NSE脚本强制使用WordPress帐户的结果。

  打嗝套房 – http://www.portswigger.net/burp/

对于那些熟悉Web应用程序安全测试的人来说,Burp Suite Intruder工具也可以用于暴力破解WordPress密码。POST毕竟,WordPress登录尝试只是一个请求。

通过非安全登录捕获凭证

如果没有采取额外的安全措施(SSL),则访问/wp-admin/仪表板将通过未加密的连接。这意味着,如果您在不安全的网络(例如当地咖啡店或机场的无线网络)上登录您的WordPress网站,只需通过观看会话即可让攻击者捕获管理该网站的登录名和密码。

攻击应用程序

插件,主题和WordPress核心都包含来自世界各地开发者的大量PHP代码。这些开发人员在编写安全软件时具有不同的能力和重点。由于这个原因,攻击者可以利用数千个可利用的漏洞。更新插件,WordPress核心和主题必须是任何WordPress管理员的例行任务,以确保修补已知漏洞。

常见的漏洞包括XSS,SQL注入,文件上传和代码执行。所有这些都可能给WordPress网站带来毁灭性的后果。通过Metasploit和exploit-db.com搜索可利用的WordPress错误列表。

 强制安装插件的最佳工具与用于暴力破解密码的工具类似。该WPScan工具必须搜索所有的插件,最流行的插件或只是弱势插件的选项。一个Nmap的NSE脚本也可用于暴力破解插件。请注意,强制数千个插件路径的蛮力将导致404 Not foundWeb服务器日志文件中的数千个条目。

已安装但未启用的插件和主题仍可能引入漏洞,因为可通过Web路径直接访问错误代码。例如,这将是一个易受攻击的上传功能,允许本地或远程文件包含。即使插件/主题未启用,上传功能仍然可以通过直接访问网页路径中的php文件来工作。暴力破解这些易受攻击文件的位置是扫描机器人非常常见的攻击。

 攻击服务器

测试WordPress应用程序本身只是确保您的网站安全的一部分。承载网站的服务器也必须保持安全。

蛮力管理账户

针对服务器管理帐户的成功强力攻击会让攻击者完全访问服务器和WordPress应用程序。

可以用强力密码猜测攻击的服务包括:

  • SSH服务
  • MySQL数据库服务
  • Webmin服务器管理
  • CPanel或WHCMS虚拟主机控制面板
  • phpMyAdmin数据库管理应用程序

为了减少管理帐户妥协的机会,适用正常规则。

  • 无处不在使用强密码,不要重复使用它们!
  • 将SSH移至其他端口
  • 将SSL用于基于Web的管理服务
  • 白名单可以连接到服务的IP地址

 

服务器软件漏洞

服务器软件或操作系统中可能存在可利用的安全漏洞。可以在任何漏洞邮件列表上找到示例,最近,SQL注入漏洞利用已成功用于反对WHMCS这个非常受欢迎的虚拟主机控制面板软件。由于PHPMyAdmin的受欢迎程度和长长的漏洞列表,PHPMyAdmin一直是最受攻击的应用程序。

服务器软件配置错误

通常情况下,安全漏洞可能纯粹是由于服务配置不当或管理不善造成的。

在服务器中查找安全弱点的工具

攻击者和捍卫者可以使用这些工具来查找目标服务器上的安全问题。下面的三个例子就是例子。还有许多其他安全测试工具可用于查找易受攻击的系统; 商业和开源。

  OpenVAS漏洞扫描程序 – openvas.org插件集合数量接近30000的开源漏洞扫描程序,插件测试系统或网络设备的许多不同方面。

  Nmap端口扫描器 – nmap.org

测试开放端口以及防火墙如何有效地使用众所周知的Nmap端口扫描器来保护系统。只有允许访问所需服务的配置良好的防火墙才会使攻击者的工作更加困难。

  Nikto Web服务器扫描器 – www.cirt.net

漏洞扫描程序,专注于Web服务器并查找已知的易受攻击的脚本,配置错误和其他感兴趣的Web服务器项目。Nikto工具已经存在了很多年,但在渗透测试工具箱中仍然占有一席之地。

WordPress网站受到攻击的原因有很多。了解它确实发生了,不要成为低挂的果实。保持最新状态,定期备份,执行基本强化,如果您从中获得收入…..定期测试您的安全并通过实时监控(如OSSEC)具有可视性。

,

关注微信公众号

上一篇文章
建站框架——建站经典十问
下一篇文章
2018年 WordPress购买高级商业主题,推荐你18个地方
菜单