160
Máster en Ciberseguridad Módulo: Nombre del módulo de la asignatura UCyS-UGR 2016/2017 Análisis de Malware

Análisis de Malware - Universidad de Granada

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Análisis de Malware - Universidad de Granada

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la a

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Análisis de Malware

Page 2: Análisis de Malware - Universidad de Granada

2

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Índice

1. Introducción e historia

2. Análisis estático básico

3. Análisis dinámico básico

4. Análisis estático avanzado

5. Análisis dinámico avanzado

6. Funcionalidad típica del malware

7. Técnicas anti ingeniería inversa

Page 3: Análisis de Malware - Universidad de Granada

3

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Índice

1. Introducción e historia

2. Análisis estático básico

3. Análisis dinámico básico

4. Análisis estático avanzado

5. Análisis dinámico avanzado

6. Funcionalidad típica del malware

7. Técnicas anti ingeniería inversa

Page 4: Análisis de Malware - Universidad de Granada

4

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Terminología

• Bomba lógica

• Troyano

• Backdoor (Botnet & RATs & CC)

• Virus

• Worm

• Rabbit

• Spyware

• Adware

• Downloader / Launcher

• Rootkit

• Spammer

• Scareware

Introducción e historia

Page 5: Análisis de Malware - Universidad de Granada

5

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Introducción e historia

Page 6: Análisis de Malware - Universidad de Granada

6

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Introducción e historia

Page 7: Análisis de Malware - Universidad de Granada

7

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Índice

1. Introducción e historia

2. Análisis estático básico

3. Análisis dinámico básico

4. Análisis estático avanzado

5. Análisis dinámico avanzado

6. Funcionalidad típica del malware

7. Técnicas anti ingeniería inversa

Page 8: Análisis de Malware - Universidad de Granada

8

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• VirusTotal

• Hashing

• Strings• Unicode

• Cabeceras

• Análisis de Packer (PEiD)

Análisis estático básico

Page 9: Análisis de Malware - Universidad de Granada

9

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Bibliotecas enlazadas• Estáticas

• Dinámicas (imports) Dependency Walker

• En tiempo de ejecución• LoadLibrary• GetProcAddress

Análisis estático básico

Page 10: Análisis de Malware - Universidad de Granada

10

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Librerías comunes de Windows• Kernel32.dll

• Advapi32.dll

• User32.dll

• Gdi32.dll

• Ntdll.dll

• Wsock32.dll / Ws2_32.dll

• Wininet.dll

Análisis estático básico

Page 11: Análisis de Malware - Universidad de Granada

11

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Nombres de funciones• CreateWindow / CreateWindowEx

• CreateDirectory• CreateDirectoryA• CreateDirectoryW

Análisis estático básico

Page 12: Análisis de Malware - Universidad de Granada

12

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Ficheros PE• IMAGE_DOS_HEADER Historical

• MS-DOS Stub Program Historical

• IMAGE_NT_HEADERS

• IMAGE_FILE_HEADER Información sobre compilación

• IMAGE_OPTIONAL_HEADER • Subsystem description: GUI / Consola

• IMAGE_SECTION_HEADER Secciones del ejecutable, nombres elegidos por el compilador

• Virtual Size: lo que ocupa en memoria

• Size of Raw data: lo que ocupa en disco

Análisis estático básico

Page 13: Análisis de Malware - Universidad de Granada

13

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Ficheros PE

Análisis estático básico

Nombre Descripción

.text / .code

Código ejecutable

.rdata / .const

Datos read-only

.data Datos

.idata Funciones importadas (a veces se omite y están en .rdata)

.edata Funciones exportadas (a veces se omite y están en .rdata)

.pdata Información de EH en 64 bits

.rsrc Resources

.reloc Información para relocar bibliotecas

.bss Uninitialized data

… …

Page 14: Análisis de Malware - Universidad de Granada

14

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Resources• Iconos

• Menús

• Diálogos

• Cadenas

Análisis estático básico

Page 15: Análisis de Malware - Universidad de Granada

15

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• ¡Probemos! Práctica, 3.1

Análisis estático básico

Page 16: Análisis de Malware - Universidad de Granada

16

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Índice

1. Introducción e historia

2. Análisis estático básico

3. Análisis dinámico básico

4. Análisis estático avanzado

5. Análisis dinámico avanzado

6. Funcionalidad típica del malware

7. Técnicas anti ingeniería inversa

Page 17: Análisis de Malware - Universidad de Granada

17

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Máquinas virtuales• Pros

• Aisladas• Snapshots• Record/Replay

• Contras

• Detectables)• Vulnerabilidades

Análisis dinámico básico

Page 18: Análisis de Malware - Universidad de Granada

18

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Warning! No sabemos qué tenemos entre manos y vamos a ejecutar cosas! Usa un entorno aislado!

Análisis dinámico básico

Page 19: Análisis de Malware - Universidad de Granada

19

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Sandboxes• Norman Sandbox

• GFI Sandbox (ThreatAnalyzer)• https://www.threattrack.com/online-malware-sandbox.aspx

