攻击 FreeIPA 第二章:信息枚举
字数 1408 2025-08-20 18:18:23

FreeIPA 攻击指南:第二章 - 信息枚举技术

0x00 前言

本章是FreeIPA攻击系列的第二部分,重点介绍如何枚举FreeIPA环境中的关键信息。在第一部分中,我们讨论了FreeIPA的认证机制和凭证处理。本章将深入探讨FreeIPA环境中的各种对象和结构,以及如何有效地枚举这些信息。

0x01 实验环境概述

实验环境采用FreeIPA官方提供的Docker镜像构建,包含以下关键组件:

  • FreeIPA服务器和客户端Docker镜像
  • 跨多个流行操作系统的支持
  • 模拟的Web服务器环境(初始立足点)

环境拓扑

  • 初始权限:受FreeIPA管理的Web服务器的WebShell权限
  • 目标:获取FreeIPA域管理权限并删除SQL数据库中的敏感数据

资源链接

0x02 FreeIPA核心对象模型

FreeIPA环境包含以下主要对象类型:

  1. 主机(Computers):加入域的系统设备
  2. 用户(Users):域账户
  3. 主机组(Host Groups):主机的逻辑分组容器
  4. 用户组(User Groups):用户的逻辑分组容器
  5. HBAC规则:基于主机的访问控制规则
  6. Sudo规则:特权命令执行规则
  7. RBAC元素:角色(Roles)、权限(Privileges)和许可(Permissions)

这些对象之间的关系类似于Windows Active Directory中的组织单位(OU)结构。

0x03 信息枚举技术

3.1 通过LDAP协议枚举

FreeIPA的LDAP服务器默认允许匿名绑定,但部分数据受ACL保护。

基本LDAP查询命令

# 匿名枚举可访问数据
ldapsearch -x

# 使用GSSAPI认证枚举所有用户
ldapsearch -Y gssapi -b "cn=users,cn=compat,dc=westeros,dc=local"

# 枚举所有主机
ldapsearch -Y gssapi -b "cn=computers,cn=accounts,dc=westeros,dc=local"

# 枚举主机组
ldapsearch -Y gssapi -b "cn=hostgroups,cn=accounts,dc=westeros,dc=local"

# 枚举用户组
ldapsearch -Y gssapi -b "cn=groups,cn=accounts,dc=westeros,dc=local"

3.2 通过IPA管理工具枚举

加入FreeIPA域的机器会自动安装IPA管理工具,需要有效凭证才能使用。

关键IPA命令

# 用户相关枚举
ipa user-find
ipa user-show <username> --all

# 用户组枚举
ipa usergroup-find
ipa usergroup-show <user group> --all

# 主机相关枚举
ipa host-find
ipa host-show <host> --all

# 主机组枚举
ipa host-group-find
ipa hostgroup-show <host group> --all

0x04 HBAC规则枚举

HBAC(基于主机的访问控制)规则定义了:

  • 谁可以访问(用户或源主机)
  • 可以访问什么(目标主机、服务或服务组)

4.1 LDAP枚举方法

ldapsearch -Y gssapi -b "cn=hbac,dc=westeros,dc=local"

4.2 IPA工具枚举方法

ipa hbacrule-find
ipa hbacrule-show <hbacrule> --all

0x05 Sudo规则枚举

Sudo规则定义了:

  • 被授予访问权限的用户
  • 规则范围内的命令
  • 规则适用的目标主机
  • 可选的sudoers选项和run-as设置

5.1 LDAP枚举方法

ldapsearch -Y gssapi -b "cn=sudorules,cn=sudo,dc=westeros,dc=local"

5.2 IPA工具枚举方法

ipa sudorule-find
ipa sudorule-show <sudorule> --all

0x06 基于角色的访问控制(RBAC)枚举

FreeIPA的RBAC包含三个层级:

  1. 角色(Roles):包含一组权限
  2. 权限(Privileges):包含一组许可
  3. 许可(Permissions):具体的操作权限

示例:"用户管理员"角色包含:

  • User Administrators权限
  • Group Administrators权限
  • Stage User Administrators权限

