Auditoria bàsica de ciberseguretat a un domini de Microsoft
Compartir
El Directori Actiu (Active Directory) és un component crític en la infraestructura de moltes organitzacions, utilitzat per gestionar recursos i usuaris en entorns Windows. L'auditoria de Directori Actiu és essencial per garantir la seguretat de la xarxa i la integritat de les dades. A continuació, partint del compromís assumit que un usuari de domini ha estat vulnerat, explorarem els principals vectors d'atac que cal identificar:
1. Escalada de Privilegis
Local
Encara que no
sempre és necessari, és altament recomanable partir de permisos de
administració a la màquina atacant. Daquesta manera lús deines
serà molt més còmode. Per això es poden utilitzar eines com PowerUp,
WinPeas o SeatBelt entre altres, per identificar camins que en permetin una
escalada a administrador local.
2. Polítiques de Contrasenyes
Una política
de contrasenyes feble pot ser útil per fer atacs de tipus passwordspraying
(això s'ha de fer amb cura per no bloquejar comptes) o per al
posterior craqueig de hashes identificats. A més, en cas que no existeixi
política de bloqueig després d'intents fallits, seria possible fer força bruta
contra tot el domini sense por de bloquejar els comptes d'usuari.
3. Identificar secrets a
carpetes compartides.
Un cop es
disposa d'un usuari de domini, és recomanable enumerar les carpetes
compartides a les quals es té accés (per exemple, amb smbclient). A
ocasions, es poden identificar documents que recullen algun tipus de
credencial, la qual pot ser vàlida o servir com a punt de partida per
endevinar altres contrasenyes.
4. Identificació de sistemes
operatius obsolets
Es deu
verificar que no s'estiguin utilitzant sistemes operatius fora de suport i/o
desactualitzats. Aquest tipus dequips poden ser molt útils, ja que és
altament probable que tinguin vulnerabilitats explotables amb exploits
públics. Encara que no siguin objectius rellevants, accedir-hi pot
ser interessant per obtenir les credencials que tinguin emmagatzemades. És molt
important avisar el responsable d'IT que es farà ús de exploits,
per si aquests poguessin causar una caiguda al servei de l'empresa.
5. Identificació de comptes
privilegiades
És molt
interessant realitzar un procés inicial d'enumeració en què es
identifiquin els comptes objectiu que permetin comprometre la totalitat del
domini. Durant aquesta fase d'enumeració no només es busquen els comptes de
Domain admin, sinó que també és important identificar comptes amb permisos
especials que permetin dur a terme moviments al domini. En punts
següents veurem per què això és important.
6. Identificació i Abús de
comptes amb Constrained Delegation
En un punt
anterior s'indicava que calia identificar comptes amb permisos
elevats, ja que aquest és un tipus concret de compte privilegiat. Aquestes poden
tenir-hi delegat el poder d'impersonar qualsevol usuari del domini
per a una sèrie de serveis determinats. Gràcies a això, si s'aconsegueix
comprometre un compte amb constrained delegation, és possible suplantar
a qualsevol usuari per a serveis de Windows com a host, RPCSS, http, wsman, cifs,
ldap, krbtgt o winrm.
8. Identificació i Abús de Unconstrained
Delegation
Aquest és un altre
tipus de compte privilegiat d'alt interès. Aquests comptes estan autoritzats
per rebre i emmagatzemar els TGT (Ticket Granting Ticket) de kerbers de
qualsevol compte. És per això, que en accedir-hi seria possible extreure'n els
tiquets emmagatzemats a les mateixes. D'altra banda, també és possible fer
atacs d'autenticació forçada sobre aquesta màquina, és a dir, forçar a
qualsevol màquina del domini a autenticar-se contra la màquina unconstrained
compromesa. D'aquesta manera, la nova víctima (el controlador de domini, per
exemple) enviaria una còpia del seu TGT a la màquina unconstrained, sent
possible la seva intercepció.
9. Identificar i Abusar
Permisos de DCSync
Seguim amb comptes privilegiats interessants. En aquest cas cal identificar comptes amb permisos de DCSync, és a dir, comptes que tinguin els permisos DS-Replication-Get-Changes-All i DS-Replication-Get-Changes. Si aconseguim comprometre una credencial amb aquests permisos, podrem realitzar un atac de DCSync, o el que és el mateix, simular que som un controlador de domini que vol sincronitzar el seu base de dades (ntds.dit) amb la del controlador de domini real. D'aquesta manera s'obtindrien tots els hashes del domini, incloent-hi els del Domain Admin.
10. Identificar i Abusar Resource-Based
Constrained Delegation
Si com atacants podem identificar un compte amb permisos de “GenericWrite” o “GenericAll” sobre “ActiveDirectoryRights”, significarà que aquest compte té la capacitat d'atorgar permisos de constrained delegation a qualsevol compte del domini. Això vol dir que, si comprometem aquest compte, podrem indicar que qualsevol compte del domini pugui demanar TGSs (Ticket Garanting Service) per a serveis de qualsevol màquina del domini, incloent el nostre objectiu principal: el controlador de domini.
11. Identificar i Abusar
Plantilles de Certificats Vulnerables
Aquest tipus de atac es basa a utilitzar eines com certify o certipy per identificar plantilles de certificats vulnerables a la CA (certificate authority) corporativa. Hi ha una sèrie d'escenaris vulnerables possibles, que permeten a un atacant sol·licitar certificats en nom d'altres usuaris, per exemple, d'un Domain Admin o de qualsevol compte privilegiada.
12. Identificar serveis
Vulnerables
És possible que
als directoris actius es trobin màquines amb serveis diferents a
els propis del directori actiu desplegats (encara que no és una bona pràctica),
per exemple, Jenkins o serveis SQL. És important identificar aquests serveis
per comprovar si són vulnerables, ja que moltes vegades poden servir
com a punt d'accés a la màquina on s'estan executant. La situació
ideal per a un atacant seria identificar un servei que poder explotar, i que
aquest estigués sent executat amb un usuari administrador local de la
màquina. D'aquesta manera, en aconseguir execució remota de codi mitjançant el
servei explotable, seria possible comprometre tota la màquina.
13. Kerberoasting
Kerberoasting
és un atac basat en l'explotació de comptes de servei que tenen
associats Servei Principal Names (SPNs). Aquests SPNs són registres que
associen un servei o aplicació específica amb un compte de servei al
Directori actiu.
L'objectiu de
fer kerberoasting és sol·licitar tiquets d'aquests comptes de servei per,
posteriorment, desxifrar-los offline i obtenir les contrasenyes originals. Això
és possible ja que part del tiquet sol·licitat està xifrat utilitzant una clau
derivada de la contrasenya original.
14. Extracció de Credencials
Un cop compromesa qualsevol màquina, el procediment a seguir és extreure de la mateixa qualsevol contrasenya emmagatzemada. Per això es poden utilitzar eines com Mimikatz. Aquestes credencials poden ser útils per fer moviments laterals a través del domini, comprometent màquines en què els usuaris que es van recol·lectant siguin administradors locals.
Conclusió
Acabem de veure només algunes de
les tècniques més utilitzades durant una auditoria, però els atacants descobreixen
tècniques noves cada dia, cadascú més innovadora. Per això us convidem
a què investigueu i descobriu els vostres propis camins cap a controladors de
domini.
Ignacio Sánchez, Analista de Ciberseguretat a Zerolynx.