• Cuckoo / VMCloak• https://malwr.com/

• Online / Offline

Análisis dinámico básico

Page 20: Análisis de Malware - Universidad de Granada

20

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Sandboxes, problemas

• Parámetros

• Funciones de arranque

• Detección de VM

• Malware en DLLs

Análisis dinámico básico

Page 21: Análisis de Malware - Universidad de Granada

21

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Malware en DLLs

• rundll32.exe DLLname, Export arguments

• rundll32.exe xyzzy.dll, #5

• rundll32 ipr32x.dll,InstallService ServiceNamenet start ServiceName

Análisis dinámico básico

Page 22: Análisis de Malware - Universidad de Granada

22

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Process Monitor• Registro• Filesystem• Procesos y hebras• Red (no recomendado)

Análisis dinámico básico

Page 23: Análisis de Malware - Universidad de Granada

23

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Process Explorer• Task manager• Verifica si DLL está firmada por

Microsoft en runtime• Comprobar strings en disco y en

memoria• Algunas diferencias son normales

• Análisis rápido de malware en documentos

Análisis dinámico básico

Page 24: Análisis de Malware - Universidad de Granada

24

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Regshot • Permite hacer dos snapshots del

registro y compararlas

Análisis dinámico básico

Page 25: Análisis de Malware - Universidad de Granada

25

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Comportamiento de red• Fakenet / fakenet-ng

• Redirige el tráfico DNS/HTTP/SSL

• Inteligente, si piden jpg sirve jpg• Saca un pcap• Muy flexible

Análisis dinámico básico

Page 26: Análisis de Malware - Universidad de Granada

26

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Comportamiento de red• Wireshark• InetSim (Linux)• Nc• ApateDNS

Análisis dinámico básico

Page 27: Análisis de Malware - Universidad de Granada

27

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• ¡Probemos! Práctica, 3.2

Análisis dinámico básico

Page 28: Análisis de Malware - Universidad de Granada

28

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Índice

1. Introducción e historia

2. Análisis estático básico

3. Análisis dinámico básico

4. Análisis estático avanzado

5. Análisis dinámico avanzado

6. Funcionalidad típica del malware

7. Técnicas anti ingeniería inversa

Page 29: Análisis de Malware - Universidad de Granada

29

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• El análisis estático básico nos permite saber qué funciones se importan, pero no si se usan ni como se usan.

• El análisis dinámico básico nos puede dar una visión a nivel de interfaz, pero se acaba ahí

Análisis estático avanzado

Page 30: Análisis de Malware - Universidad de Granada

30

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Niveles de abstracción en programación• Hardware (lógica digital)

• Microcódigo / Firmware 10101001…

• Código máquina (opcodes) 26h32h…

• Lenguajes de bajo nivel (ensamblador)

• Lenguajes de alto nivel (C, C++, …)

• Lenguajes interpretados (bytecode)

• ¿En qué nivel trabaja el analista de malware?

Análisis estático avanzado

Page 31: Análisis de Malware - Universidad de Granada

31

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• ¿En qué nivel trabaja el analista de malware?

Análisis estático avanzado

Page 32: Análisis de Malware - Universidad de Granada

32

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Arquitectura X86

Análisis estático avanzado

Page 33: Análisis de Malware - Universidad de Granada

33

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Instrucciones ASM

• Mnemonic

• Mnemonic [destination]

• Mnemonic [destination], [source]

• Mnemonic [destination], [source1], [source2]

Análisis estático avanzado

Page 34: Análisis de Malware - Universidad de Granada

34

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Disassembler

B9 42 00 00 00 mov ecx, 0x42

Análisis estático avanzado

Page 35: Análisis de Malware - Universidad de Granada

35

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Tipos de operando

• Inmediato: 0x42

• Registro: ecx

• Dirección de memoria: [ecx]

Análisis estático avanzado

Page 36: Análisis de Malware - Universidad de Granada

36

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Registros

Análisis estático avanzado

Page 37: Análisis de Malware - Universidad de Granada

37

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Registros

Análisis estático avanzado

Page 38: Análisis de Malware - Universidad de Granada

38

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• EFLAGS

Análisis estático avanzado

Page 39: Análisis de Malware - Universidad de Granada

39

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• EFLAGS

• ZF: Zero Flag

• CF: Carry Flag

• SF: Sign Flag

• TF: Trap Flag, Modo single step

Análisis estático avanzado

Page 40: Análisis de Malware - Universidad de Granada

40

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Instrucciones

Análisis estático avanzado

Page 41: Análisis de Malware - Universidad de Granada

41

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Instrucciones

• mov eax, ebx+8 lea eax, [ebx+8]

Análisis estático avanzado

Page 42: Análisis de Malware - Universidad de Granada

42

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Instrucciones

• mov eax, [ebx+8] eax = ?

• lea eax, [ebx+8] eax = ?

Análisis estático avanzado

Page 43: Análisis de Malware - Universidad de Granada

43

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Instrucciones

Análisis estático avanzado

Page 44: Análisis de Malware - Universidad de Granada

44

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• La pila

• ESP: Stack pointer (top)

• EBP: Base pointer, comienzo de parámetros de función y variables locales (suelen referenciarse con respecto a ebp)

• push, pop, pusha, popa, pushad, popad

• enter / leave

• call / ret

Análisis estático avanzado

Page 45: Análisis de Malware - Universidad de Granada

45

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• La pila: llamadas a funciones

Análisis estático avanzado

Page 46: Análisis de Malware - Universidad de Granada

46

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• La pila: llamadas a funciones• Prólogo

• En este momento tenemos…

• Epílogo

Análisis estático avanzado

Page 47: Análisis de Malware - Universidad de Granada

47

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• La pila: llamadas a funciones

Análisis estático avanzado

Page 48: Análisis de Malware - Universidad de Granada

48

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• La pila: llamadas a funciones

Análisis estático avanzado

b

a

return address esp

add: # prologopush ebp

eip

Page 49: Análisis de Malware - Universidad de Granada

49

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• La pila: llamadas a funciones

Análisis estático avanzado

b

a

return address

old ebp esp

add: # prologopush ebp eip

Page 50: Análisis de Malware - Universidad de Granada

50

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• La pila: llamadas a funciones

Análisis estático avanzado

b

a

return address

old ebp esp

add: # prologopush ebpmov ebp,esp eip

ebp

Page 51: Análisis de Malware - Universidad de Granada

51

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• La pila: llamadas a funciones

Análisis estático avanzado

b

a

return address

old ebp

esi

edi

ebxesp

add: # prologopush ebpmov ebp,esp

# guardamos registros # según cdecl

push esipush edipush ebx eip

ebp

Page 52: Análisis de Malware - Universidad de Granada

52

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• La pila: llamadas a funciones

Análisis estático avanzado

b

a

return address

old ebp

esi

edi

ebx

c esp

add: # prologopush ebpmov ebp,esp

# guardamos registros # según cdecl

push esipush edipush ebx

# hacer sitio para variable local c

sub esp,4 eip

ebp

Page 53: Análisis de Malware - Universidad de Granada

53

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• La pila: llamadas a funciones

Análisis estático avanzado

b

a

return address

old ebp

esi

edi

ebx

c esp

add: # prologopush ebpmov ebp,esp

# guardamos registros # según cdecl

push esipush edipush ebx

# hacer sitio para variable local c

sub esp,4# meto b en ebx

mov ebx, [ebp+12]add ebx, [ebp+8] eip

ebp

Page 54: Análisis de Malware - Universidad de Granada

54

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• La pila: llamadas a funciones

Análisis estático avanzado

b

a

return address

old ebp

esi

edi

ebx

c esp

add: # prologopush ebpmov ebp,esp

# guardamos registros # según cdecl

push esipush edipush ebx

# hacer sitio para variable local c

sub esp,4# meto b en ebx

mov ebx, [ebp+12]add ebx, [ebp+8]

# meto a+b en cmov [ebp-16], ebx eip

ebp

Page 55: Análisis de Malware - Universidad de Granada

55

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• La pila: llamadas a funciones

Análisis estático avanzado

b

a

return address

old ebp

esi

edi

ebx

c esp

add: # prologopush ebpmov ebp,esp

# guardamos registros # según cdecl

push esipush edipush ebx

# hacer sitio para variable local c

sub esp,4# meto b en ebx

mov ebx, [ebp+12]add ebx, [ebp+8]

# meto a+b en cmov [ebp-16], ebx

# meto c en eaxmov eax, [ebp-16] eip

ebp

Page 56: Análisis de Malware - Universidad de Granada

56

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• La pila: llamadas a funciones

Análisis estático avanzado

b

a

return address

old ebp

esi

edi

ebx

c

esp

# limpiar pilaadd esp, 4 eip

ebp

Page 57: Análisis de Malware - Universidad de Granada

57

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• La pila: llamadas a funciones

Análisis estático avanzado

b

a

return address

old ebp

esi

edi

ebx

c

esp

# limpiar pilaadd esp, 4pop ebx eip

ebp

Page 58: Análisis de Malware - Universidad de Granada

58

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• La pila: llamadas a funciones

Análisis estático avanzado

b

a

return address

old ebp

esi

edi

ebx

c

esp

# limpiar pilaadd esp, 4pop ebxpop edi eip

ebp

Page 59: Análisis de Malware - Universidad de Granada

59

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• La pila: llamadas a funciones

Análisis estático avanzado

b

a

return address

old ebp

esi

edi

ebx

c

esp

# limpiar pilaadd esp, 4pop ebxpop edipop esi eip

ebp

Page 60: Análisis de Malware - Universidad de Granada

60

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• La pila: llamadas a funciones

Análisis estático avanzado

b

a

return address

old ebp

esi

edi

ebx

c

esp

# limpiar pilaadd esp, 4pop ebxpop edipop esi

# epílogomov esp, ebp eipebp

Page 61: Análisis de Malware - Universidad de Granada

61

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• La pila: llamadas a funciones

Análisis estático avanzado

b

a

return address

old ebp

esi

edi

ebx

c

esp

# limpiar pilaadd esp, 4pop ebxpop edipop esi

# epílogomov esp, ebppop ebp eip

Page 62: Análisis de Malware - Universidad de Granada

62

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• La pila: llamadas a funciones

Análisis estático avanzado

b

a

return address

old ebp

esi

edi

ebx

c

esp

# limpiar pilaadd esp, 4pop ebxpop edipop esi

# epílogomov esp, ebppop ebpret eip

eip

Page 63: Análisis de Malware - Universidad de Granada

63

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• La pila: disposición

Análisis estático avanzado

Page 64: Análisis de Malware - Universidad de Granada

64

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Otras calling conventions• cdecl :

• Los argumentos se ponen en la pila de derecha a izquierda

• El caller limpia la pila

• El valor de retorno va en eax

• stdcall : propia de la API de Windows

• Idem pero el called limpia la pila

• Ms fastcall : depende del compilador

• Primeros dos argumentos en edx, ecx

• Resto en la pila de derecha a izqda.

Análisis estático avanzado

Page 65: Análisis de Malware - Universidad de Granada

65

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Comparaciones

• tst equivale a and

• cmp equivale a sub

• No alteran los operandos solo las flags

Análisis estático avanzado

Page 66: Análisis de Malware - Universidad de Granada

66

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Branching

• Incondicional jmp

• Condicional más de 30 tipos

Análisis estático avanzado

Page 67: Análisis de Malware - Universidad de Granada

67

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Instrucciones Rep

• movsX, cmpsX, stosX, scasX• X = (b)yte, (w)ord, (d)ouble Word

• esi source index (++)

• edi destination index (++)

• ecx counter (--)

Análisis estático avanzado

Depende de DF

Page 68: Análisis de Malware - Universidad de Granada

68

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Instrucciones Rep

Análisis estático avanzado

Page 69: Análisis de Malware - Universidad de Granada

69

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• El main en C

Análisis estático avanzado

Page 70: Análisis de Malware - Universidad de Granada

70

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Llamadas al sistema

• En Linux son usuales• eax = syscall number

• Args ebx, ecx, edx, esi, edi, ebp

• int 0x80

• http://syscalls.kernelgrok.com/

Análisis estático avanzado

Page 71: Análisis de Malware - Universidad de Granada

71

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Llamadas al sistema

• En Windows están “escondidas” bajo la API • syscall, sysenter, int 0x2e

• Para hacer ciertas cosas (rootkits) hay que programar en kernel mode (drivers) (acceso directo al hardware)

Análisis estático avanzado

Page 72: Análisis de Malware - Universidad de Granada

72

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Llamadas al sistema

Análisis estático avanzado

Page 73: Análisis de Malware - Universidad de Granada

73

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Llamadas al sistema

Análisis estático avanzado

Page 74: Análisis de Malware - Universidad de Granada

74

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Más información

Análisis estático avanzado

Page 75: Análisis de Malware - Universidad de Granada

75

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Análisis estático avanzado

Page 76: Análisis de Malware - Universidad de Granada

76

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• ¡Probemos! Práctica, 3.3

Análisis estático avanzado

Page 77: Análisis de Malware - Universidad de Granada

77

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• IDA Pro

• Estándar de facto

• Hay otras herramientas pero no tan buenas

• Es comercial (1500€ aprox)• Versión 7.0 free

Análisis estático avanzado: IDA Pro

Page 78: Análisis de Malware - Universidad de Granada

78

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• IDA Pro

• Descubre funciones

• Analiza la pila

• Identifica variables locales

• Fast Library Identification and Recognition Technology (FLIRT)

• Plugins

• Hex-Rays decompiler 2500€

• Zynamics BinDiff (free desde 2016)

Análisis estático avanzado: IDA Pro

Page 79: Análisis de Malware - Universidad de Granada

79

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Análisis estático avanzado: IDA Pro

Page 80: Análisis de Malware - Universidad de Granada

80

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Análisis estático avanzado: IDA Pro

Page 81: Análisis de Malware - Universidad de Granada

81

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Análisis estático avanzado: IDA Pro

Page 82: Análisis de Malware - Universidad de Granada

82

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Navegando por el código

• Links• Sub links comienzo de funciones

• Loc links destino de saltos.

• Offset links posiciones de memoria

• Cross references• CODE XREF

• DATA XREF

• Botones de History Adelante / Atrás

Análisis estático avanzado: IDA Pro

Page 83: Análisis de Malware - Universidad de Granada

83

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Navegando por el código

• Jump • to address

• to file offset

• Searching

Análisis estático avanzado: IDA Pro

Page 84: Análisis de Malware - Universidad de Granada

84

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Análisis de funciones

• IDA Pro es capaz de reconocer funciones, etiquetarlas y deducir

• parámetros (prefijo arg_)

• y variables locales (prefijo var_)

• Permite un mayor nivel de abstracción

• A veces puede omitir funciones

• Podemos especificarlas a mano

Análisis estático avanzado: IDA Pro

Page 85: Análisis de Malware - Universidad de Granada

85

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Gráficos útiles

• Xrefs to: different paths that a program can take to reach a particular function.

• Xrefs from: This view can quickly tell you what a function does and what the functions do underneath it. This is the easiest way to get a quick overview of the function.

Análisis estático avanzado: IDA Pro

Page 86: Análisis de Malware - Universidad de Granada

86

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Mejorando el resultado

• Podemos:• Renombrar funciones / locations

• Poner comentarios• : un comentario• ; un comentario que se repite en

cada xref

• Cambiar el tipo de una referencia (dec/hex/bin…)

Análisis estático avanzado: IDA Pro

Page 87: Análisis de Malware - Universidad de Granada

87

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Mejorando el resultado

• A veces el analizador puede equivocarse…

Análisis estático avanzado: IDA Pro

Page 88: Análisis de Malware - Universidad de Granada

88

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Mejorando el resultado

• Constantes• ¿Cómo tratamos un #DEFINE ?

• IDA Pro trae un catálogo de los usuales en la librería estándar de C y en el SDK de Windows (Type libraries subview)

Análisis estático avanzado: IDA Pro

Page 89: Análisis de Malware - Universidad de Granada

89

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Scripting

• IDC

• IDAPython

Análisis estático avanzado: IDA Pro

Page 90: Análisis de Malware - Universidad de Granada

90

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• ¡Probemos! Práctica, 3.4

Análisis estático avanzado: IDA Pro

Page 91: Análisis de Malware - Universidad de Granada

91

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Índice

1. Introducción e historia

2. Análisis estático básico

3. Análisis dinámico básico

4. Análisis estático avanzado

5. Análisis dinámico avanzado

6. Funcionalidad típica del malware

7. Técnicas anti ingeniería inversa

Page 92: Análisis de Malware - Universidad de Granada

92

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Análisis dinámico avanzado

• Debugger: • Insight

• Measure and control the internal state

• Dynamic view

• GDB, WinDBG, OllyDbg, IDA Pro…

Page 93: Análisis de Malware - Universidad de Granada

93

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Análisis dinámico avanzado

• Debugger de código Vs Debugger ASM

• Visual Studio GDB

• Kernel Debugging Vs User-Mode Debugging• Para debuggear el kernel necesitas

dos máquinas

• Considerablemente más complejo

• Necesitas WinDBG

Page 94: Análisis de Malware - Universidad de Granada

94

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Análisis dinámico avanzado

• Conceptos básicos

• Debug desde el principio Vs Attach

• Single step

• Step over Vs Step into

• Step out

• Modificar valores

• Breakpoint

• Software• Conditional

• Hardware

Page 95: Análisis de Malware - Universidad de Granada

95

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Análisis dinámico avanzado

Page 96: Análisis de Malware - Universidad de Granada

96

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Análisis dinámico avanzado

• Excepciones

• Los breakpoints generan excepciones y el control se pasa al debugger

• También los errores como

• memory-access violation

• division by zero

• …

Page 97: Análisis de Malware - Universidad de Granada

97

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Análisis dinámico avanzado

• Excepciones

Page 98: Análisis de Malware - Universidad de Granada

98

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Análisis dinámico avanzado

• Excepciones

• Excepciones comunes

• INT 3

Page 99: Análisis de Malware - Universidad de Granada

99

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Análisis dinámico avanzado: OllyDbg

• OllyDbg

• Free

• Easy

• Plugins

Page 100: Análisis de Malware - Universidad de Granada

100

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Análisis dinámico avanzado: OllyDbg

• Cargando malware

• File Open• Permite añadir parámetros

• Por defecto para en el Entry Point• 2.0 Puede configurarse para que pare

en el TLS Callback

• File Attach• Puede que te pares en medio de una

DDL de Windows

Page 101: Análisis de Malware - Universidad de Granada

101

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Análisis dinámico avanzado: OllyDbg

• Interfaz1 2

4 3

Page 102: Análisis de Malware - Universidad de Granada

102

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Análisis dinámico avanzado: OllyDbg

• Interfaz

• View Memory map

Page 103: Análisis de Malware - Universidad de Granada

103

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Análisis dinámico avanzado: OllyDbg

• Re – Basing

• Módulos se cargan en la dirección especificada en Image Base del PE Header

• Los ejecutables • Normalmente 0x00400000

• Las DLLs• Normalmente 0x10000000

Page 104: Análisis de Malware - Universidad de Granada

104

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Análisis dinámico avanzado: OllyDbg

• Re – Basing

• ¿Qué pasa si dos DLLs tienen la misma base address?

• Sección .reloc

• No es eficiente

• Las DLLs de Windows vienen preparadas con distintos base address

• Cuidado si estamos a la vez con el dissasembler

Page 105: Análisis de Malware - Universidad de Granada

105

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Análisis dinámico avanzado: OllyDbg

• Interfaz

• View Threads

• Cuando pausas, pausas todo

Page 106: Análisis de Malware - Universidad de Granada

106

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Análisis dinámico avanzado: OllyDbg

• Interfaz

Page 107: Análisis de Malware - Universidad de Granada

107

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Análisis dinámico avanzado: OllyDbg

• Interfaz

• View Breakpoints

• Software, Conditional

Page 108: Análisis de Malware - Universidad de Granada

108

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Análisis dinámico avanzado: OllyDbg

• Interfaz

• Debug Hardware Breakpoints

• Hardware

Page 109: Análisis de Malware - Universidad de Granada

109

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Análisis dinámico avanzado: OllyDbg

• Carga de DLLs

• Ejecutable dummy que llama a DllMain y pausa

• Debug Call DLL Exports

Page 110: Análisis de Malware - Universidad de Granada

110

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Análisis dinámico avanzado: OllyDbg

• Carga de DLLs

Page 111: Análisis de Malware - Universidad de Granada

111

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Análisis dinámico avanzado: OllyDbg

• Carga de DLLs

Page 112: Análisis de Malware - Universidad de Granada

112

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Análisis dinámico avanzado: OllyDbg

• Tracing• Standard Back Trace

• Navegamos lo que hemos hecho con + / -

• No muestra cambios en los registros

• View Call Stack

• Muestra la pila de la función actual (como un backtrace)

Page 113: Análisis de Malware - Universidad de Granada

113

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Análisis dinámico avanzado: OllyDbg

• Tracing• Run Trace

• Graba lo que se hace con cambios en los registros y flags incluidos

• Hay que seleccionar el trozo de código que queremos tracear

• También podemos usar Trace Into y Trace Over

• Trazan hasta encontrar un breakpoint

• Debug Set condition

• Permite trazar hasta que se cumple una condición

Page 114: Análisis de Malware - Universidad de Granada

114

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Análisis dinámico avanzado: OllyDbg

• Tracing• Run Trace

• Podemos revisar con View Run Trace

• Recorremos con +/-

Page 115: Análisis de Malware - Universidad de Granada

115

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Análisis dinámico avanzado: OllyDbg

• Exception Handling

Page 116: Análisis de Malware - Universidad de Granada

116

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Análisis dinámico avanzado: OllyDbg

• Patching

• Binary Edit

• Binary Fill with NOPs

• Aplicar en disco

• Copy to executable

Page 117: Análisis de Malware - Universidad de Granada

117

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Análisis dinámico avanzado: OllyDbg

• Analizando Shellcode

• Copio shellcode en hex

• En memory map, selecciono una zona de tipo Priv y la marco como RWX (Full Access)

• Abro el dump y vuelco la shellcode (Binary Binary Paste)

• Muestro la zona en ventana de desensamblado (Go to dirección)

• Modifico EIP (new origin here)

Page 118: Análisis de Malware - Universidad de Granada

118

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Análisis dinámico avanzado: OllyDbg

• Other features

• Find References to Selected Command

• View Watches

• Right Click + Label

• Plugins• OllyDump

• Hide Debugger

• Command Line

• Bookmarks

Page 119: Análisis de Malware - Universidad de Granada

119

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Análisis dinámico avanzado: OllyDbg

• Scripting• Hay que utilizar ImmDbg que da soporte a

Python

• PyCommands

Page 120: Análisis de Malware - Universidad de Granada

120

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Kernel Debugging? WinDBG• Setup del entorno complejo

• VMWare• Habilitar debug por puerto serie

• Es complejo

• Hay que saber programar drivers

• El malware de kernel para x64 es prácticamente inexistente• Firma de drivers• PatchGuard

Análisis dinámico avanzado

Page 121: Análisis de Malware - Universidad de Granada

121

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• ¡Probemos! Práctica, 3.5

Análisis dinámico avanzado

Page 122: Análisis de Malware - Universidad de Granada

122

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Índice

1. Introducción e historia

2. Análisis estático básico

3. Análisis dinámico básico

4. Análisis estático avanzado

5. Análisis dinámico avanzado

6. Funcionalidad típica del malware

7. Técnicas anti ingeniería inversa

Page 123: Análisis de Malware - Universidad de Granada

123

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Backdoors• Netcat Reverse Shell

• Windows Reverse Shell

• CreateProcess + CreatePipe

• RATs

• Botnets

Funcionalidad típica del Malware

Page 124: Análisis de Malware - Universidad de Granada

124

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Robo de credenciales• GINA (Graphical Identification and

Authentication)• HKLM\SOFTWARE\Microsoft\Windows

NT\CurrentVersion\Winlogon\GinaDLL• DLL que implementa funciones Wlx.*

• Hash Dumping / Mimikatz• DLL injection en lsass.exe• NlpGetPrimaryCredential,

Funcionalidad típica del Malware

Page 125: Análisis de Malware - Universidad de Granada

125

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Robo de credenciales• Keyloggers

• Hooking• SetWindowsHookEx

• Polling

Funcionalidad típica del Malware

Page 126: Análisis de Malware - Universidad de Granada

126

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Mantener la persistencia• Windows Registry

• Hay muchas! (Autoruns by Sysinternals)• AppInit_DLLs

• HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows

• Winlogon Notify• HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\

Windows NT\CurrentVersion\Winlogon\

• SvcHost DLLs• HKEY_LOCAL_MACHINE\System\CurrentControlSet\

Services\ServiceName

Funcionalidad típica del Malware

Page 127: Análisis de Malware - Universidad de Granada

127

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Mantener la persistencia• Troyanizar binarios del sistema

• DLL Hijacking• Directorio de la app

• Directorio de ejecución

• Directorio del sistema (Windows/System32)

• Directorio del sistema 16 bits (Windows/System)

• Directorio de Windows (Windows/)

• Directorios del PATH

• Entrada KnownDLLs del registro fuerza System32

Funcionalidad típica del Malware

Page 128: Análisis de Malware - Universidad de Granada

128

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Escalar a privilegios de admin• No suele ser necesario

• Explotar DLL Hijack en servicios

• Exploits variados

• Escalar a privilegios de system• Necesario para llamar a CreateRemoteThread

• SeDebugPrivilege

Funcionalidad típica del Malware

Page 129: Análisis de Malware - Universidad de Granada

129

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Ocultación (rootkits)• Kernel space

• SSDT Hooking

• IRP Hooking

Funcionalidad típica del Malware

Page 130: Análisis de Malware - Universidad de Granada

130

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Ocultación (rootkits)• User space

• IAT Hooking

• Inline Hooking• Modifico la función en memoria e inserto un jmp

Funcionalidad típica del Malware

Page 131: Análisis de Malware - Universidad de Granada

131

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Inyección de procesos• DLL Injection

Funcionalidad típica del Malware

Page 132: Análisis de Malware - Universidad de Granada

132

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Inyección de procesos

• Direct Injection

• En lugar de inyectar llamada a carga de DLL, inyectamos código directamente (normalmente shellcode).

Funcionalidad típica del Malware

Page 133: Análisis de Malware - Universidad de Granada

133

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Process Replacement / Hollowing

• Lanzo un proceso confiable en estado suspendido

• Reemplazo su memoria por la de otro malo

Funcionalidad típica del Malware

Page 134: Análisis de Malware - Universidad de Granada

134

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Hook injection• SetWindowsHookEx

Funcionalidad típica del Malware

HHOOK WINAPI SetWindowsHookEx(_In_ int       idHook,

_In_ HOOKPROC  lpfn, _In_ HINSTANCE hMod, _In_ DWORD

    dwThreadId );

Page 135: Análisis de Malware - Universidad de Granada

135

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Hook injection• Local hooks

• Mensajes destinados a mi proceso

• Remote hooks• Mensajes destinados a otro proceso

• High-Level: (e.g. WH_KEYBOARD)• El hook es una función exportada

de una DLL• El OS mapea en el espacio del

proceso hookeado• Low-Level: (e.g. WH_KEYBOARD_LL)

• La función está en el proceso que instala el hook

Funcionalidad típica del Malware

Page 136: Análisis de Malware - Universidad de Granada

136

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Hook injection• Thread Targeting

• Salvo que seas un logger con correr en una hebra tienes

• Para DLL injection se coloca un hook en un proceso benigno para que arranque al recibir un mensaje poco común (e.g. WH_CBT)

Funcionalidad típica del Malware

Page 137: Análisis de Malware - Universidad de Granada

137

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Detours• Librería de Microsoft

• Permite• Modificar estructura PE en disco para

que cargue más librerías• Crea una nueva sección .detour• Con setdll

• Programar hooks de manera muy sencilla

• Otras librerías comunes

• EasyHook

• Deviare

Funcionalidad típica del Malware

Page 138: Análisis de Malware - Universidad de Granada

138

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Detours• API hookingtradicional

Funcionalidad típica del Malware

Page 139: Análisis de Malware - Universidad de Granada

139

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• Detours• API hookingcon Detours

Funcionalidad típica del Malware

Page 140: Análisis de Malware - Universidad de Granada

140

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• APC Injection• Asynchroneus Procedure Call

• Cada hebra posee una cola de funciones que se llaman cuando está esperando.

• En lugar de crear una nueva hebra ponemos el código malicioso como un APC

• Se puede hacer desde

• User Space• DWORD WINAPI QueueUserAPC(

_In_ PAPCFUNC  pfnAPC, _In_ HANDLE    hThread, _In_ ULONG_PTR dwData );

• Kernel Space• KeInitializeApc / KeInsertQueueApc• Permite ejecutar código de usuario fácilmente estando

en kernel

Funcionalidad típica del Malware

Page 141: Análisis de Malware - Universidad de Granada

141

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

• ¿Y en Unix?• Aplica básicamente todo de manera muy similar

• Obviamente no hay PE en Linux sino ELF

• Persistencia en scripts de arranque (init.d, .bashrc, …)

• Inyección de código de usuario

• LD_PRELOAD

• ptrace

• gdb

• Inyección de código kernel

• Cargando un módulo• Buscarla sys_call_table• Reemplazar entrada

Funcionalidad típica del Malware

Page 142: Análisis de Malware - Universidad de Granada

142

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Índice

1. Introducción e historia

2. Análisis estático básico

3. Análisis dinámico básico

4. Análisis estático avanzado

5. Análisis dinámico avanzado

6. Funcionalidad típica del malware

7. Técnicas anti ingeniería inversa

Page 143: Análisis de Malware - Universidad de Granada

143

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Técnicas Anti Ingeniería Inversa

• Anti Disassembly

• Problemas del desensamblado lineal

Page 144: Análisis de Malware - Universidad de Granada

144

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Técnicas Anti Ingeniería Inversa

• Anti Disassembly

• Problemas del desensamblado orientado a flujo

Page 145: Análisis de Malware - Universidad de Granada

145

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Técnicas Anti Ingeniería Inversa

• Anti Disassembly

• jz/jnz

Page 146: Análisis de Malware - Universidad de Granada

146

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Técnicas Anti Ingeniería Inversa

• Anti Disassembly

• jz incondicional

Page 147: Análisis de Malware - Universidad de Granada

147

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Técnicas Anti Ingeniería Inversa

• Anti Disassembly

• Desensamblado ambiguo

Page 148: Análisis de Malware - Universidad de Granada

148

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Técnicas Anti Ingeniería Inversa

• Anti Disassembly

• Punteros a funciones

• IDA no los puede interpretar como funciones

• Perdemos información (Xrefs)

• Se podrían añadir a mano• AddCodeXref(0x004011DE, 0x004011C0, fl_CF);

Page 149: Análisis de Malware - Universidad de Granada

149

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Técnicas Anti Ingeniería Inversa

• Anti Disassembly

• call2ret

Page 150: Análisis de Malware - Universidad de Granada

150

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Técnicas Anti Ingeniería Inversa

• Anti Debugging• Detección de debugger

• Usando la API de Windows

• IsDebuggerPresent

• CheckRemoteDebuggerPresent

• NtQueryInformationProcess

• OutputDebugString

Page 151: Análisis de Malware - Universidad de Granada

151

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Técnicas Anti Ingeniería Inversa

• Anti Debugging• Detección de debugger

• A mano

• PEB BeingDebugged Flag

Page 152: Análisis de Malware - Universidad de Granada

152

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Técnicas Anti Ingeniería Inversa

• Anti Debugging• Detección de debugger

• A mano

• PEB ProcessHeap Flag

Page 153: Análisis de Malware - Universidad de Granada

153

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Técnicas Anti Ingeniería Inversa

• Anti Debugging• Detección de debugger

• A mano

• PEB NTGlobalFlag• Offset 0x68

• Si vale 0x70 estás siendo debuggeado

Page 154: Análisis de Malware - Universidad de Granada

154

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Técnicas Anti Ingeniería Inversa

• Anti Debugging• Detección de debugger

• Side effects

• Buscar ventanas

• Ficheros en el sistema

• Entradas en el registro• HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\

Windows NT\CurrentVersion\AeDebug• Si tu entrada no es DrWatson no eres un usuario

normal

Page 155: Análisis de Malware - Universidad de Granada

155

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Técnicas Anti Ingeniería Inversa

• Anti Debugging• Detección de debugger

• En tiempo de ejecución

• Exceptions que no llegan

• Buscar INT 3 (0xcc)

• Checksums

• Timing checks• Timestamps• Ticks count (rdtsc)• Windows API

• QueryPerformanceCounter y GetTickCount

Page 156: Análisis de Malware - Universidad de Granada

156

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Técnicas Anti Ingeniería Inversa

• Anti Debugging• Dificultar debugging

• TLS Callbacks

• Meter INT 3 por doquier (0xCC)

• 2-byte INT 3 attack (0xCD03) • Hace que WinDBG ejecute un flujo diferente

• Otras instrucciones con las que los debuggers tinene problemas:

• Kernel breakpoint INT 2D

• ICE breakpoint icebp (0xF1)

Page 157: Análisis de Malware - Universidad de Granada

157

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Técnicas Anti Ingeniería Inversa

• Anti Debugging• Dificultar debugging

• Vulnerabilidades del debugger

• Cabeceras PE mal formadas

• Vulnerabilidad OutputDebugString Olly 1.10• OutputDebugString ("%s%s%s%s%s%s%s%s%s%s%s%s%s%s")

Page 158: Análisis de Malware - Universidad de Granada

158

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

Técnicas Anti Ingeniería Inversa

• Anti Debugging• Detección de VM

• Procesos

• Nombre de los discos

• Servicios

• La MAC

• Búsqueda de cadenas en memoria

• VMware I/O communication port

• Red Pill / No pill (sidt, sgdt, sldt, smsw, cpuid)

• Vulnerabilidades de VM (escapar a la VM)

Page 159: Análisis de Malware - Universidad de Granada

159

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017

¡Gracias por atenderme!

Page 160: Análisis de Malware - Universidad de Granada

160

Mást

er

en

Cib

ers

egu

ridad

du

lo:

No

mb

re d

el m

ód

ulo

de

la A

sig

nat

ura

UC

yS-U

GR

2

016/

2017