如何找出Wordpress(已存储)密码的强度?


10

我负责许多共享托管服务器的安全性。他们中的大多数都有WordPress网站。每个服务器至少有500个WordPress网站。

以我的经验,WordPress的问题始于弱密码。大多数网站管理员密码都非常弱,使用弱密码网站已被利用并用于各种恶意活动。

现在,我的计划是找出WordPress网站的弱密码,然后将管理员密码强制更改为其他强密码。这样就可以保护WordPress,并且我的服务器不会遇到麻烦。

如何知道存储的WordPress密码的强度?

Answers:


8

暴力破解

您可以强行存储在数据库中的哈希。

WordPress使用phpass进行哈希处理。默认情况下,WordPress不使用河豚鱼或类似的东西,而只使用md5,其迭代计数为8192。如果您只想查找真正错误的密码,则蛮行无疑是可行的。

但是我认为这与用户对您的信任有很大的冲突,因此我不建议您使用这种方法。

登录时分析他们的密码

您可以添加一个脚本来拦截对WordPress登录脚本的所有请求,并记录或分析密码,因为此时密码是纯文本的。

当然,只有在用户实际登录后,它才会捕获弱密码。如果用户已放弃网站或处于非活动状态,则可能需要一段时间才能发现他们使用了弱密码。

我认为这比暴力破解哈希还要大,并且还带来一些安全问题(如果您以纯文本形式存储密码,这显然是一个问题,但是即使不是这样,您也可能会不小心存储来自有助于攻击者的分析)。

实施密码策略(并强制用户更改密码)

您可以实施密码策略。当用户提交新密码时,您将检查密码是否符合您的策略(理想情况下,这将通过JavaScript在服务器端而非客户端发生)。

编写好的密码策略很困难,因此请查看现有策略以帮助您。

当然,旧密码不受该策略的影响,因此您需要强制用户更改其旧密码以符合该策略。

极限伤害

强制使用强密码当然是个好主意,但是理想情况下,被黑的WordPress实例并不会真正影响您作为网站管理员。

一旦攻击者获得了WordPress安装的访问权限,您就应该限制损失。理想情况下,您希望只影响一个实例,而不希望整个服务器受到影响(因此,您可能担心攻击者会将不雅内容放到网站上(就像有效用户一样),但不担心代码执行或其他恶意程序活动)。

这是一个相当广泛的主题,但有些要点包括:DISALLOW_FILE_EDIT,限制使用插件(因为它们的编码安全性远低于WordPress本身),禁止使用JavaScript(例如,使用多站点,只有超级管理员有权发布JavaScript,而不是管理员)等


4

我不确定这是否有可能。选择密码后,密码将散列存储在数据库中。哈希算法没有反向工程。

以我的经验,密码强度脚本位于中www.example.com/wp-admin/js/password-strength-meter.js是它的链接。

您可以在此处更改密码的级别和百分比,因此可以将强制密码强度设置为100/100。

而且,如果您希望客户检查密码强度,这里有一个可爱的应用程序可以为您提供密码强度。

这里不可能做一些反向工程,此外,很少有插件会迫使用户获得强密码。


1
这似乎很简单,网络托管者和网站所有者可以采取措施来保护自己。很好的问答!我不确定以前是否曾解决过这个问题。至少很长一段时间没有解决它。干杯!!
closetnoc

1
上面的答案很好,但是并不能解决我的问题。大多数WordPress网站已经安装,或者在我的服务器中每天进行数百次WP安装。假设我使用password-strength-meter.js更改了密码强度,但对我仍然没有用。Bcoz,密码已设置。这仅对新的passwd有用,而对于已经设置的。
玛尼

1
但是,由于它们是散列的,因此您无法从数据库中找到所有密码。您可以进行设置,然后重新发送给所有用户以更改其密码,以便他们拥有强密码。我没有其他解决办法。也请检查以下答案。
Josip Ivic

2
@Josip Ivic,唯一的方法是重设密码并按照您的说明通知管理员。
玛尼

1
对于新用户,我只需要调整服务器上wp上的脚本,以便强制使用强密码,对于老用户,我将向他们重新发送邮件,以便他们可以将其密码更改为强密码。就像我说的那样,没有简单的方法可以做到这一点,但这是可行的。:)
Josip Ivic

3

好消息是您可以更改用户密码,而坏消息是您看不到用户密码。
WordPress是如此强大,以至于即使在数据库中它也以一种加密方式存储密码,它不仅可以转换为md5哈希,甚至还不是序列化的数据,对于密码,即使更改密码字段,test123您也会得到类似的信息$P$BjW8o9Dm1vC5bwAcP1iAdNVm0lbvn在数据库中不使用加密,它将无法正常工作。

如何修改密码

我相信您已经意识到了这一点,但我将其保留在此处。您可以使用管理员权限进入wordpress仪表板,转到用户,找到用户,这部分对您来说很不利,因为您必须单击“生成新密码”,它将随机给您一些字母和符号,您可以用您自己的密码编辑它,但是即使那样您也看不到密码。


忘了提,你可以使用插件一样的iThemes要求用户输入强密码,也让蛮力保护和其他很酷的功能,你可能会发现自己感兴趣的内容。
knif3r

