SlideShare ist ein Scribd-Unternehmen logo
1 von 42
el mayor evento de In-seguridad
Informática de Ecuador
Un evento gratuito,
netamente técnico y con
ponencias ecuatorianas
Ricardo Gómez Peralta
Aquí va el nombre del expositor
         Investigador independienteCargo
Ricardo Gómez
Las entrañas del malware
Trucos anti análisis usados en malware bajo plataformas MS
Windows.
¿Qué es malware?

   Malware es un programa que contiene código
   malicioso.
   Un malware es un virus, un worm, una botnet ...
Evolución del malware

  2001 Virus Anna Kournikova

        “Here you are ;-),” “here you have ;o)” and here
                       you go ;-)”

         Cuerpo del mensaje: "Hi, check this!”

               Annakournikova.jpg.vbs
Evolución del malware

  2004 Mydoom, Netsky, Sasser, Bagger.

  2005 Redes de bots para obtener dinero.

  TROYANOS BANCARIOS.
Evolución del malware

  Malware bajo pedido.
  Espionaje industrial y ciber-guerra.


   TDL4 (2008) (indestructible).
   Stuxnet (junio 2010).
   Flame (mayo 2012).
   Medre (junio 2012).
Análisis de malware

  Análisis de código (estático).


  Análisis de comportamiento (dinámico).


  Objetivo de ambos: Explicar cómo funciona el
  malware.
Análisis de malware

  Análisis de código (estático).


  Obtener información del malware mirando el archivo
  (sin ejecución).
Análisis de malware

  Análisis de comportamiento (dinámico).


  Obtener información del malware mediante la
  ejecución del mismo.
¿Qué dificulta el análisis?

   Anti-desensamblado

   Anti-depuración

   Anti-VM

   Packers
Anti-desensamblado

  Código insertado manualmente con la finalidad de
  provocar un listado incorrecto en las herramientas de
  desensamblado.
Anti-desensamblado
Anti desemsamblado
Ofuscación
  ¿Qué es código ofuscado?
  Alterar la estructura del código original manteniendo
  su funcionalidad original.

  Objetivos:
  Retrasar el análisis de ingeniería inversa.
  Burlar o confundir los motores antivirus y que no
  detecten el código malicioso.

  ¿Fácil o difícil?
Anti desemsamblado
Ofuscación
  Inserción de código basura
Anti desemsamblado
Ofuscación
  Sustitución de instrucciones
Anti desemsamblado
Ofuscación
  Cambiar el flujo de ejecución
Anti desemsamblado
Ofuscación
  Código oculto mediante manejo adecuado de los
  opcodes
Demo time
Anti-depuración
Anti-debugging
Anti-debugging



   Muy popular entre creadores de malware usada para
   reconocer cuando la muestra está bajo el control de
   un depurador.
Anti-debugging


  APIs
    IsDebbugerPresent
    CheckRemoteDebuggerPresent
    NtQueryInformationProcess
    OutputDebugString
  Chequeo manual de estructuras
    Chequeo del PEB
    Chequeo del ProcessHeap
    Chequeo de NtGlobalFlag
Anti-debugging


  Identificación del comportamiento del depurador
     Comprobaciónes de integridad (checksum)
     Chequeos de tiempo de ejecución.
  Interferir con la funcionalidad del debugger
     Explotar vulnerabilidades del depurador
Algunos conceptos


  PEB  Estructura de datos que contiene una gran
  cantidad de información sobre el proceso.
  HEAP  Forma de manejo de memoria de la cual
  puede hacer uso una aplicación cuando necesita
  reservar y liberar memoria dinámicamente.
  HANDLE  Manejador.
Anti-debugging
APIs
  IsDebuggerPresent

   El más básico (y obvio).

   El booleano PEB.BeingDebugged se activa si hay
    un depurador presente.

   FS[0x30] apunta al PEB.

   La API kernel32 !IsDebuggerPresent() revisa este
    flag
Anti-debugging
APIs

  CheckRemoteDebuggerPresent

   Identica a IsDebuggerPresent.

   Busca en un proceso remoto NO máquina remota.
Anti-debugging
APIs
  NtQueryInformationProcess

   API nativa.

   Devuelve información de un determinado proceso.

   Parámetros:
  1 HANDLE ProcessHandle,
  2 PROCESSINFOCLASS ProcessInformationClass,
  3 PVOID ProcessInformation,
    ULONG ProcessInformationLength,
    PULONG ReturnLength
Anti-debugging
APIs
       Depurado        No depurado
       0xFFFFFFFF (-1) 0x0 (0)



                            3
                2

                    1



          1
          2
                        3
