攻击种类
计算机/设备账户本质上与用户账户相同,如果配置错误,可能同样危险。因此,可以使用计算机账户密码/哈希值进行其他攻击:
1.银票攻击;
2.金票攻击;
3.过时的DNS条目;
4.替代攻击。
通过使用金票和银票进行攻击Kerberos票据授予服务(TGS)伪造票据。金票和银票攻击的主要区别在于,银票只允许攻击者伪造特定服务TGS票。这两者都可以被利用,因为Zerologon允许攻击者更改计算机帐户密码。
一旦攻击者能够访问计算机账户密码哈希,该账户就可以用作“用户”帐户来查询Active Directory,但更有趣的用例是创建银票作为管理员访问计算机托管服务。默认情况下,即使计算机账户的密码多年没有更改,Active Directory也不会阻止计算机账户访问AD资源。
什么银票攻击?
构成银票攻击的关键如下:
1.KRBTGT帐户哈希;
2.目标用户;
3.帐户SID;
4.域名;
5.目标服务;
6.目标服务器。
若攻击者已转储Active Directory如果数据库或理解域控制器的计算机账户密码,攻击者可以作为管理员使用银票DC以服务为目标并保留Active Directory中。
我们可以通过Pass-The-Hash在DC上运行CME来获得SID,显然,其他方法也可以使用whoami /user。
下面是在Mimikatz一旦我们有了使用的命令行SID,它会攻击:
kerberos::golden/domain:purplehaze.defense/user:zephr/sid:S-1-5-21-2813455951-1798354185-1824483207/rc4:9876543210abcdef9876543210abcdef/target:DC2.purplehaze.defense/service:cifs/ptt/id:500针对CIFS银票攻击服务
银票攻击还有其他方法可以执行,但是mimikatz通过传递票据标志和kerberos :: golden函数使它如此简单。
金票攻击
类似于银票,可以使用krbtgt帐户哈希,KRBTGT帐户所属域的域名和SID生成金票。金票可以为有效的域账户或不存在的账户创建,对攻击者更有吸引力!
kerberos::golden/domain:purplehaze.defense/user:zephr/sid:S-1-5-21-2813455951-1798354185-1824483207/rc4:9876543210abcdef9876543210abcdef/target:DC2.purplehaze.defense/ptt金票攻击命令
虽然攻击的主要焦点一直是AD环境中的域控制器周围,但很少基于DNS攻击,在这种攻击中,攻击者可以找到旧的DC DNS条目的陈旧DNS在不影响操作的情况下,更改这些项目的计算机密码。例如,您需要扫描主机网络并找到不再存在的网络DNS条目,可以发起攻击。
启动选择的PoC,在这个例子中,我将使用它mimikatz:
lsadump::zerologon/server:stream-dc.purplehaze.defense/account:stream-dc$/exploit
我们针对AD不存在的域控制器(也称为过时)DNS条目)有效利用!现在,上面的内容似乎是第一轮PoC这是因为它基本上是一个警告,DNS有一个条目AD账户,但没有与之相关的计算机,所以我只是试图改变计算机密码。网络上没有与计算机相关的计算机AD对象,因此在具有潜在权限的域上建立了攻击立足点。
强大的攻击使防守者无法战斗
以上都是关于如何利用这个漏洞的,下面具体来说说攻击工程。
目前受Zerologon有漏洞系统Windows Server 2019、Windows Server 2016、Windows Server 2012 R2、Windows Server 2012、Windows Server 2008 R2、Windows Server 2008
、Windows Server 2003 R2、Windows Server 2003。
Zerologon漏洞的修复
首先,修复这个漏洞需要几个步骤,还没有完整的解决方案。
所有这些都包括缓解措施DC和RODC安装更新,监控新事件,解决易受攻击的使用Netlogon连接安全通道的不兼容设备。不兼容设备上的计算机账户可以使用易受攻击的计算机账户。Netlogon连接安全通道。但是,它们应该更新以支持它们。Netlogon的安全RPC,并尽快执行该帐户,以消除攻击的风险。
应用Microsoft每个操作系统都可以在2020年8月11日获得补丁KB完整的编号列表。
此外,MS更新将于2021年2月9日发布,这将打开DC强制执行模式。解决方案是将小组策略与注册表项相结合,临时解决这个问题:
1.策略路径:“计算机配置”>“ Windows设置”>“安全设置”>“安全选项”;
2.设置名称:域控制器:允许易受攻击Netlogon安全通道连接;
应当注意,Microsoft警告:在部署更新时,应将该策略作为第三方设备的临时安全措施。
添加以下注册表:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters\FullSecureChannelProtection1 –这将启用强制模式。“域控制器:允许易受攻击Netlogon连接安全通道”组策略中的“创建易受攻击的连接”列表允许帐户,否则,DC拒绝易受攻击Netlogon连接安全通道。
0 – DC允许来自非Windows易受攻击的设备Netlogon连接安全通道。本选项将不同意在执行阶段的发行版本中使用。
这可以通过以下命令来实现:
REGadd"HKLM\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters"/vFullSecureChannelProtection/tREG_DWORD/d1/f除增加工作解决方案外,Microsoft具体事件不能发生ID监控您设备的可疑活动是否存在漏洞。
2020年8月或更高版本更新后,请在域控制器中的事件日志中查看系统事件日志中的以下事件:
1.如果拒绝连接,则记录事件ID 5827和5828;
2.如果“域控制器:允许易受攻击Netlogon连接安全通道”如果允许连接组策略,则记录事件ID 5830和5831;
3.只要允许有漏洞Netlogon连接安全通道,记录事件ID 5829。
应配置这些事件DC强制模式在2021年2月9日强制阶段之前或之前解决。
检测与响应:监控攻击
如上所述,可编制查询来监控异常活动,以便在事件日志中发现漏洞。
事件监控有很多工具,但我只介绍一些开源工具的搜索和查询,它们结合了可转换为其他平台sigma规则。我还收集了别人收集的数据,有望帮助你缩小搜索范围。
1.由https://twitter.com/james_inthe_box创建的Snort规则;
2.CoreLight的Zeek检测包;
另外,阅读是相关的splunk查询的文章可以在各种工具中监控以下事件日志和sysmon的事件ID。
1.事件ID-4742:更改计算机账户,特别是匿名登录事件可能会执行此操作。
2.事件ID-5805,计算机账户身份验证失败通常是由于同一计算机名称的多个例子或计算机名称没有复制到每个域控制器。
3.事件代码4624:请注意,如果在主机上使用此漏洞,将成功登录计算机,特别是事件代码4624,然后触发事件代码4724。
4.Sysmon事件ID 3:网络连接事件记录在计算机上TCP / UDP连接,Zerologon事件发生时,从攻击者的计算机到受害域控制器LSASS建立进入网络连接的过程。
5.Sysmon事件ID 1和13:如果重置设备密码,很可能使用以下参数生成Powershell系统过程。serviceName是zer0dump.py默认情况下,唯一的属性是‘fucked',实际上serviceName任何东西都可以:
powershell.exe -c Reset-ComputerMachinePassword'
6.系统事件代码ID 3210:如果主机已经使用,计算机密码已经更改,事件日志将填写3210个事件ID,这些ID表示NETLOGON错误,尤其是如果主机在复制对中。
7.事件ID-4662:若在上述事件中ID之后执行了DCSync攻击,将使用三个GUID任何生成事件ID 4662:
7.1:“DS-Replication-Get-Changes”扩展权限;
7.2:CN:DS复制获取变更;
7.3:GUID:1131f6aa-9c07-11d1-f79f-00c04fc2dcd2
7.4:“全部更改复制目录”扩展权限;
7.5;CN:DS复制所有更改
7.6:GUID:1131f6ad-9c07-11d1-f79f-00c04fc2dcd2
7.7:扩展了“更改过滤集中复制目录”权限(这个权限并不总是需要的,但我们可以添加以防万一);
7.8:CN:DS更改后复制过滤设置;
7.9:GUID:89e95b76-444d-4c62-991a-0facbeda640c;
这是成功使用事件日志中记录的攻击链的例子(请注意,事件日志已被清除以显示成功使用事件产生的事件):
系统日志
安全日志,身份验证失败,GUID为空
在尝试攻击时生成Sysmon日志
Sigma防御规则
也可以用一些sigma规则来寻找ZeroLogon,第一个是SOC Prime的Adam Swan编写的规则:
title:PossibleCVE-2020-1472(zerologon)description:CVE-2020-1472(NetlogonElevationofPrivilegeVulnerability)maycreatethousandsofNetrServerReqChallenge&NetrServerAuthenticate3requestsinashortamountoftime.author:SOCPrimeTeamdate:2020/09/11references:-https://github.com/SecuraBV/CVE-2020-1472tags:-attack.lateral_movement-attack.T1210logsource:product:zeekservice:dce_rpcdetection:selection:endpoint:'netlogon'operation:'NetrServerReqChallenge'selection2:endpoint:'netlogon'operation:'NetrServerAuthenticate3'timeframe:1mcondition:selectionorselection2|count()bysrc_ip>100falsepositives:-'unknown'level:highDC-Synctitle:MimikatzDCSyncid:611eab06-a145-4dfa-a295-3ccc5c20f59adescription:DetectsMimikatzDCsyncsecurityeventsstatus:experimentaldate:2018/06/03modified:2020/09/11author:BenjaminDelpy,FlorianRoth,ScottDermottreferences:-https://twitter.com/gentilkiwi/status/1003236624925413376-https://gist.github.com/gentilkiwi/dcc132457408cf11ad2061340dcb53c2tags:-attack.credential_access-attack.s0002-attack.t1003.006logsource:product:windowsservice:securitydetection:selection:EventID:4662Properties:-'*ReplicatingDirectoryChangesAll*'-'*1131f6ad-9c07-11d1-f79f-00c04fc2dcd2*'EventID:4662Properties:-'*DS-Replication-Get-Changes*'-'*1131f6aa-9c07-11d1-f79f-00c04fc2dcd2*'filter1:SubjectDomainName:'WindowManager'filter2:SubjectUserName:-'NTAUTHORITY*'-'*$'-'MSOL_*'condition:selectionandnotfilter1andnotfilter2falsepositives:-ValidDCSyncthatisnotcoveredbythefilters;pleasereportlevel:high安全查询
VQL匿名登录自定义工件:
name:Custom.Windows.EventLogs.AnonymousLogon-ZLdescription:|ParseSecurityEventLogforAnonymousLogoneventsthatcouldbeZeroLogonattemptsprecondition:SELECTOSFrominfo()whereOS='windows'parameters:-name:dateFromdefault:""type:timestamp-name:securityLogFiledefault:C:/Windows/System32/Winevt/Logs/Security.evtxsources:-queries:-SELECTSystem.EventID.Value,EventData.SubjectUserSid,EventData.SubjectUserName,EventData.SubjectDomainName,EventData.SubjectLogonId,EventData.TargetUserSid,EventData.TargetUserName,EventData.TargetDomainName,EventData.TargetLogonId,EventData.LogonType,EventData.WorkstationName,EventData.Properties,EventData.LogonGuid,EventData.TransmittedServices,EventData.ProcessId,EventData.ProcessName,EventData.IpAddress,EventData.IpPort,EventData.ImpersonationLevel,EventData.RestrictedAdminMode,EventData.TargetOutboundUserName,EventData.TargetOutboundDomainName,EventData.VirtualAccount,EventData.TargetLinkedLogonId,EventData.ElevatedToken,timestamp(epoch=System.TimeCreated.SystemTime)asTime,System.TimeCreated.SystemTimeASTimeUTCFROMparse_evtx(filename=securityLogFile)WHERESystem.EventID.Value=4742ANDtimestamp(epoch=System.TimeCreated.SystemTime)>=dateFrom与ZeroLogon VQL所有相关事件ID:
name:Custom.Windows.EventLogs.ZeroLogonHuntdescription:|ParseSecurityEventLogforZeroLogonEvents;4662,4672,5805,4624,4742precondition:SELECTOSFrominfo()whereOS='windows'parameters:-name:dateFromdefault:""type:timestamp-name:securityLogFiledefault:C:/Windows/System32/Winevt/Logs/Security.evtxsources:-queries:-SELECTSystem.EventID.Value,EventData.SubjectUserSid,EventData.SubjectUserName,EventData.SubjectDomainName,EventData.SubjectLogonId,EventData.TargetUserSid,EventData.TargetUserName,EventData.TargetDomainName,EventData.TargetLogonId,EventData.Properties,EventData.LogonType,EventData.LogonProcessName,EventData.AuthenticationPackageName,EventData.WorkstationName,EventData.LogonGuid,EventData.TransmittedServices,EventData.LmPackageName,EventData.KeyLength,EventData.ProcessId,EventData.ProcessName,EventData.IpAddress,EventData.IpPort,EventData.ImpersonationLevel,EventData.RestrictedAdminMode,EventData.TargetOutboundUserName,EventData.TargetOutboundDomainName,EventData.VirtualAccount,EventData.TargetLinkedLogonId,EventData.ElevatedToken,timestamp(epoch=System.TimeCreated.SystemTime)asTime,System.TimeCreated.SystemTimeASTimeUTCFROMparse_evtx(filename=securityLogFile)WHERESystem.EventID.Value=4662ORSystem.EventID.Value=4672ORSystem.EventID.Value=5805ORSystem.EventID.Value=4624ORSystem.EventID.Value=4742ANDtimestamp(epoch=System.TimeCreated.SystemTime)>=dateFrom通过缩短第二次查询,可以创建上述事件ID进一步创建相关详细信息VQL查询。
凯文·博蒙特(Kevin Beaumont)编写了一个怪异的Azure查询程序,让你在Azure环境中查询ZeroLogon:
Dce_Rpc|where(endpoint=="netlogon"and(operation=="NetrServerReqChallenge"oroperation=="NetrServerAuthenticate3"))|summarizevar=count()bySourceIp|wherevar>100此外,Azure ATP检测称为“可疑的Netlogon提高权限的尝试(CVE-2020-1472利用)”,假如你安装了Azure ATP,报警系统将自动触发。
本文翻译自:https://blog.zsec.uk/zerologon-attacking-defending/如若转载,请注明原文地址: