内网工具之ADFind的使用

ADFind是一款C++语言编写的域中信息查询工具,可以在域中任何一台主机上使用,在内网渗透中的使用率较高
下载地址,该地址下载工具不需要压缩包密码

https://github.com/mai-lang-chai/AD-Penetration-Testing-Tools/blob/master/AdFind.zip

参数

执行如下命令即可查看Adfind的所有参数
image.png

连接选项

域内机器上执行ADFind的话,不需要连接参数,如果是域外机器执行ADFind的话,则需要指定连接参数。如下:

  • -h:指定主机与端口
  • -p:可以单独使用-p参数指定端口
  • -u:指定用户
  • -up:指定密码

过滤选项

过滤参数,也就是进行查询的时候需要过滤的一些条件

  • -b:指定要查询的根节点basedn
  • -bit:指定位查询
  • -f:LDAP过滤条件,指定ldap语法

显示选项

显示参数,也就是查询出来之后如何显示的一些参数

  • -appver:显示adfind版本信息
  • -c:只统计数量
  • -csv:导出为csv格式
  • -dn:只显示dn,不返回详细信息
  • -s:搜索的范围,有one(当前层级)/sub(一层一层递归),默认是sub
  • -sdna:非域管查询sd信息
  • -recmute:如果所有属性都为空,则禁止显示DN,主要适用于sddl过滤器选项
  • -t:查询超时时间,默认120秒

查看帮助

帮助参数,也就是使用过程的一些帮助

  • -help:基础的帮助
  • -?:基础的帮助
  • -??:高级帮助
  • -???:快捷方式的帮助
  • -sc?:快捷方式帮助
  • -meta?:元数据帮助
  • -regex?:固定表达式帮助

使用

adfind 工具使用的结构如下:其中 switches 是连接参数,-b 是指定要查询的根节点 basedn,-f 是指定过滤的条件,attr 是指定要显示的属性。

AdFind.exe [switches] [-b basedn] [-f filter] [attr list]

switches

该选项是连接参数,如果adfind在域内主机上运行,则无需该选项,如果是域外机器上执行,则需要指定域控和提供一个有效的域用户和密码

./Adfind.exe -h 192.168.1.11:389 -u tmac\administrator -up admin@123 -sc dclist

#-h:192.168.1.11的389端口
#-u:提供用户名
#-up:提供密码
#-sc:查询域控列表

image.png

[-b basedn]

该选项指定要查询的根节点basedn

  • 查询 dn dc=tmac,dc=com下的所有机器
Adfind -b dc=tmac,dc=com -f "objectcategory=computer" dn
  • 查询 dn CN=Computers,DC=xie,DC=com 下的所有机器
Adfind.exe -b CN=Computers,DC=tmac,DC=com -f "objectcategory=computer" dn

[-f filter]

该选项指定查询的过滤条件,使用-f参数过滤不同的查询条件

  • 查询域内所有机器
Adfind.exe -f "objectcategory=computer" dn

image.png

  • 查询域内所有用户
AdFind.exe -f "(&(objectCategory=person)(objectClass=user))" dn

image.png

[attr list]

该选项用于指定查询出来的结果显示哪个属性。当不使用该参数时,会显示查询对象的所有属性

  • 查询域内所有机器,显示所有机器的所有属性
Adfind.exe -f "objectcategory=computer"

image.png

  • 查询域内所有机器,显示所有机器的dn属性
Adfind.exe -f "objectcategory=computer" dn

image.png

  • 查询域内所有机器,显示所有机器的name属性
Adfind.exe -f "objectcategory=computer" name

image.png

查询示例

一些在实战中经常用到的查询语法

查询域信任关系

adfind.exe -f objectclass=trusteddomain -dn

image.png

查询域控

  • 查询域控名称
AdFind.exe -sc dclist

image.png

  • 查询域控版本
AdFind.exe -schema -s base objectversion

image.png

  • 域控版本对应的数字
    • Windows 2000 Server operating system: 13
    • Windows Server 2003 operating system: 30
    • Windows Server 2003 R2 operating system: 31
    • Windows Server 2008 operating system (AD DS): 44
    • Windows Server 2008 R2 operating system (AD DS): 47
    • Windows Server 2012 operating system (AD DS): 56
    • Windows Server 2012 R2 operating system (AD DS): 69
    • Windows Server 2016 operating system (AD DS): 87
    • Windows Server v1709 operating system (AD DS): 87
    • Windows Server v1803 operating system (AD DS): 88
    • Windows Server v1809 operating system (AD DS): 88
    • Windows Server 2019 operating system (AD DS): 88
    • Active Directory Application Mode (ADAM): 30
    • Windows Server 2008 (AD LDS): 30
    • Windows Server 2008 R2 (AD LDS): 31
    • Windows Server 2012 (AD LDS): 31
    • Windows Server 2012 R2 (AD LDS): 31
    • Windows Server 2016 (AD LDS): 31
    • Windows Server v1709 (AD LDS): 31
    • Windows Server v1803 (AD LDS): 31
    • Windows Server v1809 (AD LDS): 31
    • Windows Server 2019 (AD LDS): 31

机器相关命令

查询域中所有机器

  • 查询域中所有机器,只显示dn
AdFind.exe -f "objectcategory=computer" dn
  • 查询域中所有机器,显示机器名和操作系统
