Documentos de Académico
Documentos de Profesional
Documentos de Cultura
• 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)
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
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
TCP
Internet
HTTPS
Host
200.200.200.200 SMB
Redirector Redirector
BindIP
192.168.2.100
SMTP
Server Redirector Redirector Redirector Redirector
Phishing C2 C2 C2
Payloads De largo plazo De corto plazo Interactivo
On premise o cloud
Lab
VPN
Windows 10 VM KALI VM
Phishing
Payloads
All C2
LOCALES
Agrupan usuarios,
grupos o equipos DE DOMINIO
Grupo Grupo
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.
Regula la auditoria
Regula el acceso
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
Quiero acceder a la
Security Reference Monitor
Token
impresora Imp1
(SRM)
DACL Autorización
Acceso concedido
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
• Archivos ofimática
– Office (Visual Basic for apps macros/OLE/DDE)
• Powershell launchers
• Javascript, HTA
• Archivos ejecutables
– Exe’s
– Dll’s
Payloads
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
• 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
• Verificar la configuracion
– GetRegistryKey
HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HANDS ON
Enumeración local
Active Directory Cyber Kill Chain
Enumeración local
• 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
https://github.com/hfiref0x/UACME
Ej: usando UACME
• 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
• 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
• 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
PASSWOR D1_ _ _ _ _
+paridad +paridad
Clave Clave
SAM
Cypher1 Cypher2
• Alternativa…
mimikatz.exe log "sekurlsa::minidump lsass.dmp"sekurlsa::logonPasswords exit
Security Account Manager (SAM)
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
• 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
1 Requerimiento “negotiate”
Challenge
2 Envio de challenge server (A)
Challenge
server (A)
• 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
(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)
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 »
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
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
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
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
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
LSASS (kerberos)
Para el dominio « ad.local »
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
• 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
– Write gPLink
ACLs de Active directory
• Explotación de persistencia
Mimikatz “privilege::debug” “sekurlsa::pth /domain:NOMBRE_DC /user:Administrator
/ntlm:7c08d63a2f48f045971bc2236ed3f3ac” exit
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