SlideShare una empresa de Scribd logo
Evadiendo Anti-Virus:
  Uso de crypters




 Abraham Pasamar - INCIDE - #NCN2k12 - 03.11.12
Whoami
ncd:~ apasamar$ whoami
apasamar
apasamar@incide.es
@apasamar
a.k.a brajan
ncd:~ apasamar$ cat apasamar.cv
Ingenerio superior y Master en seguridad de la información
Socio fundador de INCIDE:
  Expertos en prueba electrónica
  Respuesta a incidentes
  Forensics / Periciales

ncd:~ apasamar$ rm apasamar.cv
Breaking News
de qué va esto ...
•   AV’s como funcionan
•   Tipos de malware y detección AV’s
•   Medidas de evasión
    •   Crypters
        •   tipos y funcionamiento
        •   stub
        •   stub FUD
        •   técnicas Modding
•   Recursos
AV’s howto
• Los AntiVirus escanean binarios en disco
• NO analizan la memoria, sino los binarios
  en disco que arrancan procesos
• Buscan firmas: cadenas binarias (BBDD)
• Buscan elementos/técnicas maliciosas
  (Heurística)
AV’s howto




              PROCESO
             RAM




     DISCO
AV’s howto




              PROCESO
             RAM




     DISCO
AV’s howto




              PROCESO
             RAM




     DISCO
AV’s howto




                           PROCESO
                          RAM


EJECUTABLE

                  DISCO
AV’s howto




                           PROCESO
     SCAN                 RAM


EJECUTABLE

                  DISCO
Tipos de malvare y
     detección AV’s
• Programas espía comerciales: (white list,
  firmados)
 • e-blaster
 • 007
 • perfect keylogger
Tipos de malvare y
     detección AV’s

• Malware recien creado:
 • detección baja (sin firmas)
 • posible detección heurística
Tipos de malvare y
   detección AV’s
• Malware existente: (muy conocidos,
  firmas y heurística)
 • troyanos
 • downloaders
 • stealers
 • reverse shells
¿Cómo se puede indetectar
 el malware ya detectado ?

  • C r y p t e r s:
   • Software que permite encriptar el
      malware para hacerlo indetectable a
      los antivirus.
    • La rutina de desencriptado tiene que
      poder ejecutarse (no se cifra)
Crypters
Crypter / stub
• Crypter:
 • Encargado de crear el ejecutable
    compuesto por el STUB y el
    MALWARE CIFRADO
• Stub:
 • Encargado de desencriptar el
    MALWARE CIFRADO y ejecutarlo
Crypter / stub
 CRYPTER




 STUB



CRYPTER + STUB




  exe
   dll
recurso
Crypter / stub
 CRYPTER




 STUB                  MALWARE DETECTADO



CRYPTER + STUB




  exe
   dll
recurso
Crypter / stub
 CRYPTER




 STUB                  MALWARE DETECTADO



CRYPTER + STUB




  exe
   dll
recurso
Crypter / stub
 CRYPTER




 STUB                    MALWARE DETECTADO



CRYPTER + STUB




  exe             STUB
   dll
recurso
Crypter / stub
 CRYPTER




 STUB                     MALWARE DETECTADO



CRYPTER + STUB
                         XOR, RC4, ...

  exe             STUB
   dll
recurso
Crypter / stub
 CRYPTER




 STUB                     MALWARE DETECTADO



CRYPTER + STUB
                         XOR, RC4, ...

  exe             STUB     MALWARE CIFRADO
   dll
recurso
Crypter / stub
              STUB                     MALWARE CIFRADO
         Separador



                           Separador

STUB                 KEY                         MALWARE CIFRADO




       También puede usarse un recurso
Crypter / stub

• Ejemplo práctico:
 • ejemplos crypters
 • archivo para cifrar (offsets)
 • edición hexa de archivo cifrado
   • stub, separador, key, cifrado
Crypter / stub

• Tipos de crypters:
 • ScanTime
 • RunTime
Crypter / stub
   • ScanTime

STUB     MALWARE CIFRADO


                           DISCO
Crypter / stub
   • ScanTime

STUB     MALWARE CIFRADO           MALWARE DETECTADO


                           DISCO
Crypter / stub
   • RunTime


                                   RAM


STUB     MALWARE CIFRADO


                           DISCO
Crypter / stub




                                    MALWARE DETECTADO
   • RunTime


                                   RAM


STUB     MALWARE CIFRADO


                           DISCO
Crypter / stub

• Ejemplo práctico:
 • Código STUB:
   • Decrypt
   • RunPe
RunPE o Dynamic Forking
RunPE o Dynamic Forking
          CreateProcess
PROCESO
   1
RunPE o Dynamic Forking
          CreateProcess (CREATE_SUSPENDED)
PROCESO
   1
RunPE o Dynamic Forking
          CreateProcess (CREATE_SUSPENDED)
PROCESO


                     GetThreadContext
   1




                                             EBX
RunPE o Dynamic Forking
          CreateProcess (CREATE_SUSPENDED)
PROCESO


                     GetThreadContext
   1




PEB                                          EBX
RunPE o Dynamic Forking
                CreateProcess (CREATE_SUSPENDED)
  PROCESO


                           GetThreadContext
     1




BaseAddress 1

        +8

   PEB                                             EBX
RunPE o Dynamic Forking
                CreateProcess (CREATE_SUSPENDED)
  PROCESO


                           GetThreadContext
     1



        EP I




BaseAddress 1

        +8

   PEB                                             EBX
                                                   EAX
