ldapsearch 不会返回 AD 上具有特殊字符(例如 user.name)的用户

问题描述 投票:0回答:1

我想在AD中搜索有描述的用户,在Windows Powershell上可以使用PowerView功能来完成

Get-DomainUser
:

Get-DomainUser -v * | Select-Object samaccountname,description | Where-Object {$_.Description -ne $null}

VERBOSE: [Get-DomainSearcher] search base: LDAP://LAB-DC01.DOMAIN.LOCAL/DC=DOMAIN,DC=LOCAL
VERBOSE: [Get-DomainUser] filter string: (&(samAccountType=805306368)(|(samAccountName=*)))

samaccountname description
-------------- -----------
administrator  Built-in account for administering the computer/domain
jdoe           .......................
user.name      FOOBAR

现在我想使用 ldapsearch 在 Linux 机器上获取该列表。使用 Get-DomainUser 中的搜索过滤器,我测试了以下 ldapsearch 命令行,它确实列出了帐户,我可以 grep 获取描述:

ldapsearch -h 172.12.0.1 -D 'domain\user' -w 'pass' -b "DC=DOMAIN,DC=LOCAL" "(&(samAccountType=805306368)(|(samAccountName=*)))"

但是,我注意到此搜索并没有返回帐户

user.name
。即使我仅使用
"(samAccountType=805306368)"
完全删除名称过滤器,它也不会返回。

仅当我使用

"(&(samAccountType=805306368)(|(samAccountName=*.*)))"
显式搜索模式时,它才会返回此(且仅此)帐户。

为什么这个账号没有被退回?有没有更“通用”的通配符?还有一个“用户名”,我必须用

*-*
进行过滤。

active-directory ldap filtering wildcard
1个回答
0
投票

哦糟糕。事实上,它与搜索过滤器和特殊字符完全无关。返回的结果简直太大了...

我用wireshark追踪了来自

Get-DomainUser
的ldap连接,我注意到ldap结果是分页返回的 - 但我仍然没有想到它。

ldapsearch
之前,我实际上尝试过使用工具
crackmapexec
来获取用户描述,但没有成功。所以现在我再次尝试并仔细查看了错误消息:
LDAPSearchError: Error in searchRequest -> 'sizeLimitExceeded'
...

事实上,在我指示 ldapsearch 使用带有参数

-E pr=2147483647/noprompt
的分页之后,相关用户也会通过我的搜索过滤器返回。该用户不在部分结果中,这确实只是一个巧合。

© www.soinside.com 2019 - 2024. All rights reserved.