Microsoft操作系统缺乏可以防止许多攻击的安全控制和强化措施,此外多年来已经证明Windows生态系统中许多事物工作方式可以通过利用现有功能和工作流程来实现滥用 具体来说,活动目录中的每个帐户在sAMAccountName...属性缺乏控制相结合,红队操作员可以利用它进行域权限提升,具体来说,可以请求域控制器帐户的票证授予票证,并且在任何服务票证请求之前恢复sAMAccountName属性值将强制KDC搜索域控制器的机器帐户并发出提升的服务票证代表域管理员...为了正确利用这种攻击进行域升级,用户需要拥有计算机帐户的权限才能修改sAMAccountName和servicePrincipalName属性,可以创建机器帐户的用户具有修改这些属性所需的权限,默认情况下...属性 修改机器账户的sAMAccountName属性指向不带$符号的域控制器名称 为域控制器帐户请求TGT 将sAMAccountName属性恢复为其原始值或任何其他值 使用S4U2self方法请求服务票证...代表域管理员帐户接收服务票证 下图说明了sAMAccountName模拟技术的步骤: 漏洞发现 Microsoft已发布补丁以防止成功利用,但是在许多情况下补丁没有按时应用,这会产生一个可以在红队评估期间利用该技术的时间段
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
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值后
", each [securityPrincipal.sAMAccountName] = "YourGroupName"), #"Filtered Rows_Group" = #"Filtered...Rows"{[securityPrincipal.sAMAccountName= "YourGroupName"]}[group], MembersList = #"Filtered Rows_Group...", "displayName", "userPrincipalName", "department"}, {"sAMAccountName", "displayName", "userPrincipalName...", "department"}), #"Sorted Rows" = Table.Sort(#"Expand Column",{{"sAMAccountName", Order.Ascending...#"Filtered Rows" = Table.SelectRows(#"Expanded securityPrincipal",each [securityPrincipal.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
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,模拟域内的域管去请求域控
操作安全考虑在开发过程中考虑了节流和操作安全问题:self.attribute_variations = { 'samaccountname': ['sAMAccountName', 'samAccountName...', 'SAMACCOUNTNAME', 'sAmAcCoUnTnAmE'], 'objectclass': ['objectClass', 'OBJECTCLASS', 'ObjectClass
: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?
还需要替换以下dc=test,替换为自己的,conn.search(search_base='dc=test,dc=com', search_filter=f'(sAMAccountName...if conn.bind(): conn.search(search_base='dc=test,dc=com', search_filter=f'(sAMAccountName
确实在活动目录数据库中不存在sAMAccountName属性为aaaa的条目。...例如用户的sAMAccountName属性属性为cccc,则证书中插入对应的主体名称为cccc@xie.com。...然后分别查询sAMAccountName属性为aaaa的条目和查userPrincipalName属性为aaaa@xie.com的条目。...如果只搜素到了sAMAccountName属性为aaaa的条目,没有搜素到userPrincipalName属性为aaaa@xie.com的条目,则用sAMAccountName属性为aaaa的条目的权限信息生成对应的...确实在活动目录数据库中不存在sAMAccountName属性为dddd的条目。
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
用下面代码可以进行 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
::lookup /name:xuan# 查询指定SID对应的对象sid::lookup /sid:S-1-5-21-1982601180-2087634876-2293013296-1001# 通过samAccountName...::query /sam:lzx# 通过SID属性查询对象的一些信息sid::query /sid:S-1-5-21-2952760202-1353902439-2381784089-1109# 通过samAccountName...-1-5-21-1982601180-2087634876-2293013296-1001 /new:S-1-5-21-2952760202-1353902439-2381784089-109# 通过samAccountName...2381784089-109# 将administrator的SID添加到test的SID History属性中sid::patchsid::add /sam:lzx /new:administrator# 清除指定samAccountName
工具特征 1、支持根据LDAP中的详细信息生成字典文件:其中包括用户的name和sAMAccountName、计算机设备的name和sAMAccountName、组的name、组织的name、活动目录站点的
}; private static final String defaultPersonAtts[] = {"distinguishedName", "memberOf", "name", "sAMAccountName....map(sr -> { try { String sn = sr.getAttributes().get("sAMAccountName