RunPE o Dynamic Forking
                CreateProcess (CREATE_SUSPENDED)
  PROCESO


                           GetThreadContext
     1



        EP I
                ReadFile
  PROCESO
     2




BaseAddress 1

        +8

   PEB                                             EBX
                                                   EAX
RunPE o Dynamic Forking
                CreateProcess (CREATE_SUSPENDED)
  PROCESO


                           GetThreadContext
     1



        EP I
                ReadFile                   WriteProcessMemory
  PROCESO
     2




BaseAddress 1

        +8

   PEB                                             EBX
                                                   EAX
RunPE o Dynamic Forking
                CreateProcess (CREATE_SUSPENDED)
  PROCESO


                           GetThreadContext
     2
     1



        EP I
                                           WriteProcessMemory




BaseAddress 1

        +8

   PEB                                             EBX
                                                   EAX
RunPE o Dynamic Forking
            CreateProcess (CREATE_SUSPENDED)
PROCESO


                       GetThreadContext
   2
   1



     EP I
                                       WriteProcessMemory




    +8

PEB                                            EBX
                                               EAX
RunPE o Dynamic Forking
                CreateProcess (CREATE_SUSPENDED)
  PROCESO


                           GetThreadContext
     2
     1



        EP I
                                           WriteProcessMemory




BaseAddress 2

        +8

   PEB                                             EBX
                                                   EAX
RunPE o Dynamic Forking
                CreateProcess (CREATE_SUSPENDED)
  PROCESO


                           GetThreadContext
     2
     1



        EP I
        EP 2                               WriteProcessMemory




BaseAddress 2

        +8

   PEB                                             EBX
                                                   EAX
RunPE o Dynamic Forking
                CreateProcess (CREATE_SUSPENDED)
  PROCESO


                           GetThreadContext
     2
     1



        EP I
        EP 2                               WriteProcessMemory

                                           SetThreadContext




BaseAddress 2

        +8

   PEB                                             EBX
                                                   EAX
RunPE o Dynamic Forking
                CreateProcess (CREATE_SUSPENDED)
  PROCESO


                           GetThreadContext
     2
     1



        EP I
        EP 2                               WriteProcessMemory

                       ResumeThread        SetThreadContext




BaseAddress 2

        +8

   PEB                                             EBX
                                                   EAX
RunPE o Dynamic Forking
                CreateProcess (CREATE_SUSPENDED)
 PROCESO
  PROCESO


                           GetThreadContext
     2
     1



        EP I
        EP 2                               WriteProcessMemory

                       ResumeThread        SetThreadContext




BaseAddress 2

        +8

   PEB                                             EBX
                                                   EAX
FUD

• Objetivo: Stub FUD (Full UnDetectable)
 • Indetección desde Fuente (Source)
 • Indetección desde Binario
• ¿Cómo?
 • MODDING
Modding Source
•   A mano o con ofuscadores:

    •   Reemplazar funciones (SPLIT,..)

    •   Reemplazar y/o ofuscar funciones/strings/variables y Encriptar
        con rot13 o Hex

    •   Encriptaciones: RC4 y XOR quemadas

        •   Alternativas: TEA, DES, etc

    •   RunPE alternativos

    •   APIs Falsas

    •   TLB (Tab Library File)

        •   Trash code
Modding Binario
•   Indetección desde Binario:

    •   Se utilizan diferentes técnicas como:

        •   Dsplit/AvFucker

        •   SignatureFucker

        •   Hexing

        •   RIT

        •   XOR y variantes

        •   Tips
Modding Binario

•   Se modea el STUB, el Crypter no es parte del
    malware in the wild

•   Se buscan las FIRMAS o puntos de detección

    •   Firmas sencillas

    •   Firmas Múltiples

    •   Heurística
Modding Binario
•   Técnica DSplit:
Modding Binario
•    Técnica DSplit:

    Cabecera           Cuerpo EXE
Modding Binario
•    Técnica DSplit:

    Cabecera                Cuerpo EXE
               1000 bytes

    Cabecera Cuerpo EXE
Modding Binario
•    Técnica DSplit:

    Cabecera                    Cuerpo EXE
               1000 bytes

    Cabecera Cuerpo EXE
               2000 bytes

    Cabecera       Cuerpo EXE
Modding Binario
•    Técnica DSplit:

    Cabecera                             Cuerpo EXE
               1000 bytes

    Cabecera Cuerpo EXE
               2000 bytes

    Cabecera       Cuerpo EXE
               3000 bytes

    Cabecera                Cuerpo EXE
Modding Binario
•    Técnica DSplit:

    Cabecera                             Cuerpo EXE
               1000 bytes

    Cabecera Cuerpo EXE
               2000 bytes

    Cabecera       Cuerpo EXE
               3000 bytes

    Cabecera                Cuerpo EXE


···            Nx1000 bytes

    Cabecera                             Cuerpo EXE
Modding Binario
•   Técnica AvFucker:
Modding Binario
•    Técnica AvFucker:

    Cabecera             Cuerpo EXE
Modding Binario
•    Técnica AvFucker:

    Cabecera                Cuerpo EXE
               1000 bytes

    Cabecera 0000000000     Cuerpo EXE
Modding Binario
•    Técnica AvFucker:

    Cabecera                             Cuerpo EXE
               1000 bytes

    Cabecera 0000000000                  Cuerpo EXE
                            1000 bytes

    Cabecera                0000000000   Cuerpo EXE
