实验室环境
在我们深入讨论之前,让我们简要回顾一下实验室环境是如何创建的,以及它的总体结构。
详细设计 FreeIPA 实验室环境的图解
上面的图表是我为这个系列文章建立的 FreeIPA 实验室环境的总体布局,已经被用于安全研究。 FreeIPA 背后的团队为 FreeIPA 服务器和跨多个流行操作系统的客户机维护了 docker 镜像。你可以在 Dockerhub 或者 Github 上找到这些 docker 镜像,链接如下:
· https://hub.docker.com/r/freeipa/freeipa-server/
· https://github.com/freeipa/freeipa-container
所有的文档和安装说明都可以在 FreeIPA 网站上找到,链接如下:
· https://www.freeipa.org/page/Docker
我们在这个练习中的出发点将放弃对托管 FreeIPA 环境中的受损 web 服务器的访问。其目的是最终获得域的管理员凭证,并从 SQL 数据库中提取出敏感数据。在我们深入研究这些目标之前,让我们先了解一下 FreeIPA 环境中的一些基本对象和枚举技术。
主机、用户和组
与 windows 活动目录 (AD) 特别相似,FreeIPA 允许管理员创建主机和用户。这些主机和用户可以分别按照称为“主机组”和“用户组”的容器进行排序。与 AD 相比,这些群组的功能非常类似于组织单位(OU)。
基于主机的访问控制规则(HBAC-Rules)、特权、角色和 sudo-Rules 可以应用于上述任何对象。如果你不熟悉HBAC-Rules、 Privileges、 Roles 或 Sudo-Rules,不必担心。稍后我们将深入探讨这些问题。
有多种方法枚举来自 IPA 服务器中关于域的信息。在这篇文章中,我将尝试介绍以下两种方法:
· 在 LDAP 服务器上使用轻型目录访问协议(LDAP) 查询
· 利用内置的 IPA 管理工具
在这样的背景下,让我们深入实验室,开始枚举 FreeIPA 中的用户、主机、用户组和主机组。
通过 LDAP 查询枚举
在 FreeIPA 中默认情况下,LDAP 服务器允许匿名绑定,并且大量数据是在未经身份验证的情况下可枚举的。但是,在未经身份验证的情况下并非所有数据都是可枚举的。 ACL 显式保护了负责映射安全授权控件的数据。下面的命令