16. 16
u El PEB ;ene otro campo llamado NtGlobalFlag (en el offset 0x68) para detectar si el
programa ha sido cargado por un debugger:
v Si no está siendo debuggeado, el valor de este campo es 0x0.
v Si está siendo debuggeado, con;ene el valor 0x70.
Técnicas An7-Debugger
NtGlobalFlag
JR0driguezB - Técnicas de evasión y an7-análisis
; ebx contendrá la dirección del PEB
mov ebx, [fs:0x30]
; Comprobar si PEB.NtGlobalFlag es dis;nto de 0
cmp dword [ebx+0x68], 0
jne .debbugger_detected
19. 19
u Cuando se debuggea un proceso, se emplean ciclos de CPU tanto por el código del
debugger como por el reverser traceando el programa.
u Analizando el ;empo de ejecución entre diversos puntos del programa, se puede
deducir si se está corriendo bajo un debugger.
u Las siguientes llamadas permiten calcular estos ;empos:
v Rdtsc (Read Time-Stamp Counter)
v GetTickCount()
Técnicas An7-Debugger
Timing checks
JR0driguezB - Técnicas de evasión y an7-análisis
21. 21
u Otra forma de ver si hay un debugger corriendo en el sistema es listar todos los
procesos y buscar si alguno de los nombres se corresponden a debuggers:
v Ollydbg.exe
v x32dbg.exe y x64dbg.exe
v Idaq.exe
v Windbg.exe
Técnicas An7-Debugger
Procesos asociados a debuggers
JR0driguezB - Técnicas de evasión y an7-análisis
37. 37
u Puede darse la posibilidad de que sea muy
complejo lidiar con las técnicas implementadas
para la detección de entornos virtuales.
u Una posible solución es desplegar máquinas …sicas
para el análisis de estas muestras.
u Uso de sosware que ayude a devolver la máquina
a un estado limpio:
v Deep Freeze
Técnicas An7-VM
Máquinas sicas
JR0driguezB - Técnicas de evasión y an7-análisis
40. 40
u Las técnicas empleadas en el malware actual pueden no ser tan “ideales” como las
mencionadas en la charla.
u Detección de entornos en el lado del C2.
Caso prác7co
An7-Análisis en malware
JR0driguezB - Técnicas de evasión y an7-análisis