Modding Binario
•    Técnica AvFucker:

    Cabecera                                Cuerpo EXE
               1000 bytes

    Cabecera 0000000000                     Cuerpo EXE
                            1000 bytes

    Cabecera                0000000000      Cuerpo EXE
                                         1000 bytes

    Cabecera                             0000000000EXE
                                            Cuerpo
Modding Binario
•    Técnica AvFucker:

    Cabecera                                Cuerpo EXE
               1000 bytes

    Cabecera 0000000000                     Cuerpo EXE
                            1000 bytes

    Cabecera                0000000000      Cuerpo EXE
                                         1000 bytes

    Cabecera                             0000000000EXE
                                            Cuerpo


···                                                      1000 bytes

    Cabecera                                Cuerpo EXE   0000000000
Modding Binario

• Ejemplo práctico:
   • DSplit/AvFucker
     • Bruteforce
     • Revisión Hexa
Modding Binario
• Técnica RIT
 • localizar firma
 • si son instrucciones partir flujo
 • saltar a otro punto (hueco)
 • finalizar las instrucciones
 • retornar al punto posterior
Modding Binario
• Técnica XOR
 • localizar firma/s
 • aplicar XOR con un valor p.e. 33
 • Modificar EP o saltar a un hueco
 • aplicar XOR 33
 • retornar al punto posterior
Recursos
• http://www.indetectables.net
• http://www.udtools.net
• http://www.masters-hackers.info
• http://www.level-23.biz/
• http://www.corp-51.net/
• http://www.underc0de.org
- Curiosidad: encoding de passwords -
¿ P R E G U NTA S ?


    Passeig Sant Gervasi, 10 ent. 3ª
     08021 Barcelona
   info@incide.es
   http://www.incide.es
   http://www.twitter.com/1NC1D3
   http://www.atrapadosporlosbits.com
   http://www.youtube.com/incidetube
   Companies > INCIDE - Investigación Digital
   Tel./Fax. +34 932 546 277 / +34 932 546 314

Más contenido relacionado

La actualidad más candente

Comandos Basicos De Linux
Comandos Basicos De LinuxComandos Basicos De Linux
Comandos Basicos De Linuxguest238e87
 
Introduction to linux for bioinformatics
Introduction to linux for bioinformaticsIntroduction to linux for bioinformatics
Introduction to linux for bioinformatics
Alberto Labarga
 
Como monitorear asterisk utilizando nrpe de nagios
Como monitorear asterisk utilizando nrpe de nagiosComo monitorear asterisk utilizando nrpe de nagios
Como monitorear asterisk utilizando nrpe de nagios
Guillermo Henriquez Gonzalez
 
Como monitorear asterisk utilizando nrpe de nagios
Como monitorear asterisk utilizando nrpe de nagiosComo monitorear asterisk utilizando nrpe de nagios
Como monitorear asterisk utilizando nrpe de nagiosMcp Servicios
 
Jvmmx docker jvm
Jvmmx docker jvmJvmmx docker jvm
Jvmmx docker jvm
superserch
 
Comandos básicos ubuntu
Comandos básicos ubuntuComandos básicos ubuntu
Comandos básicos ubunturobertoiglesias
 
Permisos de archivo
Permisos de archivoPermisos de archivo
Permisos de archivojarx75
 
Javier Marcos - Detección de amenazas a escala con osquery [rooted2019]
Javier Marcos - Detección de amenazas a escala con osquery [rooted2019]Javier Marcos - Detección de amenazas a escala con osquery [rooted2019]
Javier Marcos - Detección de amenazas a escala con osquery [rooted2019]
RootedCON
 
Creación de aplicaciones web con Node.js y Express
Creación de aplicaciones web con Node.js y ExpressCreación de aplicaciones web con Node.js y Express
Creación de aplicaciones web con Node.js y Expressbetabeers
 
Bitácora de comandos montar un sitio en un server
Bitácora de comandos montar un sitio en un serverBitácora de comandos montar un sitio en un server
Bitácora de comandos montar un sitio en un serverLearn Pure Insanity
 
Comandos linux
Comandos linuxComandos linux
Comandos linux
Maciel Rodelo Alvarez
 
niveles de ejecución arranque y parada de los servicios
niveles de ejecución arranque y parada de los serviciosniveles de ejecución arranque y parada de los servicios
niveles de ejecución arranque y parada de los servicios
Carlos Calderon Castro
 
Monitoreando servidores Elastix con Nagios
Monitoreando servidores Elastix con NagiosMonitoreando servidores Elastix con Nagios
Monitoreando servidores Elastix con Nagios
PaloSanto Solutions
 
Algunos comandos de GNU-LINUX
Algunos comandos de GNU-LINUXAlgunos comandos de GNU-LINUX
Algunos comandos de GNU-LINUX
america123456
 
Comandos para terminal
Comandos para terminalComandos para terminal
Comandos para terminalforevervicux
 
Introduccion A Groovy
Introduccion A GroovyIntroduccion A Groovy
Introduccion A Groovy
Andres Almiray
 

La actualidad más candente (20)

Comandos Basicos De Linux
Comandos Basicos De LinuxComandos Basicos De Linux
Comandos Basicos De Linux
 
Introduction to linux for bioinformatics
Introduction to linux for bioinformaticsIntroduction to linux for bioinformatics
Introduction to linux for bioinformatics
 
Como monitorear asterisk utilizando nrpe de nagios
Como monitorear asterisk utilizando nrpe de nagiosComo monitorear asterisk utilizando nrpe de nagios
Como monitorear asterisk utilizando nrpe de nagios
 
