跳转至

T1110-003-windows-密码喷射

来自ATT&CK的描述

当密码未知或获得密码哈希值时,攻击者可以使用暴力破解技术尝试访问帐户。

攻击者可能会在操作期间尝试暴力破解登录,这是一个风险较高的选项,因为它可能导致大量身份验证失败记录和帐户锁定,具体取决于组织的登录失败策略。

密码喷射技术是使用一个密码(例如,“Password01”)或一小组密码,其匹配域的复杂性策略并且可以是常用密码。尝试使用该密码的不同账户进行登录,从而避免触发组织内的策略导致账户锁定。

通常,在密码喷射时使用常用端口上的管理服务。通用目标服务包括以下内容:

  • SSH(22/TCP)
  • Telnet(23/TCP)
  • FTP(21/ TCP)
  • NetBIOS/SMB/Samba(139/TCP和445/TCP)
  • LDAP(389/TCP)
  • Kerberos(88/TCP)
  • RDP /终端服务(3389/TCP)
  • HTTP / HTTP管理服务(80/TCP和443/TCP)
  • MSSQL(1433/TCP)
  • Oracle(1521/TCP)
  • MySQL(3306/TCP)
  • VNC(5900/TCP)

RDP暴力破解

远程桌面协议(RDP, Remote Desktop Protocol)是一个多通道(multi-channel)的协议,让用户(客户端或称“本地电脑”)连上提供微软终端机服务的电脑(服务器端或称“远程电脑”)。大部分的Windows都有客户端所需软件。其他操作系统也有这些客户端软件,例如Linux、FreeBSD、Mac OS X。服务端电脑方面,则听取送到TCP3389端口的数据。

当系统密码设置较为简单时,攻击者可以利用枚举账户密码的方法进行破解登录。

密码喷洒攻击

值得注意的是,很多时候人们容易把密码暴力破解和密码喷射技术搞混,“密码喷射攻击”(Password Spray Attack)并不等同于“密码爆破攻击”(Brute Force Attack)。事实上,这两种攻击是相反的。

在密码爆破攻击中,黑客选择一个易受攻击的 ID 并一个接一个地输入密码,希望有一些密码可以让他们进入。基本上,密码爆破是用多个密码尝试破解同一个 ID。而密码喷射攻击,是用一个密码来尝试多个用户 ID,以便至少有一个用户 ID 被泄露。对于密码喷射攻击,黑客使用社交工程或其他网络钓鱼方法收集多个用户 ID。通常情况下,至少有一个用户使用简单的密码,如12345678甚至是 p@ssw0rd。

在密码喷射攻击中,黑客会为其收集的所有用户 ID 精心构造密码。因此,密码喷射攻击可以定义为将相同的密码应用于组织中的多个用户帐户,目的是安全的对其中一个帐户进行未授权访问。

暴力破解的问题在于,在使用不同密码进行一定次数的尝试后,系统可能会被锁定。为了避免这种情况,产生了收集用户 ID 并将可能的密码应用于它们的想法。使用密码喷射攻击时,黑客也会采取一些预防措施。例如,如果他们尝试将 password1应用于所有用户帐户,则在完成第一轮后,他们不会立即开始将 password2应用于这些帐户。他们将在黑客攻击中留出至少30分钟的时间。

测试案例

仅文字描述

由于AD用户设置锁定阈值为5,因此我们可以为每个用户尝试4个不同的密码,然后我们等待30分钟或者比30分钟更长的时间(锁定窗口,其中DC保持锁定计数,此后重置为0),然后再试一次。攻击者可以通过收集有关AD域环境的密码策略信息,帮助攻击者能够更好地使用密码喷射攻击。

密码喷射攻击通常应用到SMB共享或RDP服务,所以我们可以从这两点入手,这两类服务在企业内网中是非常常见的。密码喷射攻击会产生大量的windows事件ID 4625登录失败。当发现大量此类事件时,它值得引起你的注意。

当攻击者通过更改连接的服务来避免windows产生事件ID4625,即不再连接SMB或者RDP服务,而是连接到域控制器上的LDAP服务,许多组织都在集中精力去监视4625事件。但如果连接到LDAP服务进行密码喷射攻击,则不会记录4625事件。则会记录Kerberos日志事件4771,并监测“Kerberos预身份验证失败”。在事件ID 4771中,失败代码为“0x18”,这意味着密码错误。

