Presentación de PowerPoint

Transcripción

Presentación de PowerPoint
Ingeniería Inversa (II)
Rubén Molina
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 antidebugging (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)
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
Herramientas para
el análisis estático
Reflectores, Descompiladores,
Desensambladores y Vodka
RDG Simple Crackme .NET
http://crackmes.de/users/rdgmax/rdg_simple_crackme_.net/
ILSpy 2.3.0.1827
RDG Simple Crackme .NET v5
http://crackmes.de/users/rdgmax/crackme_rdg_simple_crackme_.net_v5_2015/
No tan simple ;)
No tan simple ;)
O si?
BONUS: Así se veía antes :D
Para tener en cuenta
• http://de4dot.com/
• http://www.red-gate.com/products/dotnetdevelopment/reflector/
– Recompilar? Cambiar de lenguaje? Modificar
directamente el binario?
rantasipi's Little Headache
http://crackmes.de/users/rantasipi/little_headache/
vb Decompiler Pro 9.8
vb Decompiler Pro 9.8
BONUS: Removiendo la ofuscación ;)
https://repl.it/languages/Python3
vb Decompiler Lite 10.0
Crack Auth
http://crackmes.de/users/volty/voltys_delphi_crackme_1/
IDR: Interactive Delphi Reconstructor
“@UStrEqual”… Muy fácil?
Uno más?
https://forum.tuts4you.com/topic/32862-crackme-rdg-simple-crackme-delphi/
Y en IDA?
Esto era un @UStrCat 
Esto era un @UStrEqual
Herramientas para
el análisis dinámico
Depuradores y café
Donde puedo encontrar más?
• http://tuts4you.com/
• http://crackmes.de/
http://ricardonarvaja.info/WEB/
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!
Donde puedo aprender más?
Donde puedo aprender más?
Donde puedo aprender más?
Donde puedo aprender más?
Taller
• Retos libres
– Crackmes.de → Advanced Search → Difficulty >= 2
• Reto especial:
– “secret” → :)
– Como se genera?