攻击 FreeIPA 域:对象枚举
實驗室環(huán)境
在我們深入討論之前,讓我們簡要回顧一下實驗室環(huán)境是如何創(chuàng)建的,以及它的總體結構。
詳細設計 FreeIPA 實驗室環(huán)境的圖解
上面的圖表是我為這個系列文章建立的 FreeIPA 實驗室環(huán)境的總體布局,已經被用于安全研究。 FreeIPA 背后的團隊為 FreeIPA 服務器和跨多個流行操作系統(tǒng)的客戶機維護了 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
我們在這個練習中的出發(fā)點將放棄對托管 FreeIPA 環(huán)境中的受損 web 服務器的訪問。其目的是最終獲得域的管理員憑證,并從 SQL 數據庫中提取出敏感數據。在我們深入研究這些目標之前,讓我們先了解一下 FreeIPA 環(huán)境中的一些基本對象和枚舉技術。
主機、用戶和組
與 windows 活動目錄 (AD) 特別相似,FreeIPA 允許管理員創(chuàng)建主機和用戶。這些主機和用戶可以分別按照稱為“主機組”和“用戶組”的容器進行排序。與 AD 相比,這些群組的功能非常類似于組織單位(OU)。
基于主機的訪問控制規(guī)則(HBAC-Rules)、特權、角色和 sudo-Rules 可以應用于上述任何對象。如果你不熟悉HBAC-Rules、 Privileges、 Roles 或 Sudo-Rules,不必擔心。稍后我們將深入探討這些問題。
有多種方法枚舉來自 IPA 服務器中關于域的信息。在這篇文章中,我將嘗試介紹以下兩種方法:
· 在 LDAP 服務器上使用輕型目錄訪問協(xié)議(LDAP) 查詢
· 利用內置的 IPA 管理工具
在這樣的背景下,讓我們深入實驗室,開始枚舉 FreeIPA 中的用戶、主機、用戶組和主機組。
通過 LDAP 查詢枚舉
在 FreeIPA 中默認情況下,LDAP 服務器允許匿名綁定,并且大量數據是在未經身份驗證的情況下可枚舉的。但是,在未經身份驗證的情況下并非所有數據都是可枚舉的。 ACL 顯式保護了負責映射安全授權控件的數據。下面的命令將檢索所有未經身份驗證的可用數據:
ldapsearch -x
在本文的其余部分,所有 ldapsearch 命令都將經過身份驗證。在本系列的第一篇文章中,我們將詳細介紹如何在 FreeIPA 環(huán)境中識別和使用憑證。
有了有效的憑據,我們就可以更加具體,通過為每個搜索設置目標的基本專有名稱(DN)來過濾查詢。下面的查詢標識了實驗室環(huán)境中的所有用戶:
ldapsearch -Y gssapi -b “cn=users,cn=compat,dc=westeros,dc=local”
LDAP 的響應數據詳細說明了實驗室環(huán)境中的用戶
我們可以使用相同的查詢和稍微修改的基本專有名稱來檢索環(huán)境中所有主機的數據:
ldapsearch -Y gssapi -b
“cn=computers,cn=accounts,dc=westeros,dc=local”
LDAP 的響應數據中包含了在實驗室環(huán)境中的主機的詳細信息
同樣,我們可以修改基本專有名稱來檢索每個主機組和用戶組:
ldapsearch -Y gssapi -b
“cn=hostgroups,cn=accounts,dc=westeros,dc=local”
ldapsearch -Y gssapi -b “cn=groups,cn=accounts,dc=westeros,dc=local”
通過 IPA 管理工具進行枚舉
默認情況下,注冊到 FreeIPA 域的主機將安裝 IPA 管理工具作為注冊過程的一部分。這個工具對于環(huán)境的枚舉和配置非常有用。正如我們在上面討論的那樣,讓我們回顧一下如何使用內置的 IPA 管理工具枚舉關于用戶、主機、用戶組和主機組的信息。
遺憾的是,如果沒有有效的域憑證,則無法使用 IPA 工具。如果你發(fā)現自己處于缺乏有效域憑據的情況,那么每個主機都會部署一個針對該主機的 keytab 憑證。此 keytab 可用于為主機本身獲取有效的憑證緩存(CCACHE)票據授予票據(TGT)。
有了有效的憑證和對 ipa 實用程序的訪問權限,你可以使用以下命令枚舉相關信息:
ipa user-find
ipa usergroup-find
ipa host-find
ipa host-group-find
ipa user-show --all
ipa usergroup-show --all
ipa host-find --all
ipa hostgroup-show --all
HBAC-Rule
Fedora 的 FreeIPA 文檔將 HBAC-Rule 定義為:
訪問控制,在一個高層次上,定義誰可以訪問什么。誰可以是用戶或主機(源主機) ,什么可以是主機(目標主機)、服務或服務組,或三者的組合。
HBAC-Rule 應該用于委托對特定資源的訪問。如果配置正確,這種訪問控制可以非常有效地減少橫向移動。作為一個攻擊者,我們可以使用 HBAC-Rule 來識別哪些帳戶被委托訪問環(huán)境中的特定資源。
讓我們回顧一下如何列舉這些策略。
通過 LDAP 查詢進行枚舉
下面的命令可以用來檢索實驗室環(huán)境中的所有 HBAC-Rule:
ldapsearch -Y gssapi -b “cn=hbac,dc=westeros,dc=local”
LDAP 的響應數據詳細描述了實驗室環(huán)境中的 HBAC-Rule
通過 IPA 管理工具進行枚舉
下面的命令可用于檢索實驗室環(huán)境中的所有 HBAC-Rule。
ipa hbacrule-find
ipa hbacrule-show --all
Sudo-Rules
Fedora 的 FreeIPA 文檔將 Sudo-Rules 定義為:
Sudo 規(guī)則在某種意義上類似于訪問控制規(guī)則: 它們定義被授予訪問權限的用戶、規(guī)則范圍內的命令,然后是規(guī)則應用的目標主機。在 FreeIPA 中,可以在規(guī)則中配置其他信息,比如 sudoers 選項和 run-as 設置,但是基本元素總是定義誰、什么(服務)和哪里(主機)。
FreeIPA 提供了通過 sudo-rules 從一個集中的源管理 sudo 權限的能力。這些規(guī)則集可用于限制或委托在域中注冊的主機上作為 sudo 執(zhí)行命令的能力。作為一個攻擊者,我們可以枚舉哪些主機和用戶也應用了這些規(guī)則集,以及哪些命令是允許通過規(guī)則集的。
通過 LDAP 查詢進行枚舉
下面的命令可以用來檢索實驗室環(huán)境中的所有 sudo-rules:
ldapsearch -Y gssapi -b “cn=sudorules,cn=sudo,dc=westeros,dc=local”
LDAP 的響應數據詳細描述了實驗室環(huán)境中的 sudo-rule
通過IPA管理工具進行枚舉
下面的命令可以用來檢索實驗室環(huán)境中的所有 sudo-rules。
ipa sudorule-find
ipa sudorule-show --all
基于角色的訪問控制
Fedora 的 FreeIPA 文檔將以角色為基礎的訪問控制定義為:
基于以角色為基礎的訪問控制(RBAC)是一種組織訪問 FreeIPA 管理的數據的分層方式。在組織中執(zhí)行相同任務的不同用戶通常組合成一個組,并且該組成為 FreeIPA 角色的成員。此角色為成員組和用戶提供執(zhí)行分配任務所需的權限。
在 FreeIPA 中的角色由幾個不同的元素組成。每個角色都包含一組特權,而這些相應的特權包含一組權限。角色可以應用于用戶、用戶組、主機、主機組和服務。為了說明這個概念,我們來討論一下 FreeIPA 中默認的“用戶管理員”角色。
枚舉 FreeIPA 中用戶管理員角色的權限
如上圖所示,“用戶管理員”角色包含以下特權:
· 用戶管理員
· 組管理員
· 階段用戶管理員
我們可以進一步深入研究并枚舉授予每個特權的權限。
枚舉給定特權的權限
正如我們可以看到的,“用戶管理員”角色在環(huán)境中包含相當多的權限。理解角色、特權和權限的一般概念和結構對于識別整個環(huán)境中的攻擊路徑至關重要。
通過 LDAP 查詢進行枚舉
下面的命令可以用來檢索實驗室環(huán)境中的所有角色:
ldapsearch -Y gssapi -b “cn=roles,cn=accounts,dc=westeros,dc=local”
LDAP 的響應數據詳細說明了“用戶管理員”角色的屬性
通過 IPA 管理工具進行枚舉
下面的命令可以用來檢索實驗室環(huán)境中的所有角色、特權和權限。
ipa role-find
ipa role-show --all
ipa privilege-find
ipa privilege-show --all
ipa permission-find
ipa permission-show --all
總結
希望到目前為止,我們對 FreeIPA 環(huán)境中的各種不同類型的對象有了稍微更好的理解,并對它們的意義有了更深的了解。作為攻擊者,不僅要能夠枚舉,而且要能夠理解這些對象的重要性,這一點至關重要。
在本系列的下列文章中,我將著眼于討論以下內容:
· 利用本文中介紹的枚舉技術來發(fā)現實驗室環(huán)境中的攻擊路徑
· 最后,概述了 FreeIPA 環(huán)境中攻擊者可能濫用的一些錯誤配置和獨特場景
【不,你不想學習,你不需要】
總結
以上是生活随笔為你收集整理的攻击 FreeIPA 域:对象枚举的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 攻击面管理(ASM),企业攻击面管理实践
- 下一篇: 服务器指纹识别之 DNS TXT