6.1 LDAP枚举方法

ldapsearch -Y gssapi -b "cn=roles,cn=accounts,dc=westeros,dc=local"

6.2 IPA工具枚举方法

# 角色枚举
ipa role-find
ipa role-show <role> --all

# 权限枚举
ipa privilege-find
ipa privilege-show <privilege> --all

# 许可枚举
ipa permission-find
ipa permission-show <permission> --all

0x07 攻击路径分析

通过上述枚举技术可以:

  1. 识别环境中的关键对象和关系
  2. 发现潜在的配置错误
  3. 规划从初始访问到域控制的攻击路径

后续章节将探讨如何利用这些信息进行实际攻击。

0x08 参考资源

  1. FreeIPA HBAC规则文档
  2. FreeIPA Sudo规则文档
  3. MIT Kerberos文档
  4. Kerberos凭证窃取技术
  5. 原文链接
FreeIPA 攻击指南:第二章 - 信息枚举技术 0x00 前言 本章是FreeIPA攻击系列的第二部分,重点介绍如何枚举FreeIPA环境中的关键信息。在第一部分中,我们讨论了FreeIPA的认证机制和凭证处理。本章将深入探讨FreeIPA环境中的各种对象和结构,以及如何有效地枚举这些信息。 0x01 实验环境概述 实验环境采用FreeIPA官方提供的Docker镜像构建,包含以下关键组件: FreeIPA服务器和客户端Docker镜像 跨多个流行操作系统的支持 模拟的Web服务器环境(初始立足点) 环境拓扑 : 初始权限:受FreeIPA管理的Web服务器的WebShell权限 目标:获取FreeIPA域管理权限并删除SQL数据库中的敏感数据 资源链接 : FreeIPA Docker镜像: Dockerhub FreeIPA容器项目: GitHub 官方文档: FreeIPA Docker页面 0x02 FreeIPA核心对象模型 FreeIPA环境包含以下主要对象类型: 主机(Computers) :加入域的系统设备 用户(Users) :域账户 主机组(Host Groups) :主机的逻辑分组容器 用户组(User Groups) :用户的逻辑分组容器 HBAC规则 :基于主机的访问控制规则 Sudo规则 :特权命令执行规则 RBAC元素 :角色(Roles)、权限(Privileges)和许可(Permissions) 这些对象之间的关系类似于Windows Active Directory中的组织单位(OU)结构。 0x03 信息枚举技术 3.1 通过LDAP协议枚举 FreeIPA的LDAP服务器默认允许匿名绑定,但部分数据受ACL保护。 基本LDAP查询命令 3.2 通过IPA管理工具枚举 加入FreeIPA域的机器会自动安装IPA管理工具,需要有效凭证才能使用。 关键IPA命令 0x04 HBAC规则枚举 HBAC(基于主机的访问控制)规则定义了: 谁可以访问(用户或源主机) 可以访问什么(目标主机、服务或服务组) 4.1 LDAP枚举方法 4.2 IPA工具枚举方法 0x05 Sudo规则枚举 Sudo规则定义了: 被授予访问权限的用户 规则范围内的命令 规则适用的目标主机 可选的sudoers选项和run-as设置 5.1 LDAP枚举方法 5.2 IPA工具枚举方法 0x06 基于角色的访问控制(RBAC)枚举 FreeIPA的RBAC包含三个层级: 角色(Roles) :包含一组权限 权限(Privileges) :包含一组许可 许可(Permissions) :具体的操作权限 示例:"用户管理员"角色包含: User Administrators权限 Group Administrators权限 Stage User Administrators权限 6.1 LDAP枚举方法 6.2 IPA工具枚举方法 0x07 攻击路径分析 通过上述枚举技术可以: 识别环境中的关键对象和关系 发现潜在的配置错误 规划从初始访问到域控制的攻击路径 后续章节将探讨如何利用这些信息进行实际攻击。 0x08 参考资源 FreeIPA HBAC规则文档 FreeIPA Sudo规则文档 MIT Kerberos文档 Kerberos凭证窃取技术 原文链接