Como monitorear asterisk utilizando nrpe de nagios
Como monitorear asterisk utilizando nrpe de nagiosComo monitorear asterisk utilizando nrpe de nagios
Como monitorear asterisk utilizando nrpe de nagios
 
Jvmmx docker jvm
Jvmmx docker jvmJvmmx docker jvm
Jvmmx docker jvm
 
NASL
NASLNASL
NASL
 
Comandos básicos ubuntu
Comandos básicos ubuntuComandos básicos ubuntu
Comandos básicos ubuntu
 
Permisos de archivo
Permisos de archivoPermisos de archivo
Permisos de archivo
 
NASL
NASLNASL
NASL
 
Javier Marcos - Detección de amenazas a escala con osquery [rooted2019]
Javier Marcos - Detección de amenazas a escala con osquery [rooted2019]Javier Marcos - Detección de amenazas a escala con osquery [rooted2019]
Javier Marcos - Detección de amenazas a escala con osquery [rooted2019]
 
Creación de aplicaciones web con Node.js y Express
Creación de aplicaciones web con Node.js y ExpressCreación de aplicaciones web con Node.js y Express
Creación de aplicaciones web con Node.js y Express
 
Bitácora de comandos montar un sitio en un server
Bitácora de comandos montar un sitio en un serverBitácora de comandos montar un sitio en un server
Bitácora de comandos montar un sitio en un server
 
Comandos linux
Comandos linuxComandos linux
Comandos linux
 
niveles de ejecución arranque y parada de los servicios
niveles de ejecución arranque y parada de los serviciosniveles de ejecución arranque y parada de los servicios
niveles de ejecución arranque y parada de los servicios
 
Monitoreando servidores Elastix con Nagios
Monitoreando servidores Elastix con NagiosMonitoreando servidores Elastix con Nagios
Monitoreando servidores Elastix con Nagios
 
Grails
GrailsGrails
Grails
 
Algunos comandos de GNU-LINUX
Algunos comandos de GNU-LINUXAlgunos comandos de GNU-LINUX
Algunos comandos de GNU-LINUX
 
Introducción a Groovy
Introducción a GroovyIntroducción a Groovy
Introducción a Groovy
 
Comandos para terminal
Comandos para terminalComandos para terminal
Comandos para terminal
 
Introduccion A Groovy
Introduccion A GroovyIntroduccion A Groovy
Introduccion A Groovy
 

Destacado

NoCONName 2014 (Ncn2k14) Abraham Pasamar - Desmitificando el AntiVirus
NoCONName 2014 (Ncn2k14) Abraham Pasamar - Desmitificando el AntiVirusNoCONName 2014 (Ncn2k14) Abraham Pasamar - Desmitificando el AntiVirus
NoCONName 2014 (Ncn2k14) Abraham Pasamar - Desmitificando el AntiVirus
INCIDE
 
AntiVirus Evasion Techniques Use of Crypters 2k14 at MundoHackerDay
AntiVirus Evasion Techniques Use of Crypters 2k14 at MundoHackerDayAntiVirus Evasion Techniques Use of Crypters 2k14 at MundoHackerDay
AntiVirus Evasion Techniques Use of Crypters 2k14 at MundoHackerDay
INCIDE
 
Navaja negra 2014_nn4ed_abraham_pasamar-desmitificando_el_anti_virus
Navaja negra 2014_nn4ed_abraham_pasamar-desmitificando_el_anti_virusNavaja negra 2014_nn4ed_abraham_pasamar-desmitificando_el_anti_virus
Navaja negra 2014_nn4ed_abraham_pasamar-desmitificando_el_anti_virus
INCIDE
 
Evasion_AVs_Uso_de_Crypters-MundoHackerDay_2k14_apasamar
Evasion_AVs_Uso_de_Crypters-MundoHackerDay_2k14_apasamarEvasion_AVs_Uso_de_Crypters-MundoHackerDay_2k14_apasamar
Evasion_AVs_Uso_de_Crypters-MundoHackerDay_2k14_apasamar
INCIDE
 
Check list
Check listCheck list
Check list
Nai Von Cake
 
Alumnado
AlumnadoAlumnado
Alumnado
Nai Von Cake
 
Listado para material prestamos o evaluaciones
Listado para material prestamos o evaluacionesListado para material prestamos o evaluaciones
Listado para material prestamos o evaluaciones
Nai Von Cake
 
Telefonos alumnado
Telefonos alumnadoTelefonos alumnado
Telefonos alumnado
Nai Von Cake
 
Datos persoais
Datos persoaisDatos persoais
Datos persoais
Nai Von Cake
 
Enlaces de interese
Enlaces de intereseEnlaces de interese
Enlaces de interese
Nai Von Cake
 
Tutorías
TutoríasTutorías
Tutorías
Nai Von Cake
 
Check list
Check listCheck list
Check list
Nai Von Cake
 
Enlaces de interés
Enlaces de interésEnlaces de interés
Enlaces de interés
Nai Von Cake
 
Programación semanal
Programación semanalProgramación semanal
Programación semanal
Nai Von Cake
 
Cumpleaños
CumpleañosCumpleaños
Cumpleaños
Nai Von Cake
 
Teléfonos de interés
Teléfonos de interésTeléfonos de interés
Teléfonos de interés
Nai Von Cake
 
Alumnado galego
Alumnado galegoAlumnado galego
Alumnado galego
Nai Von Cake
 
Excursiones
ExcursionesExcursiones
Excursiones
Nai Von Cake
 
Aniversarios
AniversariosAniversarios
Aniversarios
Nai Von Cake
 
Reuniones
ReunionesReuniones
Reuniones
Nai Von Cake
 

