Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa...

48
Ingeniería Inversa (II) Rubén Molina

Transcript of Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa...

Page 1: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios

Ingeniería Inversa (II)

Rubén Molina

Page 2: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios
Page 3: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios
Page 4: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios

Estrategias

• Análisis estático – Permite analizar binarios

de plataformas y arquitecturas que no poseo

– (Casi) no hay que preocuparse por código malicioso

– No hay que preocuparse por métodos anti-debugging (pero si por packers/crypters)

• Análisis dinámico – Requiere ejecución! (o

una muy ingeniosa emulación)

– Acceso directo a parámetros y retornos de funciones (oh si!)

– Infinidad de estrategias anti-debugging (oh no!)

– Generalmente no es sensible a packers (pero si a crypters)

Page 5: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios

Estrategias

• Análisis estático

– Tiene fama de ser mas difícil pero es sólo fama

– El método favorito para “análistas”: malware, firmware…

• Análisis dinámico

– El método favorito para crackers y exploiters?

– Muchas más cosas para aprender

Típicamente se usan las dos cosas

Page 6: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios

Herramientas para el análisis estático

Reflectores, Descompiladores, Desensambladores y Vodka

Page 7: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios

RDG Simple Crackme .NET

http://crackmes.de/users/rdgmax/rdg_simple_crackme_.net/

Page 8: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios

ILSpy 2.3.0.1827

Page 9: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios
Page 10: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios

RDG Simple Crackme .NET v5

http://crackmes.de/users/rdgmax/crackme_rdg_simple_crackme_.net_v5_2015/

Page 11: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios

No tan simple ;)

Page 12: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios

No tan simple ;)

Page 13: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios

O si?

Page 14: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios

BONUS: Así se veía antes :D

Page 16: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios

rantasipi's Little Headache

http://crackmes.de/users/rantasipi/little_headache/

Page 17: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios

vb Decompiler Pro 9.8

Page 18: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios
Page 19: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios

vb Decompiler Pro 9.8

Page 20: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios
Page 21: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios

BONUS: Removiendo la ofuscación ;)

https://repl.it/languages/Python3

Page 22: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios

vb Decompiler Lite 10.0

Page 23: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios
Page 24: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios

Crack Auth

http://crackmes.de/users/volty/voltys_delphi_crackme_1/

Page 25: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios

IDR: Interactive Delphi Reconstructor

Page 26: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios
Page 27: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios

“@UStrEqual”… Muy fácil?

Page 28: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios
Page 29: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios
Page 30: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios

https://forum.tuts4you.com/topic/32862-crackme-rdg-simple-crackme-delphi/

Uno más?

Page 31: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios

Y en IDA?

Esto era un @UStrCat

Page 32: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios
Page 33: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios
Page 34: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios

Esto era un @UStrEqual

Page 35: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios

Herramientas para el análisis dinámico

Depuradores y café

Page 36: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios
Page 37: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios
Page 38: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios
Page 39: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios
Page 40: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios
Page 41: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios
Page 42: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios

Donde puedo encontrar más?

• http://tuts4you.com/

• http://crackmes.de/

http://ricardonarvaja.info/WEB/

Page 43: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios

Estrategia general

• Identificar el binario: Plataforma? Arquitectura? Compilador? Símbolos?

• Probar múltiples herramientas de análisis: Algunas pueden tener mejores firmas, otras mejores estrategias de visualización, otras mejor identificación de tipado.

• Automatizar! Siempre!

• Reversar el mínimo de código: Descompiladores totales o parciales, Visualización, Instinto, etc!

Page 44: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios

Donde puedo aprender más?

Page 45: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios

Donde puedo aprender más?

Page 46: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios

Donde puedo aprender más?

Page 47: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios

Donde puedo aprender más?

Page 48: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios

Taller

• Retos libres

– Crackmes.de → Advanced Search → Difficulty >= 2

• Reto especial:

– “secret” → :)

– Como se genera?