AdFind.exe -f "objectcategory=computer" name operatingSystem

image.png

查询域中活跃机器

  • 查询域中活跃机器,只显示dn
AdFind.exe -sc computers_active dn

image.png

  • 查询域中活跃机器,显示机器名和操作系统
AdFind.exe -sc computers_active name operatingSystem

image.png

查询指定机器详细信息

  • 查询指定机器 mail 详细信息
AdFind.exe -f "&(objectcategory=computer)(name=mail)"

image.png

用户相关命令

查询域管理员

  • 查询域管理员组中含有哪些用户
Adfind.exe -b "CN=Domain Admins,CN=Users,DC=tmac,DC=com" member

image.png

查询域内所有用户

adfind.exe -b dc=tmac,dc=com -f "(&(objectCategory=person)(objectClass=user))
" -dn

查询指定域用户

  • 查询域用户test的信息
adfind.exe -sc u:test

image.png

查询指定域用户的sid

AdFind.exe -sc u:test objectSid

image.png

查询指定sid对应的用户

AdFind.exe -sc adsid:S-1-5-21-3360754451-1213512736-1246375978-1106

image.png

查询指定域用户属于哪些组

查询指定域用户 administrator 属于哪些组。有两种查询方式,查询的结果一样,但是返回的 objects 数量不一样。

adfind.exe -s subtree -b CN=administrator,CN=users,DC=tmac,DC=com memberOf

adfind.exe -s subtree -f "(member="CN=administrator,CN=users,DC=tmac,DC=com") " dn

递归查询指定域用户属于哪些组

adfind.exe -s subtree -b dc=tmac,dc=com -f "(member:INCHAIN:="CN=administr
ator,CN=users,DC=tmac,DC=com")" -bit -dn

查询域内开启“Do not require Kerberos preauthentication”选项的用户

adfind -f "useraccountcontrol:1.2.840.113556.1.4.803:=4194304" -dn

查询受保护的用户

Adfind -f "&(objectcategory=person)(samaccountname=*)(admincount=1)" -dn

查询users容器下所有对象

AdFind.exe -users -dn

组相关

查询域内所有的组

adfind.exe -f "objectClass=group" -dn

image.png

查询域内所有的全局组

adfind.exe -f "(grouptype=-2147483646)" -dn

image.png

查询域内所有通用组

adfind.exe -f "(grouptype=-2147483640)" -dn

image.png

查询域内所有的本地域组

adfind.exe -f "(|(grouptype=-2147483644)(grouptype=-2147483643))" -dn

image.png

递归查询指定组含有哪些域用户

adfind.exe -s subtree -b dc=tmac,dc=com -f "(memberof:INCHAIN:="CN="Domai
n Admins",CN=Users,DC=tmac,DC=com")" -bit -dn

委派相关

非约束性委派

  • 查询域中配置非约束性委派的主机
AdFind.exe -b "DC=tmac,DC=com" -f "(&(samAccountType=805306369)(userAccoun tControl:1.2.840.113556.1.4.803:=524288))" -dn
  • 查询域中配置非约束性委派的服务账户
AdFind.exe -b "DC=tmac,DC=com" -f "(&(samAccountType=805306368)(userAccoun tControl:1.2.840.113556.1.4.803:=524288))" -dn

约束性委派

  • 查询域中配置了约束性委派的主机,并可以看到被委派的SPN
AdFind.exe -b "DC=tmac,DC=com" -f "(&(samAccountType=805306369)(msds-allow edtodelegateto=*))" msds-allowedtodelegateto
  • 询域中配置了约束性委派的服务账户,并可以看到被委派的 SPN
AdFind.exe -b "DC=tmac,DC=com" -f "(&(samAccountType=805306368)(msds-allow edtodelegateto=*))" msds-allowedtodelegateto

基于资源的非约束性委派

  • 查询域中配置基于资源的约束性委派主机
AdFind.exe -b "DC=tmac,DC=com" -f "(&(samAccountType=805306369)(msDS-Allo wedToActOnBehalfOfOtherIdentity=*))" msDS-AllowedToActOnBehalfOfOtherIdentit y
  • 查询域中配置基于资源的约束性委派的服务账户
AdFind.exe -b "DC=tmac,DC=com" -f "(&(samAccountType=805306368)(msDS-Allo wedToActOnBehalfOfOtherIdentity=*))" msDS-AllowedToActOnBehalfOfOtherIdentit y

常用命令

查询域内具备Dcsync权限的用户

  • 查询域中具有复制目录权限的用户
AdFind.exe -s subtree -b "DC=tmac,DC=com" nTSecurityDescriptor -sddl+++ -sddlfil ter ;;;"Replicating Directory Changes";; -recmute -resolvesids
  • 查找域中具有复制目录所有项权限的用户
AdFind.exe -s subtree -b "DC=tmac,DC=com" nTSecurityDescriptor -sddl+++ -sddlfil ter ;;;"Replicating Directory Changes All";; -recmute -resolvesids

查询域内的OU组织单位

adfind.exe -f "objectClass=organizationalUnit" -dn

查询域的ACL

adfind.exe -b DC=tmac,DC=com -sc getacl

查询域内所有GPO

AdFind.exe -sc gpodmp

查询域内高权限的SPN

AdFind.exe -b "DC=tmac,DC=com" -f "&(servicePrincipalName=*)(admincount=1)" ser vicePrincipalName

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值