A un domini, molts ordinadors s’utilitzen per oferir serveis als usuaris. És imprescindible pel correcte funcionament del Directori Actiu mantenir localitzats tots aquests serveis per permetre a l’usuari trobar-los i que s’hi puguin autenticar.
El servei del Directori Actiu pot ser una mica difícil de gestionar, perquè no és el mateix que un servei d’un ordinador. Un servei a una màquina Windows o Linux es pot entendre com un procés que s’executa en segon pla i que constantment està executant una tasca, com una base de dades per exemple. Un servei no té perquè estar exposat a fora, és a dir tenir un port obert, sinó que pot ser un servei local com per exemple el sistema d’actualitzacions.
Per altra banda, el servei del Directori Actiu és un identificador que indica quins serveis remots estan habilitats a un ordinador. No tots els serveis remots estan registrats a la base de dades del domini, tot i que el registre és necessari per tots aquells que requereixen que els usuaris s’autentiquin a través de Kerberos.
Cada servei registrat al Directori Actiu conté la següent informació:
- L’usuari que executa el servei.
- La classe del servei que indica quin tipus de servei és, per exemple els serveis web estan registrat com una classe www.
- L’ordinador que té el servei publicat.
- (Opcional) El port del servei.
- (Opcional) El directori del servei.
Per a poder emmagatzemar aquesta informació, cada servei s’identifica amb un Service Principal Name (SPN), que té el següent format:
classe_servei/nom_ordinador[:port][/directori]
El nom_ordinador pot ser el nom o el FQDN (Fully Qualified Domain Name: el nom i el domini units). És normal que ambdós formats s’emmagatzemin per ser compatibles amb Kerberos, per exemple:
ldap/DC01
ldap/dc01.projectenadki.local
El SPN es guarda a un objecte d’usuari o d’ordinador, d’aquesta manera el servei d’usuari es pot identificar fàcilment:
PS C:\> Get-ADComputer ws01-10 -Properties ServicePrincipalName | select -ExpandProperty ServicePrincipalName
TERMSRV/WS01-10
TERMSRV/ws01-10.projectenadki.local
RestrictedKrbHost/ws01-10.projectenadki.local
HOST/ws01-10.projectenadki.local
RestrictedKrbHost/WS01-10
HOST/WS01-10
És important tenir en compte que encara que el servei no s’estigui executant, pot estar encara registrat a la base de dades del Directori Actiu. Això és important perquè pot provocar que serveis antics ajudin a un atacant a comprometre un compte utilitzant Kerberoast.
Com a resum de Kerberoast, pots demanar un tiquet de Kerberos per a qualsevol servei registrat del domini. El tiquet Kerberos del servei estarà xifrat amb el secret del servei d’usuari (pot ser un hash NT o una clau Kerberos) derivada de la contrasenya. Després, pots guardar el tiquet i intentar crackejar-lo per aconseguir la contrasenya en clar. Per serveis d’ordinadors això no serà possible, ja que la contrasenya acostuma a ser molt complexa, però els serveis d’usuaris poden tenir contrasenyes dèbils.
Servei Host
A més a més, degut a que els sistemes Windows despleguen molts serveis per defecte, els ordinadors tenen per la classe de servei HOST registrada. La classe HOST és un sobrenom per a molts serveis.
PS C:\Users\Administrator> Get-ADObject -Identity "CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,$((Get-ADDomain).DistinguishedName)" -properties sPNMappings
DistinguishedName : CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=projectenadki,DC=local
Name : Directory Service
ObjectClass : nTDSService
ObjectGUID : 70502b18-010f-4d33-bbb9-ff85a88c6156
sPNMappings : {host=alerter,appmgmt,cisvc,clipsrv,browser,dhcp,dnscache,replicator,eventlog,eventsystem,policyage
nt,oakley,dmserver,dns,mcsvc,fax,msiserver,ias,messenger,netlogon,netman,netdde,netddedsm,nmagent,p
lugplay,protectedstorage,rasman,rpclocator,rpc,rpcss,remoteaccess,rsvp,samss,scardsvr,scesrv,seclog
on,scm,dcom,cifs,spooler,snmp,schedule,tapisrv,trksvr,trkwks,ups,time,wins,www,http,w3svc,iisadmin,
msdtc}