Microsoft操作系统缺乏可以防止许多攻击的安全控制和强化措施,此外多年来已经证明Windows生态系统中许多事物工作方式可以通过利用现有功能和工作流程来实现滥用 具体来说,活动目录中的每个帐户在sAMAccountName...属性缺乏控制相结合,红队操作员可以利用它进行域权限提升,具体来说,可以请求域控制器帐户的票证授予票证,并且在任何服务票证请求之前恢复sAMAccountName属性值将强制KDC搜索域控制器的机器帐户并发出提升的服务票证代表域管理员...为了正确利用这种攻击进行域升级,用户需要拥有计算机帐户的权限才能修改sAMAccountName和servicePrincipalName属性,可以创建机器帐户的用户具有修改这些属性所需的权限,默认情况下...属性 修改机器账户的sAMAccountName属性指向不带$符号的域控制器名称 为域控制器帐户请求TGT 将sAMAccountName属性恢复为其原始值或任何其他值 使用S4U2self方法请求服务票证...代表域管理员帐户接收服务票证 下图说明了sAMAccountName模拟技术的步骤: 漏洞发现 Microsoft已发布补丁以防止成功利用,但是在许多情况下补丁没有按时应用,这会产生一个可以在红队评估期间利用该技术的时间段
- 修改saMAccountName属性:在当前域,可以通过修改saMAccountName属性让KDC找不到用户,然后走进这个处理UserName的逻辑。...4:修改saMAccountName属性正常TGS-REQ不带PAC 首先创建一个机器用户machine$,然后将其saMAccountName属性设置为域控机器名AD01。...5:修改saMAccountName属性正常TGS-REQ带PAC 首先创建一个机器用户machine$,然后将其saMAccountName属性为ad01。...8:S4U2Self带PAC不还原saMAccountName属性 首先创建一个机器用户machine$,然后将其saMAccountName属性为ad01。...10:攻击域用户 可能很多人会问了,既然针对机器用户可以修改saMAccountName属性来假冒域控。那么,针对普通域用户能否修改saMAccountName属性来假冒域控从而发起攻击呢?
ObjectGUID : 72ac7731-0a76-4e5a-8e5d-b4ded9a304b5 PasswordLastSet : 12/31/2015 8:45:27 AM SamAccountName...: Global Name : Domain Admins ObjectClass : group ObjectGUID : 5621cc71-d318-4e2c-b1b1-c181f630e10e SamAccountName...: Global Name : Server Admins ObjectClass : group ObjectGUID : 3877c311-9321-41c0-a6b5-c0d88684b335 SamAccountName...DomainLocal Name : DnsAdmins ObjectClass : group ObjectGUID : 46caa0dd-6a22-42a3-a2d9-bd467934aab5 SamAccountName...Name : Hyper-V Administrators ObjectClass : group ObjectGUID : 3137943e-f1c3-46d0-acf2-4711bf6f8417 SamAccountName
',Dc=com' Get-ADUser -LDAPFilter '(name=*)' -SearchBase $searchBase |Select GivenName,SurName,Name,SamAccountName...导出的对象包含许多属性,我们选重要的属性导出,比如GivenName、SurName、Name、SamAccountName,结果如下所示: ?...in $users){ $givenName=$user.GivenName $surName=$user.SurName $name=$user.Name $samAccountName...=$user.SamAccountName $userPrincipalName=$samAccountName+'@'+$dc+'.com' $password=$user.Password...#创建AD User# New-ADUser -Name $name -SamAccountName $samAccountName -UserPrincipalName $userPrincipalName
sAMAccountName修改为其他值,不能与DC的机器账户名重复。...利用原理:如果域内存在一台域控名为DC(机器账户为DC)的域控机,此时攻击者可利用CVE-2021-42287漏洞去申请一个机器账户,再将机器账户的sAMAccountName修改为DC。...然后再利用这个机器账户去申请一个TGT票据,再将DC的sAMAccountName修改为其他。...修改结束后再利用这个TGT通过S4U2Self去申请ST票据,此时KDC识别TGT票据内用户名为DC,检索到域内并未存在DC用户,但存在DC用户(检索的依据为sAMAccountName值),于是KDC...samaccountname -Verbose net group "domain computers" /domain 此时可以看到,我们的Nayon$用户,在修改了samaccountname值后
DC 假如域内有一台域控名为 DC(域控对应的机器用户为 DC),此时攻击者利用漏洞 CVE-2021-42287 创建一个机器用户 saulGoodman,再把机器用户 saulGoodman 的 sAMAccountName...再把 DC 的sAMAccountName 改为 saulGoodman。...这个时候 KDC 就会判断域内没有 DC 和这个用户,自动去搜索 DC(DC是域内已经的域控DC 的 sAMAccountName),攻击者利用刚刚申请的 TGT 进行 S4U2self,模拟域内的域管去请求域控...powermad addcomputer.py是利用SAMR协议创建机器账户,这个方法所创建的机器账户没有SPN,所以可以不用清除 清除机器账户的servicePrincipalName属性 将机器账户的sAMAccountName...,更改为DC的机器账户名字,注意后缀不带$ 为机器账户请求TGT 将机器账户的sAMAccountName更改为其他名字,不与步骤3重复即可 通过S4U2self协议向DC请求ST 进行 DCsync
try { UserPrincipal p = UserPrincipal.FindByIdentity(context, IdentityType.SamAccountName..._GroupsToIgnore.Contains(group.SamAccountName)) { if (_IsAdditiveGroupMode...) { if (_GroupsToUse.Contains(group.SamAccountName))...{ results.Add(group.SamAccountName); }...} else { results.Add(group.SamAccountName
利用流程假如域内有一台域控名为 DC01(域控对应的机器用户为 DC01$),此时攻击者利用漏洞 CVE-2021-42287 创建一个机器用户 xiaoxin,再把机器用户 xiaoxin 的 sAMAccountName...再把 DC01 的sAMAccountName 改回来 xiaoxin。...这个时候 KDC 就会判断域内没有 DC01 这个用户,自动去搜索 DC01$(DC01$是域控DC01 的 sAMAccountName),攻击者利用刚刚申请的 TGT 进行 S4U2self,模拟域内的域管去请求域控
:OU=xxxx,DC=xxxxx-net,DC=com,DC=cn Serach Filter, 格式为: (id={{username}}). id 需要替换为对应的LDAP的项目, 一般为: (sAMAccountName...按需 Verify TLS Certificate: 按需 TLS Certificate Path: 按需 Unique ID Field Mapping(唯一ID域映射): 一般为: uid 或 sAMAccountName
Get-ADUser -Filter ‘useraccountcontrol -band 128’ -Properties useraccountcontrol | Format-Table name, samaccountname...Get-ADUser -Filter ‘useraccountcontrol -band 128’ -Properties useraccountcontrol | Format-Table name, samaccountname...UserAccountControl:1.2.840.113556.1.4.803:=128))” -Properties useraccountcontrol | Format-Table name,samaccountname...Format-Table name, samaccountname,useraccountcontrol Format-Table命令将告诉PowerShell格式化输出以及要显示的属性。...Get-ADUser -Filter ‘useraccountcontrol -band 128’ -Properties useraccountcontrol | Format-Table name, samaccountname
Identity|Get-Mailbox -Filter 'RecipientTypeDetails -eq "UserMailbox"' -ResultSize unlimited } #Get SamAccountName...UserMailbox).StorageLimitStatus $UserMailboxStatistic | Add-Member -MemberType NoteProperty -Name "SamAccountName..." -Value $UserMailbox.SamAccountName $UserMailboxStatistic | Add-Member -MemberType NoteProperty -Name
、类型 AuthName "Git Access" AuthType Basic AuthBasicProvider ldap # 设置 LDAP 搜索的目录, 使用 sAmAccountName...sAMAccountName?sub?...、类型 AuthName "Git Access" AuthType Basic AuthBasicProvider ldap # 设置 LDAP 搜索的目录, 使用 sAmAccountName...sAMAccountName?sub?
who has rights to the 'matt' user in 'testlab.local', resolving rights GUIDs to names Get-ObjectAcl -SamAccountName...)[0..1] -join " "; Get-NetUser -Filter "(displayname=*$a*)" } | Select-Object -Property displayname,samaccountname...-Filter '(member=*)(groupType=2147483656)' -ADSPath 'GC://testlab.local' -FullData | Select-Object samaccountname...useraccountcontrol:1.2.840.113556.1.4.803:=262144)" -Properties samaccountname Get-DomainUser -UACFilter...NOT_SMARTCARD_REQUIRED -Properties samaccountname # use multiple identity types for any *-Domain* function
确实在活动目录数据库中不存在sAMAccountName属性为aaaa的条目。...例如用户的sAMAccountName属性属性为cccc,则证书中插入对应的主体名称为cccc@xie.com。...然后分别查询sAMAccountName属性为aaaa的条目和查userPrincipalName属性为aaaa@xie.com的条目。...如果只搜素到了sAMAccountName属性为aaaa的条目,没有搜素到userPrincipalName属性为aaaa@xie.com的条目,则用sAMAccountName属性为aaaa的条目的权限信息生成对应的...确实在活动目录数据库中不存在sAMAccountName属性为dddd的条目。
用下面代码可以进行 AD 中的查询: var entities = _connection.Search(ADClient.BaseDC,LdapConnection.SCOPE_SUB, $"sAMAccountName...的下一层级 SCOPE_SUB:查询 base 下的所有对象,包含 base filter:用来过滤的表达式,下面列出一些常用的表达式 (cn=oec2003):返回 cn 等于 oec2003 的用户 (sAMAccountName...{ var entities = _connection.Search(ADClient.BaseDC,LdapConnection.SCOPE_SUB, $"sAMAccountName...attributeSet.Add(new LdapAttribute("objectclass", "user")); attributeSet.Add(new LdapAttribute("sAMAccountName
DirectorySearcher search = new DirectorySearcher(entry); //设置查询的过滤条件 search.Filter = “(SamAccountName...DirectorySearcher search = new DirectorySearcher(entry); search.Filter = “(SamAccountName...DirectorySearcher(entry); //search.Filter = (“(objectClass=user)”); search.Filter = “(SamAccountName
AUTH_LDAP_USER_SEARCH = LDAPSearch("OU=test,DC=test,DC=com", ldap.SCOPE_SUBTREE, "(&(objectClass=person)(sAMAccountName...= LDAPSearch("OU=test,DC=test,DC=intra", 19 ldap.SCOPE_SUBTREE, "(sAMAccountName
object object] [-all] options: -h, --help 显示帮助信息和退出 -object object 转储对象ACL,参数可以是一个sAMAccountName...、一个名称、一个DN或一个objectSid -all 枚举对象ACE get-objectacl将使用一个sAMAccountName、一个名称、一个DN或一个objectSid
它支持以下一堆名称格式: 用户主体名称 sAMA账户名 sAMAccountName@DomainNetBIOSName sAMAccountName@DomainFQDN 域NetBIOSName\sAMAccountName...域FQDN\sAMAccountName 请注意,如果您使用SRV01 字符串作为 sAMAccountName,并且SRV01 帐户不存在,而SRV01$ 帐户存在,则此名称将被视为SRV01$ 帐户的主体名称...并且不使用 SPN,因此您甚至可以从误解的 SPN 中获取哈希值: 使用新的 GetUserSPNs.py 对 SPN 不正确的帐户进行 Kerberoasting 内部使用“DomainFQDN\sAMAccountName
}; private static final String defaultPersonAtts[] = {"distinguishedName", "memberOf", "name", "sAMAccountName....map(sr -> { try { String sn = sr.getAttributes().get("sAMAccountName
领取专属 10元无门槛券
手把手带您无忧上云