Destacado (20)

NoCONName 2014 (Ncn2k14) Abraham Pasamar - Desmitificando el AntiVirus
NoCONName 2014 (Ncn2k14) Abraham Pasamar - Desmitificando el AntiVirusNoCONName 2014 (Ncn2k14) Abraham Pasamar - Desmitificando el AntiVirus
NoCONName 2014 (Ncn2k14) Abraham Pasamar - Desmitificando el AntiVirus
 
AntiVirus Evasion Techniques Use of Crypters 2k14 at MundoHackerDay
AntiVirus Evasion Techniques Use of Crypters 2k14 at MundoHackerDayAntiVirus Evasion Techniques Use of Crypters 2k14 at MundoHackerDay
AntiVirus Evasion Techniques Use of Crypters 2k14 at MundoHackerDay
 
Navaja negra 2014_nn4ed_abraham_pasamar-desmitificando_el_anti_virus
Navaja negra 2014_nn4ed_abraham_pasamar-desmitificando_el_anti_virusNavaja negra 2014_nn4ed_abraham_pasamar-desmitificando_el_anti_virus
Navaja negra 2014_nn4ed_abraham_pasamar-desmitificando_el_anti_virus
 
Evasion_AVs_Uso_de_Crypters-MundoHackerDay_2k14_apasamar
Evasion_AVs_Uso_de_Crypters-MundoHackerDay_2k14_apasamarEvasion_AVs_Uso_de_Crypters-MundoHackerDay_2k14_apasamar
Evasion_AVs_Uso_de_Crypters-MundoHackerDay_2k14_apasamar
 
Check list
Check listCheck list
Check list
 
Alumnado
AlumnadoAlumnado
Alumnado
 
Listado para material prestamos o evaluaciones
Listado para material prestamos o evaluacionesListado para material prestamos o evaluaciones
Listado para material prestamos o evaluaciones
 
Telefonos alumnado
Telefonos alumnadoTelefonos alumnado
Telefonos alumnado
 
Datos persoais
Datos persoaisDatos persoais
Datos persoais
 
Enlaces de interese
Enlaces de intereseEnlaces de interese
Enlaces de interese
 
Tutorías
TutoríasTutorías
Tutorías
 
Check list
Check listCheck list
Check list
 
Enlaces de interés
Enlaces de interésEnlaces de interés
Enlaces de interés
 
Programación semanal
Programación semanalProgramación semanal
Programación semanal
 
Cumpleaños
CumpleañosCumpleaños
Cumpleaños
 
Teléfonos de interés
Teléfonos de interésTeléfonos de interés
Teléfonos de interés
 
Alumnado galego
Alumnado galegoAlumnado galego
Alumnado galego
 
Excursiones
ExcursionesExcursiones
Excursiones
 
Aniversarios
AniversariosAniversarios
Aniversarios
 
Reuniones
ReunionesReuniones
Reuniones
 

Similar a Evadiendo antivirus - uso de crypters

Procesos
ProcesosProcesos
Slides taller de exploiting Navaja Negra 4ed
Slides taller de exploiting Navaja Negra 4edSlides taller de exploiting Navaja Negra 4ed
Slides taller de exploiting Navaja Negra 4ed
Ignacio Sorribas
 
Understanding Advanced Buffer Overflow
Understanding Advanced Buffer OverflowUnderstanding Advanced Buffer Overflow
Understanding Advanced Buffer OverflowConferencias FIST
 
Lw2010 - Uso De La Programacion En Linux Para La Seguridad En Redes
Lw2010 - Uso De La Programacion En Linux Para La Seguridad En RedesLw2010 - Uso De La Programacion En Linux Para La Seguridad En Redes
Lw2010 - Uso De La Programacion En Linux Para La Seguridad En Redes
guest5d7f33c
 
Lw2010 Pedro Valera
Lw2010 Pedro ValeraLw2010 Pedro Valera
Lw2010 Pedro Valera
guestf280e2
 
Evasión de Técnicas Forenses
Evasión de Técnicas ForensesEvasión de Técnicas Forenses
Evasión de Técnicas ForensesConferencias FIST
 
Plone en La Jornada
Plone en La JornadaPlone en La Jornada
Plone en La Jornada
Héctor Velarde
 
0131 tu aplicacion_gene_xus_en_la_nube_lo_que_se_necesita
0131 tu aplicacion_gene_xus_en_la_nube_lo_que_se_necesita0131 tu aplicacion_gene_xus_en_la_nube_lo_que_se_necesita
0131 tu aplicacion_gene_xus_en_la_nube_lo_que_se_necesitaGeneXus
 
Scripting para Pentesters v1.0
Scripting para Pentesters v1.0Scripting para Pentesters v1.0
Scripting para Pentesters v1.0wcuestas
 
Rendimiento en magento
Rendimiento en magentoRendimiento en magento
Rendimiento en magento
Onestic
 
Los mejores trucos de Asterisk
Los mejores trucos de AsteriskLos mejores trucos de Asterisk
Los mejores trucos de Asterisk
David Motta Baldarrago
 
Debian Lenny Asterisk
Debian Lenny AsteriskDebian Lenny Asterisk
Debian Lenny Asterisk
manzurek
 
Material taller de exploiting Navaja Negra 4ed
Material taller de exploiting Navaja Negra 4edMaterial taller de exploiting Navaja Negra 4ed
Material taller de exploiting Navaja Negra 4ed
Ignacio Sorribas
 
Interchange CMS - e-commerce
Interchange CMS - e-commerceInterchange CMS - e-commerce
Interchange CMS - e-commerce
David Ramirez
 