Anti-debugging
APIs
   OutputDebugString

   Envía una cadena al depurador para que la muestre.

      Depurado             No depurado
      OutputDebugString    El depurador de
      no hace nada.        sistema llama
                           internamente la
                           función DbgPrint
                           para mostrar la
                           string.
Anti-debugging
APIs
Anti-debugging
Chequeo manual de estructuras
   Byte IsBeingDebugged en el PEB (FS:[30]+2).

   Chequeo del ProcessHeap (localizado en 0x18 en
    la estructura PEB).
      Bytes Flag y ForceFlag.
              NT, 2000,    Vista y
                                         XP     Vista y W7
   Campo         XP          W7
                                      (64 bits)  (64 bits)
              (32 bits)   (32 bits)
  Flag          0x0C       0x40        0x14       0x70
  ForceFlag     0x10       0x44        0x18       0x74
Anti-debugging
Chequeo de NtGlobalFlag

   Un programa ejecutado en un depurador se
    comporta ligeramente diferente.

   Se crean heaps de memoria diferentes.

   PEB en el offset 0x68 (no documentada. Si es igual
    0x70, está siendo depurado.
Anti-debugging
Comportamiento del depurador

   Comprobaciónes de integridad (checksum)
    Calcular la integridad de una sección de su código.

   Chequeos de tiempo de ejecución
      RTDSC
      QueryPerformanceCounter y GetTickCount
Anti-debugging
Comportamiento del depurador
Demo time
Explotar vulnerabilidades
del depurador
   Aprovechando la cabecera PE:
   IMAGE_OPTIONAL_HEADER
Explotar vulnerabilidades
del depurador
Explotar vulnerabilidades
del depurador
   SizeOfRawData de las cabeceras de las secciones
   modificado.
Explotar vulnerabilidades
del depurador
Conclusión:

    Saber las técnicas es útil para el analista.


    Existen plugins, pero para realizar tools se necesita
     saber como operan.


    El conocimiento permite adaptarse a nuevos
     métodos.
¿Preguntas?

       Gracias
       @RicardoGomez94

Weitere ähnliche Inhalte

Ähnlich wie Las entrañas del malware

Taller de programación clase #2
Taller de programación   clase #2Taller de programación   clase #2
Taller de programación clase #2Carlos Posada
 
Taller de programación clase #2
Taller de programación   clase #2Taller de programación   clase #2
Taller de programación clase #2Juan Cardona
 
Laboratorio de Análisis de Malware [GuadalajaraCON 2012]
Laboratorio de Análisis de Malware [GuadalajaraCON 2012]Laboratorio de Análisis de Malware [GuadalajaraCON 2012]
Laboratorio de Análisis de Malware [GuadalajaraCON 2012]Websec México, S.C.
 
Clase 05b pruebas introduccion
Clase 05b pruebas introduccionClase 05b pruebas introduccion
Clase 05b pruebas introduccionDemián Gutierrez
 
rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...
rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...
rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...RootedCON
 
Alberto García de Dios - Virus, el arte no debería ser negocio [Rooted CON 2011]
Alberto García de Dios - Virus, el arte no debería ser negocio [Rooted CON 2011]Alberto García de Dios - Virus, el arte no debería ser negocio [Rooted CON 2011]
Alberto García de Dios - Virus, el arte no debería ser negocio [Rooted CON 2011]RootedCON
 
Depuración Avanzada Con Win Dbg Y Vs 2010 (Basica)
Depuración Avanzada Con Win Dbg Y Vs 2010 (Basica)Depuración Avanzada Con Win Dbg Y Vs 2010 (Basica)
Depuración Avanzada Con Win Dbg Y Vs 2010 (Basica)Pablo Alvarez Doval
 
Prueba disgnostica sexto y septimo
Prueba disgnostica sexto y septimoPrueba disgnostica sexto y septimo
Prueba disgnostica sexto y septimoIndependiente
 
¿Cómo detectar ataques de red utilizando Snort? | CISObeat
¿Cómo detectar ataques de red utilizando Snort? | CISObeat¿Cómo detectar ataques de red utilizando Snort? | CISObeat
¿Cómo detectar ataques de red utilizando Snort? | CISObeatCISObeat
 
Webinar CISOBeat - Detectar Ataques de Red Utilizando SNORT
Webinar CISOBeat - Detectar Ataques de Red Utilizando SNORTWebinar CISOBeat - Detectar Ataques de Red Utilizando SNORT
Webinar CISOBeat - Detectar Ataques de Red Utilizando SNORTJose Gonzales
 
Introducción a JAVA.
Introducción a JAVA.Introducción a JAVA.
Introducción a JAVA.guestdf1874
 
H-Con 2018: Hacking con Python
H-Con 2018: Hacking con PythonH-Con 2018: Hacking con Python
H-Con 2018: Hacking con PythonDani Adastra
 
ShellCon 2018: Hacking con Python
ShellCon 2018: Hacking con PythonShellCon 2018: Hacking con Python
ShellCon 2018: Hacking con PythonDani Adastra
 
Java janner
Java   jannerJava   janner
Java jannersena
 
Desarrollo a aplicaciones . net (1)
Desarrollo a aplicaciones . net (1)Desarrollo a aplicaciones . net (1)
Desarrollo a aplicaciones . net (1)jenny21071
 
Reglas de Oro para el Desarrollo con Windows Vista
Reglas de Oro para el Desarrollo con Windows VistaReglas de Oro para el Desarrollo con Windows Vista
Reglas de Oro para el Desarrollo con Windows Vistajuliocasal
 

Ähnlich wie Las entrañas del malware (20)

Taller de programación clase #2
Taller de programación   clase #2Taller de programación   clase #2
Taller de programación clase #2
 
Taller de programación clase #2
Taller de programación   clase #2Taller de programación   clase #2
Taller de programación clase #2
 
test uf0853.pdf
test uf0853.pdftest uf0853.pdf
test uf0853.pdf
 
CUESTIONARIO 2NDA UNIDAD
CUESTIONARIO 2NDA UNIDADCUESTIONARIO 2NDA UNIDAD
CUESTIONARIO 2NDA UNIDAD
 
Guadalajara con
Guadalajara conGuadalajara con
Guadalajara con
 
Laboratorio de Análisis de Malware [GuadalajaraCON 2012]
Laboratorio de Análisis de Malware [GuadalajaraCON 2012]Laboratorio de Análisis de Malware [GuadalajaraCON 2012]
Laboratorio de Análisis de Malware [GuadalajaraCON 2012]
 
Clase 05b pruebas introduccion
Clase 05b pruebas introduccionClase 05b pruebas introduccion
Clase 05b pruebas introduccion
 
rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...
rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...
rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...
 
Alberto García de Dios - Virus, el arte no debería ser negocio [Rooted CON 2011]
Alberto García de Dios - Virus, el arte no debería ser negocio [Rooted CON 2011]Alberto García de Dios - Virus, el arte no debería ser negocio [Rooted CON 2011]
Alberto García de Dios - Virus, el arte no debería ser negocio [Rooted CON 2011]
 
Depuración Avanzada Con Win Dbg Y Vs 2010 (Basica)
Depuración Avanzada Con Win Dbg Y Vs 2010 (Basica)Depuración Avanzada Con Win Dbg Y Vs 2010 (Basica)
Depuración Avanzada Con Win Dbg Y Vs 2010 (Basica)
 
Prueba disgnostica sexto y septimo
Prueba disgnostica sexto y septimoPrueba disgnostica sexto y septimo
Prueba disgnostica sexto y septimo
 
¿Cómo detectar ataques de red utilizando Snort? | CISObeat
¿Cómo detectar ataques de red utilizando Snort? | CISObeat¿Cómo detectar ataques de red utilizando Snort? | CISObeat
¿Cómo detectar ataques de red utilizando Snort? | CISObeat
 
ALGORITMOS.ppsx
ALGORITMOS.ppsxALGORITMOS.ppsx
ALGORITMOS.ppsx
 
Webinar CISOBeat - Detectar Ataques de Red Utilizando SNORT
Webinar CISOBeat - Detectar Ataques de Red Utilizando SNORTWebinar CISOBeat - Detectar Ataques de Red Utilizando SNORT
Webinar CISOBeat - Detectar Ataques de Red Utilizando SNORT
 
Introducción a JAVA.
Introducción a JAVA.Introducción a JAVA.
Introducción a JAVA.
 
H-Con 2018: Hacking con Python
H-Con 2018: Hacking con PythonH-Con 2018: Hacking con Python
H-Con 2018: Hacking con Python
 
ShellCon 2018: Hacking con Python
ShellCon 2018: Hacking con PythonShellCon 2018: Hacking con Python
ShellCon 2018: Hacking con Python
 
Java janner
Java   jannerJava   janner
Java janner
 
Desarrollo a aplicaciones . net (1)
Desarrollo a aplicaciones . net (1)Desarrollo a aplicaciones . net (1)
Desarrollo a aplicaciones . net (1)
 
Reglas de Oro para el Desarrollo con Windows Vista
Reglas de Oro para el Desarrollo con Windows VistaReglas de Oro para el Desarrollo con Windows Vista
Reglas de Oro para el Desarrollo con Windows Vista
 

Las entrañas del malware