3

由于密码是散列的,因此测试其安全性的唯一方法是蛮力地对其进行加密。收集常用的弱密码列表,并对照存储在数据库中的哈希值对它们进行测试。

除非您使用非常详尽的密码列表,否则它不会捕获所有弱密码,但是它将过滤掉其中的最弱密码。


这是需要大量时间的解决方案。
Josip Ivic

这就是所谓的构建彩虹表。
Ashfame '16

@Ashfame不,不是。彩虹表是一种更为复杂的方法,不一定适用于这种情况。
汤姆·范德赞丹

@TomvanderZanden这可能不是一个合适的方法,但是这怎么会不是彩虹表呢?
Ashfame '16

@Ashfame因为Rainbow表比“检查数据库中的密码列表”复杂得多。例如,Rainbow表使用哈希链和归约函数。还要注意,构建彩虹表比仅检查数据库中的所有密码要花费更多时间。使用预先计算的彩虹表可能是有道理的,但对于这种情况可能会显得过大。
汤姆·范德赞丹

1

除非您对存储在phpmyadmin中的每个wordpress数据库没有控制权,否则无法强制更改wp管理员密码。

不,没有任何快速的方法可以在500个wordpress网站上找到星期密码。Josip提到了一个结帐密码强度的链接,但是该站点未使用md5加密算法来结帐密码强度。

签出此SO Link,(使用MD5的Wordpress),您将看到输出与该应用程序不同。因此,如您所见, p#aSS*Word14它不安全。Dance With Me Tonight因此,请不要使用第三方应用程序来检查您的Wordpress密码,因为可能他们正在使用另一种加密算法来检查/确定密码强度。

另外,您还应该拥有所有密码,并一步一步地对其进行测试,没有任何魔术可以迅速找到答案。

另一件事是,如果一个WordPress站点被黑客入侵,则它不会影响同一服务器中的其他wp站点(DOS攻击除外)。我已经看到许多人在共享托管中启动wp,并且他们的站点遭到黑客攻击,但是他们的邻居站点仍然运行良好,因为每个wp在phpmyadmin上都有其自己的数据库。


Didn't affect other WP site on same server:巧合!取决于攻击/黑客的类型以及黑客/机器人的意图。
Ashfame

我说的是wordpress安全性,而不是根级安全性。但是我敢肯定,所有使用沙盒机制的托管服务提供商中的大多数都不会影响同一服务器上的其他网站。
Goyllo '16

1

如先前的答案所指出:您无法读取存储的密码。

替代解决方案可以是:

  1. 实施Josip Ivic的建议以实施强密码。
  2. 删除所有密码(或仅删除具有某些特权的用户的密码)。
  3. 最后,通知受影响的用户新的密码策略正在生效,并指示他们/wp-login.php?action=lostpassword重置其密码。

1

WordPress密码是散列的,就像任何明智的应用程序在存储密码时一样,因为存储明文密码非常不安全,因为您的用户可能会为使用的其他服务使用相同的密码(例如gmail?)。

不可能将哈希转换回密码,否则最好将它们存储在明文中。以前曾经使用过MD5哈希算法对密码进行加密,但是安全团队证明该方法不安全,因此哈希算法已更新为phpass

提示:即使将md5(%password%)更新到sql列中,WordPress仍然可以正确地对其进行哈希处理。

现在,处理单个站点的实际操作方法是通过将列更改为其他内容并在要更新密码的页面上强制执行密码强度要求来强制更改密码。但是您的用例需要在许多WP安装上执行此操作,并且未经他们的同意,这些网站所有者可能不喜欢您执行此操作。因此,您绝对必须限制行为影响的范围。

1)仅更新管理员,编辑者的密码,但您需要查找这些用户的身份。给他们发送电子邮件,然后在重置密码页面/注册页面等上实施密码限制。请记住,有人可以在网站上的其他地方拥有这些表格(也请考虑AJAX表格)。创建一个WP-CLI命令,可以在这里帮助您执行此计划,而不是加载WP环境和运行脚本。

2)生成彩虹表,该彩虹表由已知字符串(密码)的哈希密码组成。然后,您基本上必须将哈希与特定用户的密码进行匹配,并评估该密码的强度。生成表是这里最慢的步骤,因为您必须对每个可能存在的密码进行哈希处理,然后将其存储在磁盘上(取决于您所使用的密码的长度和密码组合,需要几个GB),然后对结果进行操作。99%的人认为这是满足您需求的过度解决方案。

提示:您知道我们备案的那些盐和秘密wp-config.php。更改它们会使登录的会话无效,以防万一您需要。


1

尝试使用字典攻击对其进行暴力破解

有什么更好的方法来评估您的密码强度?:-)是的,我知道,这需要一些时间...

否则,您可以简单地假设所有密码都是弱密码(我想这将是一个非常准确的假设),然后为您自己创建密码,将哈希存储在数据库中,然后使用“安全”将纯文本密码提供给管理员渠道

否则,再次假设所有密码都是弱密码,并迫使管理员更改密码,并在网站本身上使用非常挑剔的密码强度验证器。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.