Interchange How-To for Red Hat Linux ES4
Interchange How-To for Red Hat Linux ES4Interchange How-To for Red Hat Linux ES4
Interchange How-To for Red Hat Linux ES4
David Ramirez
 
Linux basico-7.PDF
Linux basico-7.PDFLinux basico-7.PDF
Linux basico-7.PDFULEAM
 
LSWC PostgreSQL 9.1 (2011)
LSWC PostgreSQL 9.1 (2011)LSWC PostgreSQL 9.1 (2011)
LSWC PostgreSQL 9.1 (2011)
Emanuel Calvo
 
Abel Valero - VM + VFS = The Wooden Horse [rooted2018]
Abel Valero - VM + VFS = The Wooden Horse [rooted2018]Abel Valero - VM + VFS = The Wooden Horse [rooted2018]
Abel Valero - VM + VFS = The Wooden Horse [rooted2018]
RootedCON
 
Pentest - El Arte de la Guerra
Pentest - El Arte de la GuerraPentest - El Arte de la Guerra
Pentest - El Arte de la GuerraLuis Cortes Zavala
 

Similar a Evadiendo antivirus - uso de crypters (20)

Procesos
ProcesosProcesos
Procesos
 
Slides taller de exploiting Navaja Negra 4ed
Slides taller de exploiting Navaja Negra 4edSlides taller de exploiting Navaja Negra 4ed
Slides taller de exploiting Navaja Negra 4ed
 
Understanding Advanced Buffer Overflow
Understanding Advanced Buffer OverflowUnderstanding Advanced Buffer Overflow
Understanding Advanced Buffer Overflow
 
Lw2010 - Uso De La Programacion En Linux Para La Seguridad En Redes
Lw2010 - Uso De La Programacion En Linux Para La Seguridad En RedesLw2010 - Uso De La Programacion En Linux Para La Seguridad En Redes
Lw2010 - Uso De La Programacion En Linux Para La Seguridad En Redes
 
Lw2010 Pedro Valera
Lw2010 Pedro ValeraLw2010 Pedro Valera
Lw2010 Pedro Valera
 
Evasión de Técnicas Forenses
Evasión de Técnicas ForensesEvasión de Técnicas Forenses
Evasión de Técnicas Forenses
 
Plone en La Jornada
Plone en La JornadaPlone en La Jornada
Plone en La Jornada
 
0131 tu aplicacion_gene_xus_en_la_nube_lo_que_se_necesita
0131 tu aplicacion_gene_xus_en_la_nube_lo_que_se_necesita0131 tu aplicacion_gene_xus_en_la_nube_lo_que_se_necesita
0131 tu aplicacion_gene_xus_en_la_nube_lo_que_se_necesita
 
Scripting para Pentesters v1.0
Scripting para Pentesters v1.0Scripting para Pentesters v1.0
Scripting para Pentesters v1.0
 
Rendimiento en magento
Rendimiento en magentoRendimiento en magento
Rendimiento en magento
 
Los mejores trucos de Asterisk
Los mejores trucos de AsteriskLos mejores trucos de Asterisk
Los mejores trucos de Asterisk
 
Debian Lenny Asterisk
Debian Lenny AsteriskDebian Lenny Asterisk
Debian Lenny Asterisk
 
Material taller de exploiting Navaja Negra 4ed
Material taller de exploiting Navaja Negra 4edMaterial taller de exploiting Navaja Negra 4ed
Material taller de exploiting Navaja Negra 4ed
 
Interchange CMS - e-commerce
Interchange CMS - e-commerceInterchange CMS - e-commerce
Interchange CMS - e-commerce
 
Interchange How-To for Red Hat Linux ES4
Interchange How-To for Red Hat Linux ES4Interchange How-To for Red Hat Linux ES4
Interchange How-To for Red Hat Linux ES4
 
Linux basico-7.PDF
Linux basico-7.PDFLinux basico-7.PDF
Linux basico-7.PDF
 
LSWC PostgreSQL 9.1 (2011)
LSWC PostgreSQL 9.1 (2011)LSWC PostgreSQL 9.1 (2011)
LSWC PostgreSQL 9.1 (2011)
 
Planes de llamada
Planes de llamadaPlanes de llamada
Planes de llamada
 
Abel Valero - VM + VFS = The Wooden Horse [rooted2018]
Abel Valero - VM + VFS = The Wooden Horse [rooted2018]Abel Valero - VM + VFS = The Wooden Horse [rooted2018]
Abel Valero - VM + VFS = The Wooden Horse [rooted2018]
 
Pentest - El Arte de la Guerra
Pentest - El Arte de la GuerraPentest - El Arte de la Guerra
Pentest - El Arte de la Guerra
 

