测试默认凭据
ID |
---|
WSTG-ATHN-02 |
总结
许多 Web 应用程序和硬件设备都具有内置管理帐户的默认密码。尽管在某些情况下,这些可以随机生成,但它们通常是静态的,这意味着攻击者可以很容易地猜测或获取它们。
此外,在应用程序上创建新用户时,这些用户可能设置了预定义的密码。这些可以由应用程序自动生成,也可以由工作人员手动创建。在这两种情况下,如果密码不是以安全的方式生成的,则攻击者可能会猜到密码。
测试目标
- 确定应用程序是否具有任何具有默认密码的用户帐户。
- 查看新用户帐户是使用弱密码还是可预测密码创建的。
如何测试
测试供应商默认凭据
识别默认密码的第一步是识别正在使用的软件。本指南的“信息收集”部分对此进行了详细介绍。
识别软件后,尝试查找它是否使用默认密码,如果是,它们是什么。这应该包括:
-
搜索“[SOFTWARE] 默认密码”。
-
查看手册或供应商文档。
-
检查常见的默认密码数据库,例如 CIRT.net, SecLists Default Passwords 或 DefaultCreds-cheat-sheet 。
-
检查应用程序源代码(如果可用)。
-
在虚拟机上安装应用程序并对其进行检查。
-
检查物理硬件上是否有贴纸(通常存在于网络设备上)。
如果找不到默认密码,请尝试常用选项,例如: -
“admin”、“password”、“12345”或其他常用默认密码。
-
空密码或空白密码。
-
设备的序列号或 MAC 地址。
如果用户名未知,则有各种用于枚举用户的选项,如测试帐户枚举指南 中所述。或者,尝试常用选项,例如“admin”、“root”或“system”。
测试组织默认密码
当组织内的员工手动为新帐户创建密码时,他们可能会以可预测的方式执行此操作。这通常是:
- 单个通用密码,例如“Password1”。
- 组织特定的详细信息,例如组织名称或地址。
- 遵循简单模式的密码,例如,如果帐户是在星期一创建的,则为“Monday123”。
这些类型的密码通常很难从黑匣子的角度识别,除非它们可以被成功猜到或暴力破解。但是,在执行灰盒或白盒测试时,它们很容易识别。
测试应用程序生成的默认密码
如果应用程序自动为新用户帐户生成密码,则这些密码也可能是可预测的。为了测试这些,请同时在应用程序上创建具有相似详细信息的多个帐户,并比较为它们提供的密码。
密码可能基于:
- 在账户之间共享的单个静态字符串。
- 帐户详细信息的哈希或模糊处理部分,例如
md5($username)
。 - 基于时间的算法。
- 弱伪随机数生成器 (PRNG)。
从黑匣子的角度来看,这类问题往往很难识别。