Análisis de Malware - Universidad de Granada

Preview:

Citation preview

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

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

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

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

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

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

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

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

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

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

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

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

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

… …

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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…

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

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

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

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

• …

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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)

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

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 +/-

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

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

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)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 );

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

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

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

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

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

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

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

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

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

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

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

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

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

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);

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

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

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

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

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

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

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

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)

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")

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)

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!

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

Recommended