Evadiendo antivirus - uso de crypters

  • 1. Evadiendo Anti-Virus: Uso de crypters Abraham Pasamar - INCIDE - #NCN2k12 - 03.11.12
  • 2. Whoami ncd:~ apasamar$ whoami apasamar apasamar@incide.es @apasamar a.k.a brajan ncd:~ apasamar$ cat apasamar.cv Ingenerio superior y Master en seguridad de la información Socio fundador de INCIDE: Expertos en prueba electrónica Respuesta a incidentes Forensics / Periciales ncd:~ apasamar$ rm apasamar.cv
  • 4. de qué va esto ... • AV’s como funcionan • Tipos de malware y detección AV’s • Medidas de evasión • Crypters • tipos y funcionamiento • stub • stub FUD • técnicas Modding • Recursos
  • 5. AV’s howto • Los AntiVirus escanean binarios en disco • NO analizan la memoria, sino los binarios en disco que arrancan procesos • Buscan firmas: cadenas binarias (BBDD) • Buscan elementos/técnicas maliciosas (Heurística)
  • 6. AV’s howto PROCESO RAM DISCO
  • 7. AV’s howto PROCESO RAM DISCO
  • 8. AV’s howto PROCESO RAM DISCO
  • 9. AV’s howto PROCESO RAM EJECUTABLE DISCO
  • 10. AV’s howto PROCESO SCAN RAM EJECUTABLE DISCO
  • 11. Tipos de malvare y detección AV’s • Programas espía comerciales: (white list, firmados) • e-blaster • 007 • perfect keylogger
  • 12. Tipos de malvare y detección AV’s • Malware recien creado: • detección baja (sin firmas) • posible detección heurística
  • 13. Tipos de malvare y detección AV’s • Malware existente: (muy conocidos, firmas y heurística) • troyanos • downloaders • stealers • reverse shells
  • 14. ¿Cómo se puede indetectar el malware ya detectado ? • C r y p t e r s: • Software que permite encriptar el malware para hacerlo indetectable a los antivirus. • La rutina de desencriptado tiene que poder ejecutarse (no se cifra)
  • 16. Crypter / stub • Crypter: • Encargado de crear el ejecutable compuesto por el STUB y el MALWARE CIFRADO • Stub: • Encargado de desencriptar el MALWARE CIFRADO y ejecutarlo
  • 17. Crypter / stub CRYPTER STUB CRYPTER + STUB exe dll recurso
  • 18. Crypter / stub CRYPTER STUB MALWARE DETECTADO CRYPTER + STUB exe dll recurso
  • 19. Crypter / stub CRYPTER STUB MALWARE DETECTADO CRYPTER + STUB exe dll recurso
  • 20. Crypter / stub CRYPTER STUB MALWARE DETECTADO CRYPTER + STUB exe STUB dll recurso
  • 21. Crypter / stub CRYPTER STUB MALWARE DETECTADO CRYPTER + STUB XOR, RC4, ... exe STUB dll recurso
  • 22. Crypter / stub CRYPTER STUB MALWARE DETECTADO CRYPTER + STUB XOR, RC4, ... exe STUB MALWARE CIFRADO dll recurso
  • 23. Crypter / stub STUB MALWARE CIFRADO Separador Separador STUB KEY MALWARE CIFRADO También puede usarse un recurso
  • 24. Crypter / stub • Ejemplo práctico: • ejemplos crypters • archivo para cifrar (offsets) • edición hexa de archivo cifrado • stub, separador, key, cifrado
  • 25. Crypter / stub • Tipos de crypters: • ScanTime • RunTime
  • 26. Crypter / stub • ScanTime STUB MALWARE CIFRADO DISCO
  • 27. Crypter / stub • ScanTime STUB MALWARE CIFRADO MALWARE DETECTADO DISCO
  • 28. Crypter / stub • RunTime RAM STUB MALWARE CIFRADO DISCO
  • 29. Crypter / stub MALWARE DETECTADO • RunTime RAM STUB MALWARE CIFRADO DISCO
  • 30. Crypter / stub • Ejemplo práctico: • Código STUB: • Decrypt • RunPe
  • 31. RunPE o Dynamic Forking
  • 32. RunPE o Dynamic Forking CreateProcess PROCESO 1
  • 33. RunPE o Dynamic Forking CreateProcess (CREATE_SUSPENDED) PROCESO 1
  • 34. RunPE o Dynamic Forking CreateProcess (CREATE_SUSPENDED) PROCESO GetThreadContext 1 EBX
  • 35. RunPE o Dynamic Forking CreateProcess (CREATE_SUSPENDED) PROCESO GetThreadContext 1 PEB EBX
  • 36. RunPE o Dynamic Forking CreateProcess (CREATE_SUSPENDED) PROCESO GetThreadContext 1 BaseAddress 1 +8 PEB EBX
  • 37. RunPE o Dynamic Forking CreateProcess (CREATE_SUSPENDED) PROCESO GetThreadContext 1 EP I BaseAddress 1 +8 PEB EBX EAX
  • 38. RunPE o Dynamic Forking CreateProcess (CREATE_SUSPENDED) PROCESO GetThreadContext 1 EP I ReadFile PROCESO 2 BaseAddress 1 +8 PEB EBX EAX
  • 39. RunPE o Dynamic Forking CreateProcess (CREATE_SUSPENDED) PROCESO GetThreadContext 1 EP I ReadFile WriteProcessMemory PROCESO 2 BaseAddress 1 +8 PEB EBX EAX
  • 40. RunPE o Dynamic Forking CreateProcess (CREATE_SUSPENDED) PROCESO GetThreadContext 2 1 EP I WriteProcessMemory BaseAddress 1 +8 PEB EBX EAX
  • 41. RunPE o Dynamic Forking CreateProcess (CREATE_SUSPENDED) PROCESO GetThreadContext 2 1 EP I WriteProcessMemory +8 PEB EBX EAX
  • 42. RunPE o Dynamic Forking CreateProcess (CREATE_SUSPENDED) PROCESO GetThreadContext 2 1 EP I WriteProcessMemory BaseAddress 2 +8 PEB EBX EAX
  • 43. RunPE o Dynamic Forking CreateProcess (CREATE_SUSPENDED) PROCESO GetThreadContext 2 1 EP I EP 2 WriteProcessMemory BaseAddress 2 +8 PEB EBX EAX
  • 44. RunPE o Dynamic Forking CreateProcess (CREATE_SUSPENDED) PROCESO GetThreadContext 2 1 EP I EP 2 WriteProcessMemory SetThreadContext BaseAddress 2 +8 PEB EBX EAX
  • 45. RunPE o Dynamic Forking CreateProcess (CREATE_SUSPENDED) PROCESO GetThreadContext 2 1 EP I EP 2 WriteProcessMemory ResumeThread SetThreadContext BaseAddress 2 +8 PEB EBX EAX
  • 46. RunPE o Dynamic Forking CreateProcess (CREATE_SUSPENDED) PROCESO PROCESO GetThreadContext 2 1 EP I EP 2 WriteProcessMemory ResumeThread SetThreadContext BaseAddress 2 +8 PEB EBX EAX
  • 47. FUD • Objetivo: Stub FUD (Full UnDetectable) • Indetección desde Fuente (Source) • Indetección desde Binario • ¿Cómo? • MODDING
  • 48. Modding Source • A mano o con ofuscadores: • Reemplazar funciones (SPLIT,..) • Reemplazar y/o ofuscar funciones/strings/variables y Encriptar con rot13 o Hex • Encriptaciones: RC4 y XOR quemadas • Alternativas: TEA, DES, etc • RunPE alternativos • APIs Falsas • TLB (Tab Library File) • Trash code
  • 49. Modding Binario • Indetección desde Binario: • Se utilizan diferentes técnicas como: • Dsplit/AvFucker • SignatureFucker • Hexing • RIT • XOR y variantes • Tips
  • 50. Modding Binario • Se modea el STUB, el Crypter no es parte del malware in the wild • Se buscan las FIRMAS o puntos de detección • Firmas sencillas • Firmas Múltiples • Heurística
  • 51. Modding Binario • Técnica DSplit:
  • 52. Modding Binario • Técnica DSplit: Cabecera Cuerpo EXE
  • 53. Modding Binario • Técnica DSplit: Cabecera Cuerpo EXE 1000 bytes Cabecera Cuerpo EXE
  • 54. Modding Binario • Técnica DSplit: Cabecera Cuerpo EXE 1000 bytes Cabecera Cuerpo EXE 2000 bytes Cabecera Cuerpo EXE
  • 55. Modding Binario • Técnica DSplit: Cabecera Cuerpo EXE 1000 bytes Cabecera Cuerpo EXE 2000 bytes Cabecera Cuerpo EXE 3000 bytes Cabecera Cuerpo EXE
  • 56. Modding Binario • Técnica DSplit: Cabecera Cuerpo EXE 1000 bytes Cabecera Cuerpo EXE 2000 bytes Cabecera Cuerpo EXE 3000 bytes Cabecera Cuerpo EXE ··· Nx1000 bytes Cabecera Cuerpo EXE
  • 57. Modding Binario • Técnica AvFucker:
  • 58. Modding Binario • Técnica AvFucker: Cabecera Cuerpo EXE
  • 59. Modding Binario • Técnica AvFucker: Cabecera Cuerpo EXE 1000 bytes Cabecera 0000000000 Cuerpo EXE
  • 60. Modding Binario • Técnica AvFucker: Cabecera Cuerpo EXE 1000 bytes Cabecera 0000000000 Cuerpo EXE 1000 bytes Cabecera 0000000000 Cuerpo EXE
  • 61. Modding Binario • Técnica AvFucker: Cabecera Cuerpo EXE 1000 bytes Cabecera 0000000000 Cuerpo EXE 1000 bytes Cabecera 0000000000 Cuerpo EXE 1000 bytes Cabecera 0000000000EXE Cuerpo
  • 62. Modding Binario • Técnica AvFucker: Cabecera Cuerpo EXE 1000 bytes Cabecera 0000000000 Cuerpo EXE 1000 bytes Cabecera 0000000000 Cuerpo EXE 1000 bytes Cabecera 0000000000EXE Cuerpo ··· 1000 bytes Cabecera Cuerpo EXE 0000000000
  • 63. Modding Binario • Ejemplo práctico: • DSplit/AvFucker • Bruteforce • Revisión Hexa
  • 64. Modding Binario • Técnica RIT • localizar firma • si son instrucciones partir flujo • saltar a otro punto (hueco) • finalizar las instrucciones • retornar al punto posterior
  • 65. Modding Binario • Técnica XOR • localizar firma/s • aplicar XOR con un valor p.e. 33 • Modificar EP o saltar a un hueco • aplicar XOR 33 • retornar al punto posterior
  • 66. Recursos • http://www.indetectables.net • http://www.udtools.net • http://www.masters-hackers.info • http://www.level-23.biz/ • http://www.corp-51.net/ • http://www.underc0de.org - Curiosidad: encoding de passwords -
  • 67. ¿ P R E G U NTA S ? Passeig Sant Gervasi, 10 ent. 3ª 08021 Barcelona info@incide.es http://www.incide.es http://www.twitter.com/1NC1D3 http://www.atrapadosporlosbits.com http://www.youtube.com/incidetube Companies > INCIDE - Investigación Digital Tel./Fax. +34 932 546 277 / +34 932 546 314

Notas del editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. \n
  79. \n
  80. \n
  81. \n
  82. \n
  83. \n
  84. \n
  85. \n
  86. \n
  87. \n
  88. \n
  89. \n
  90. \n
  91. \n
  92. \n
  93. \n
  94. \n
  95. \n
  96. \n
  97. \n
  98. \n
  99. \n