在接入域的计算机上执行密码喷射时,如果攻击者在此系统上(即域内任意主机系统)运行密码喷射攻击,则会在此主机上记录事件ID4648(“使用显式凭据尝试登录”)。如果在几秒钟内记录了大量4648事件,这种情况是异常的,你需要重点关注。

检测日志

在AD环境中进行密码喷射攻击,你可以通过启用适当的日志记录和有效的关联来进行检测和发现。

主要的日志审核策略:

  • 域控制器:事件ID4625 审核登录(成功和失败)
  • 域控制器:事件ID4771 审核Kerberos身份验证服务 (成功和失败)
  • 所有系统:事件ID4648 审核登录(成功和失败)

测试复现

场景一:利用Hydra进行RDP爆破

场景二:利用ncrack进行RDP爆破

测试留痕

暂无

检测规则/思路

sigma规则

场景一:检测规则

title: Hydra win7 RDP爆破
description: kali windows hydra
references: https://www.96007.club/2019/09/17/Credential-Access-win-Password-spraying/
tags: T1110-003
status: experimental
author: Blue team
logsource:
    product: windows
    service: security
detection:
    selection1:
        EventID: 4771 #计算机试图验证帐户的凭据。
        AuthenticationPackage: 'MICROSOFT_AUTHENTICATION_PACKAGE_V1_0'
        LogonAccount: '*'
        SourceWorkstation: '*'
        ErrorCode: '0xc0000064'
    selection2:
        EventID: 4625
        LogonType: 3
        FailureReason: '未知用户名或密码错误。' #失败信息>失败原因
        Status: 0xc000006d   #失败信息>状态
        SubStatus: 0xc0000064  #失败信息>子状态
        LogonProcess: 'NtLmSsp' #详细的身份验证信息>登陆进程
        AuthenticationPackage: 'NTLM' #详细的身份验证信息>身份验证包
    timeframe: last 2s
    condition: all of them
level: medium
#注意:在一分钟内,同一主机事件ID为4625的事件大于50个;

场景二:检测规则

title: ncrack win7 RDP爆破
description: kali windows ncrack
references: https://www.96007.club/2019/09/17/Credential-Access-win-Password-spraying/
tags: T1110-003
status: experimental
author: 12306Bro
logsource:
    product: windows
    service: security
detection:
    selection1:
        EventID: 4771 #计算机试图验证帐户的凭据。
        AuthenticationPackage: 'MICROSOFT_AUTHENTICATION_PACKAGE_V1_0'
        LogonAccount: '*'
        SourceWorkstation: '*'  #源工作站地址等于win7本机主机名
        ErrorCode: 0xc0000064
    selection2:
        EventID: 4625
        LogonType: 10
        FailureReason: '未知用户名或密码错误。' #失败信息>失败原因
        Status: 0xc000006d   #失败信息>状态
        SubStatus: 0xc0000064  #失败信息>子状态
        CallerProcessName: 'C:\Windows\System32\winlogon.exe' #进程信息>调用方进程名
        LogonProcess: 'User32' #详细的身份验证信息>登陆进程
        AuthenticationPackage: 'Negotiate' #详细的身份验证信息>身份验证包
    timeframe: last 2s
    condition: all of them
level: medium
#注意:在一分钟内,同一主机事件ID为4625的事件大于50个;

建议

在一分钟内,同一主机失败代码为0x18,事件ID为4771的事件大于50个;值得注意的是:此规则只适用于域控制器

在一分钟内,同一主机上事件ID为4648的事件大于100个;

您可以根据您的具体环境通过缩短时间阈值或事件数量阈值来调整每个告警规则。

参考推荐

MITRE-ATT&CK-T1110-003

https://attack.mitre.org/techniques/T1110/003

LDAP轻量目录访问协议

https://baike.baidu.com/item/LDAP/2875565?fr=aladdin

爆破工具 Hydra 简单使用

https://www.jianshu.com/p/4da49f179cee

CrackMapExec:一款针对大型Windows活动目录(AD)的后渗透工具

https://www.freebuf.com/sectool/184573.html