SlideShare una empresa de Scribd logo
1 de 36
Evasión de técnicas forense
                    (Shellcode ELF loader)

Albert Puigsech Galicia ripe@7a69ezine.org
Rubén Jiménez García pluf@7a69ezine.org



                                             FIST BCN 2005
Introducción
Introducción

  Sistema de explotación común:

    Localización de maquina vulnerable

    Generación de programa exploit

    Utilización de shellcode especifica

    Se inicia el proceso de post-explotación
Introducción

  La shellcode es nuestra amiga:

      Codigos pequeños y faciles de programar
      Se pueden adaptar a cualquier exploit
      Pueden incorporar tecnicas de antidetección
      Generalmente se ejecuta una shell via execve()


  Pero nos puede trainicionar:

    Imposibilidad de utilizar execve()!!
Introducción

  Y si disponemos de execve()?

    Ejecución de comandos y aplicaciones locales
    Descarga/compilación de programas
    Estamos muertos..


  Que ha ocurrido?

    for(;;) printf(“evidencias!!”);
Introducción

  Para poder solucionar estos problemas tendremos
   que optar por un sistema que nos facilite la
   ejecución de programas y al mismo tiempo genere
   el menor numero posible de evidencias:


            Userland execve()
Userland execve
Userland execve

  El procedimiento que permite la ejecución local de
   un programa sin utilizar la llamada al sistema
   ‘execve’ recibe el nombre de ‘userland execve’.

  Mecanismo que simula de forma correcta y
   ordenada las tareas que realiza el núcleo:

    Carga de las secciones necesarias del binario
    Inicialización del contexto de la pila.
    Salto al punto de entrada.
Userland execve

  El uso de ‘userland execve’ nos soluciona los
   problemas planteados anteriormente.

    No es necesario el uso de la syscall, por lo que no es
     preocupante que esté denegada.

    La implementación es nuestra por lo que es posible
     cambiar el origen del ejecutable y obtenerlo de la red, en
     lugar del disco duro. Así podemos ejecutar una shell pese
     a que no exista en el disco.

    La ejecución remota nos permitirá ejecutar herramientas
     que no estan en el host atacado sin alterar el disco.
Userland execve

  Primera versión publica de userland execve:
   grugq

  Problemas:

    poco portable
    exceso de código inútil
    orientado a la ejecución local

  Solución:

    Shellcode ELF Loader
Shellcode ELF loader
Shellcode ELF loader

  La shellcode ELF loader es una nueva y sofisticada
   técnica post-explotación basada en el ‘userland
   execve’.

    Diseñada para ser utilizada en exploits

    Reduce la generación de evidencias

    Posibilita la ejecución en entornos ostiles

    Es fácil de programar y utilizar
Diseño e implementación

  SELF esta formado por tres elementos:

    Lxobject (1)

    Builder (2)

    Jumper (3)


  Cada uno realiza una tarea especifica dentro del
   proceso de post-explotación
Lxobject (1)

  Es un objeto ejecutable y auto-cargable utilizado
   para sustituir por completo un proceso original por
   otro.

    Es la parte más compleja e importante de todo el
     sistema.

    Se construye por el ‘builder’ en el host del atacante.
Lxobject (1)

  Un lxobject esta constituido por tres partes:

     Binario ELF estático

     Contexto inicial de la pila

     Shellcode cargadora
Binario ELF estático (1.a)

   Es el binario que queremos cargar y ejecutar en la
    maquina remota.

   El sistema sólo funciona con binarios estáticos, se
    ha optado por ello por varios motivos.

      Facilita el diseño y la implementación

      No nos preocupamos por las librerías

      Reduce la complejidad de SELF

      El binario lo genera el atacante. (uso de armerías)
Contexto de pila (1.b)

  Todo proceso dispone de una zona de memoria
   llamada pila o stack usada para varios cometidos.

    Variables locales.

    Control del flujo de ejecución.

    Copias temporales de registros.

    Parámetros pasados a la aplicación por el proceso padre.

    Variables de entorno.
Contexto de pila (1.b)

  La pila debe tener un contexto inicial para que el
   proceso funcione correctamente.

  Para facilitar la portabilidad y estabilidad se ha
   optado por pre-construir el contexto de la pila en
   el host atacante e incluirlo en el lxobject como de
   un program header más se tratara.

  No es necesario incluir los vectores auxiliares
   utilizados para tratar con binarios dinámicos.
Shellcode cargadora (1.c)

  Se trata de la parte más importante y delicada del
   lxobject.

  Es una shellcode que simula el userland execve()

    Código pequeño y fácil de entender

    Se puede adaptar a cada sistema/plataforma

    No construye el contexto de pila
Builder (2)

  Es la aplicación encargada de ensamblar las
   piezas que construyen el lxobject.
Builder (2)

   Su funcionamiento es sencillo:

    bash ~$ ./builder <host> <port> <exec> <argv> <envp>


   host, port: dirección y puerto de la máquina atacada donde el jumper
   está ejecutándose y esperando.

   exec: Fichero binario ELF que queremos ejecutar

   argv, envp: Argumentos y variables de entorno pasadas al programa.
Builder (2)

  Elemplo de ejecución:


  bash ~$ ./builder 172.26.0.1 2002 nmap-static “-P0;-p;23;172.26.0.30” “PATH=/bin”
Proceso de construcción

  Se crea una zona de memoria lo suficientemente
   grande para almacenar el fichero ejecutable
   estátido y se copia el binario.
    elf_new = (void*)malloc(elf_new_size);
  Se limpian aquellos campos referentes a las
   secciones pues no seran usadas por nuestro
   binario.

   ehdr_new->e_shentsize = 0;
   ehdr_new->e_shoff =0;
   ehdr_new->e_shnum = 0;
   ehdr_new->e_shstrndx = 0;
Proceso de construcción

  Se introduce el shellcode ELF loader y se guarda
   su offset en el campo e_ident de la cabecera del
   ejecutable.
  memcpy(elf_new + elf_new_size - PG_SIZE + LOADER_CODESZ, loader,
  LOADER_CODESZ);
  ldr_ptr = (unsigned long *)&ehdr_new->e_ident[9];
  *ldr_ptr = elf_new_size - PG_SIZE + LOADER_CODESZ;


  El lxobject está perfectamente ensamblado y listo
   para ser enviado.
 connect(sfd, (struct sockaddr *)&srv, sizeof(struct sockaddr));
 write(sfd, elf_new, elf_new_size);
Jumper (3)

  El jumper es la shellcode que deberá ser usada
   por el exploit en el proceso de explotación.

  Su misión es activar el lxobject y para ello debe
   realizar, por lo menos, las siguientes acciones:

     Obtener el lxobject.

     Almacenarlo en la memoria.

     Activarlo saltando al loader.
Obtener el lxobject

  El lxobjet puede obtenerse de muchas fuentes.

    Disco duro

    Socket de red

    ...


  Es recomendable usar un socket de red para
   reducir el riesgo de dejar evidencias.
Almacenarlo en memoria

  Es necesario almacenar el lxobject en la memoria
   de proceso. Se plantean entonces tres
   posibilidades.

    Almacenarlo en la heap

    Almacenarlo en la pila del proceso

    Almacenarlo en una nueva zona de memoria (mmap).
Almacenarlo en la heap

  Para almacenar el lxobject en la heap es necesario
   localizar la vaddr del proceso usando brk().

  Ventajas:

    Es sencillo de implementar.No suele haber restricciones
     de copia de datos.

  Desventajas:

    Se puede desmapear el propio lxobject durante el
     proceso de carga
Almacenarlo en el stack

  Si se conoce la situación de la pila es posible
   almacenar ahí el lxobject.

  Ventajas:

     Es sencillo de implementar.
     No suele haber restricciones de copia de datos.

  Desventajas:

     Se puede desmapear el propio lxobject durante el
      proceso de carga.
     Pueden existir restricciones de ejecución en la pila, es
      bastante común en sistemas hostiles.
Almacenar en una nueva
zona
  Es posible mapear (usando la llamada al sistema
   mmap) una nueva zona de memoria destinada
   almacenar el lxobject.

  Ventajas:

    No existen restricciones para la copia o ejecución de
     datos.

    No existe peligro de que el lxobject se desmapee durante
     el proceso de carga.
Demostración
    Simple stack overflow + SELF = envio y ejecución de nmap
Demostración
    Simple stack overflow + SELF = envio y ejecución de elfsh
Referencias

 [+] The Design and Implementation of ul_exec - the grugq
 http://securityfocus.com/archive/1/348638/2003-12-29/2004-01-04/0

 [+] Remote Exec - the grugq
 http://www.phrack.org/show.php?p=62&a=8

 [+] Advanced antiforensics - Ripe & Pluf
 http://www.phrack.org/show.php?p=63&a=11

 [+] Forensic Shell. FSH – Parki

 [+] API Proxy – ilo
 http://www.reversing.org
Alguna preguntita?



                ?
Muchas gracias




 A los organizadores de FIST BARCELONA
                  
FIN


      http://www.7a69ezine.org



       Albert Puigsech Galicia
       Rubén Jiménez García

Más contenido relacionado

La actualidad más candente

Ethical hacking 03
Ethical hacking 03Ethical hacking 03
Ethical hacking 03Tensor
 
Ethical hacking 04a
Ethical hacking 04aEthical hacking 04a
Ethical hacking 04aTensor
 
Armitage pruebas
Armitage pruebasArmitage pruebas
Armitage pruebasTensor
 
Ethical hacking 00a
Ethical hacking 00aEthical hacking 00a
Ethical hacking 00aTensor
 
Cuckoo sandbox
Cuckoo sandboxCuckoo sandbox
Cuckoo sandboxTensor
 
Cómo explotar EternalRomance & EternalSynergy en Windows Server 2016
Cómo explotar EternalRomance & EternalSynergy en Windows Server 2016Cómo explotar EternalRomance & EternalSynergy en Windows Server 2016
Cómo explotar EternalRomance & EternalSynergy en Windows Server 2016Telefónica
 
40 configuración del kernel y dispositivos
40  configuración del kernel y dispositivos40  configuración del kernel y dispositivos
40 configuración del kernel y dispositivosAprende Viendo
 
41 parámetros y módulos generales
41  parámetros y módulos generales41  parámetros y módulos generales
41 parámetros y módulos generalesAprende Viendo
 
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]RootedCON
 
Linux Kernel - System Calls - Modules - Drivers
Linux Kernel - System Calls - Modules - DriversLinux Kernel - System Calls - Modules - Drivers
Linux Kernel - System Calls - Modules - DriversMartin Baez
 
Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]
Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]
Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]RootedCON
 
Explotar Eternalblue & Doublepulsar para obener una shell de Empire/Meterpret...
Explotar Eternalblue & Doublepulsar para obener una shell de Empire/Meterpret...Explotar Eternalblue & Doublepulsar para obener una shell de Empire/Meterpret...
Explotar Eternalblue & Doublepulsar para obener una shell de Empire/Meterpret...Telefónica
 
Lenguaje de programación Java
Lenguaje de programación JavaLenguaje de programación Java
Lenguaje de programación JavaJuan Vladimir
 

La actualidad más candente (20)

Ethical hacking 03
Ethical hacking 03Ethical hacking 03
Ethical hacking 03
 
Ethical hacking 04a
Ethical hacking 04aEthical hacking 04a
Ethical hacking 04a
 
Armitage pruebas
Armitage pruebasArmitage pruebas
Armitage pruebas
 
Pablo sanemeteriovalencia
Pablo sanemeteriovalenciaPablo sanemeteriovalencia
Pablo sanemeteriovalencia
 
Ethical hacking 00a
Ethical hacking 00aEthical hacking 00a
Ethical hacking 00a
 
Cuckoo sandbox
Cuckoo sandboxCuckoo sandbox
Cuckoo sandbox
 
Cómo explotar EternalRomance & EternalSynergy en Windows Server 2016
Cómo explotar EternalRomance & EternalSynergy en Windows Server 2016Cómo explotar EternalRomance & EternalSynergy en Windows Server 2016
Cómo explotar EternalRomance & EternalSynergy en Windows Server 2016
 
40 configuración del kernel y dispositivos
40  configuración del kernel y dispositivos40  configuración del kernel y dispositivos
40 configuración del kernel y dispositivos
 
Metasploit
MetasploitMetasploit
Metasploit
 
Gestión Remota de Equipos con Python
Gestión Remota de Equipos con PythonGestión Remota de Equipos con Python
Gestión Remota de Equipos con Python
 
41 parámetros y módulos generales
41  parámetros y módulos generales41  parámetros y módulos generales
41 parámetros y módulos generales
 
Ataque win xp
Ataque win xpAtaque win xp
Ataque win xp
 
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]
 
Zenmap
ZenmapZenmap
Zenmap
 
Linux Kernel - System Calls - Modules - Drivers
Linux Kernel - System Calls - Modules - DriversLinux Kernel - System Calls - Modules - Drivers
Linux Kernel - System Calls - Modules - Drivers
 
Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]
Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]
Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]
 
Ud3 inocente alcaide
Ud3 inocente alcaideUd3 inocente alcaide
Ud3 inocente alcaide
 
Present3
Present3Present3
Present3
 
Explotar Eternalblue & Doublepulsar para obener una shell de Empire/Meterpret...
Explotar Eternalblue & Doublepulsar para obener una shell de Empire/Meterpret...Explotar Eternalblue & Doublepulsar para obener una shell de Empire/Meterpret...
Explotar Eternalblue & Doublepulsar para obener una shell de Empire/Meterpret...
 
Lenguaje de programación Java
Lenguaje de programación JavaLenguaje de programación Java
Lenguaje de programación Java
 

Destacado

2010 reporte mexico-institucional
2010 reporte mexico-institucional2010 reporte mexico-institucional
2010 reporte mexico-institucionalÓscar López
 
Curso de Cómputo Forense 2013
Curso de Cómputo Forense 2013Curso de Cómputo Forense 2013
Curso de Cómputo Forense 2013NPROS Perú
 
LIOS: a tool for IOS Forensic
LIOS: a tool for IOS ForensicLIOS: a tool for IOS Forensic
LIOS: a tool for IOS Forensicnavajanegra
 
La prueba pericial . victor de santos
La prueba pericial . victor de santosLa prueba pericial . victor de santos
La prueba pericial . victor de santossan_van
 
Doing Research about Web Application Firewalls
Doing Research about Web Application FirewallsDoing Research about Web Application Firewalls
Doing Research about Web Application FirewallsCarmen Torrano Giménez
 
FC00::1 (Algunos) Ataques en IPv6
FC00::1 (Algunos) Ataques en IPv6FC00::1 (Algunos) Ataques en IPv6
FC00::1 (Algunos) Ataques en IPv6Chema Alonso
 
Presentación prueba electrónica y sus alcances
Presentación prueba electrónica y sus alcances Presentación prueba electrónica y sus alcances
Presentación prueba electrónica y sus alcances MaTTica
 
El Cibercrimen y delitos informaticos
El Cibercrimen y delitos informaticosEl Cibercrimen y delitos informaticos
El Cibercrimen y delitos informaticosJleon Consultores
 
Cpmx3 computo forense reloaded
Cpmx3   computo forense reloadedCpmx3   computo forense reloaded
Cpmx3 computo forense reloadedFutura Networks
 
Peritos informáticos colegiados: Pruebas digitales
Peritos informáticos colegiados: Pruebas digitalesPeritos informáticos colegiados: Pruebas digitales
Peritos informáticos colegiados: Pruebas digitalesPedro De La Torre Rodríguez
 
Andres velazquez presentacion
Andres velazquez presentacionAndres velazquez presentacion
Andres velazquez presentacionlideresacademicos
 
Informatica forense1
Informatica forense1Informatica forense1
Informatica forense1Arlen Caicedo
 

Destacado (20)

Las redes sociales
Las redes socialesLas redes sociales
Las redes sociales
 
Computacion forense
Computacion  forenseComputacion  forense
Computacion forense
 
2010 reporte mexico-institucional
2010 reporte mexico-institucional2010 reporte mexico-institucional
2010 reporte mexico-institucional
 
Curso de Cómputo Forense 2013
Curso de Cómputo Forense 2013Curso de Cómputo Forense 2013
Curso de Cómputo Forense 2013
 
LIOS: a tool for IOS Forensic
LIOS: a tool for IOS ForensicLIOS: a tool for IOS Forensic
LIOS: a tool for IOS Forensic
 
NANO - FORENSE
NANO - FORENSENANO - FORENSE
NANO - FORENSE
 
Peritos forenses
Peritos forensesPeritos forenses
Peritos forenses
 
La prueba pericial . victor de santos
La prueba pericial . victor de santosLa prueba pericial . victor de santos
La prueba pericial . victor de santos
 
Doing Research about Web Application Firewalls
Doing Research about Web Application FirewallsDoing Research about Web Application Firewalls
Doing Research about Web Application Firewalls
 
Computacion forense
Computacion forenseComputacion forense
Computacion forense
 
FC00::1 (Algunos) Ataques en IPv6
FC00::1 (Algunos) Ataques en IPv6FC00::1 (Algunos) Ataques en IPv6
FC00::1 (Algunos) Ataques en IPv6
 
Presentación prueba electrónica y sus alcances
Presentación prueba electrónica y sus alcances Presentación prueba electrónica y sus alcances
Presentación prueba electrónica y sus alcances
 
El Cibercrimen y delitos informaticos
El Cibercrimen y delitos informaticosEl Cibercrimen y delitos informaticos
El Cibercrimen y delitos informaticos
 
Cpmx3 computo forense reloaded
Cpmx3   computo forense reloadedCpmx3   computo forense reloaded
Cpmx3 computo forense reloaded
 
Peritos informáticos colegiados: Pruebas digitales
Peritos informáticos colegiados: Pruebas digitalesPeritos informáticos colegiados: Pruebas digitales
Peritos informáticos colegiados: Pruebas digitales
 
Andres velazquez presentacion
Andres velazquez presentacionAndres velazquez presentacion
Andres velazquez presentacion
 
El indulto en la legislacion boliviana
El indulto en la legislacion bolivianaEl indulto en la legislacion boliviana
El indulto en la legislacion boliviana
 
Informatica forense1
Informatica forense1Informatica forense1
Informatica forense1
 
AI05 Analisis forense de sistemas
AI05 Analisis forense de sistemasAI05 Analisis forense de sistemas
AI05 Analisis forense de sistemas
 
Psicología Forense
Psicología ForensePsicología Forense
Psicología Forense
 

Similar a Evasión de Técnicas Forenses

Realidad Aumentada 01 documentacion tapir
Realidad Aumentada 01 documentacion tapirRealidad Aumentada 01 documentacion tapir
Realidad Aumentada 01 documentacion tapirAgustín Hv
 
Episodio de pentesting
Episodio de pentestingEpisodio de pentesting
Episodio de pentestingakencito
 
Introduccion a Ansible
Introduccion a AnsibleIntroduccion a Ansible
Introduccion a AnsibleOsvaldo
 
Magallanes, Herramienta de despliegue PHP sencilla y poderosa
Magallanes, Herramienta de despliegue PHP sencilla y poderosa�Magallanes, Herramienta de despliegue PHP sencilla y poderosa�
Magallanes, Herramienta de despliegue PHP sencilla y poderosaFco Javier Núñez Berrocoso
 
Usando Docker con sistemas Asterisk
Usando Docker con sistemas AsteriskUsando Docker con sistemas Asterisk
Usando Docker con sistemas AsteriskElio Rojano
 
Usando Docker con sistemas Asterisk
Usando Docker con sistemas AsteriskUsando Docker con sistemas Asterisk
Usando Docker con sistemas AsteriskVOIP2DAY
 
Meterpreter en android el desembarco en tu smartphone
Meterpreter en android   el desembarco en tu smartphoneMeterpreter en android   el desembarco en tu smartphone
Meterpreter en android el desembarco en tu smartphoneJASENT
 
FROM lost to the Docker 2020
FROM lost to the Docker 2020FROM lost to the Docker 2020
FROM lost to the Docker 2020BelnGonzlezGarca1
 
Componentes Ubuntu
Componentes UbuntuComponentes Ubuntu
Componentes UbuntuElvis Calle
 
Desarrollo de rootkits en Linux [GuadalajaraCON 2013]
Desarrollo de rootkits en Linux [GuadalajaraCON 2013]Desarrollo de rootkits en Linux [GuadalajaraCON 2013]
Desarrollo de rootkits en Linux [GuadalajaraCON 2013]Websec México, S.C.
 
Construyendo rootkits basicos
Construyendo rootkits basicosConstruyendo rootkits basicos
Construyendo rootkits basicosTensor
 

Similar a Evasión de Técnicas Forenses (20)

Realidad Aumentada 01 documentacion tapir
Realidad Aumentada 01 documentacion tapirRealidad Aumentada 01 documentacion tapir
Realidad Aumentada 01 documentacion tapir
 
Workshop Técnicas Replicacion I
Workshop Técnicas Replicacion IWorkshop Técnicas Replicacion I
Workshop Técnicas Replicacion I
 
Bd practica 1.10
Bd practica 1.10Bd practica 1.10
Bd practica 1.10
 
Curso linux clase_2_2012
Curso linux clase_2_2012Curso linux clase_2_2012
Curso linux clase_2_2012
 
Episodio de pentesting
Episodio de pentestingEpisodio de pentesting
Episodio de pentesting
 
Introduccion a Ansible
Introduccion a AnsibleIntroduccion a Ansible
Introduccion a Ansible
 
Magallanes, Herramienta de despliegue PHP sencilla y poderosa
Magallanes, Herramienta de despliegue PHP sencilla y poderosa�Magallanes, Herramienta de despliegue PHP sencilla y poderosa�
Magallanes, Herramienta de despliegue PHP sencilla y poderosa
 
Unidad 2. Lenguaje orientado a objetos
Unidad 2. Lenguaje orientado a objetosUnidad 2. Lenguaje orientado a objetos
Unidad 2. Lenguaje orientado a objetos
 
Usando Docker con sistemas Asterisk
Usando Docker con sistemas AsteriskUsando Docker con sistemas Asterisk
Usando Docker con sistemas Asterisk
 
Usando Docker con sistemas Asterisk
Usando Docker con sistemas AsteriskUsando Docker con sistemas Asterisk
Usando Docker con sistemas Asterisk
 
Jug málaga docker 101 - final
Jug málaga   docker 101 - finalJug málaga   docker 101 - final
Jug málaga docker 101 - final
 
FROM lost to the docker
FROM lost to the dockerFROM lost to the docker
FROM lost to the docker
 
Meterpreter en android el desembarco en tu smartphone
Meterpreter en android   el desembarco en tu smartphoneMeterpreter en android   el desembarco en tu smartphone
Meterpreter en android el desembarco en tu smartphone
 
FROM lost to the Docker 2020
FROM lost to the Docker 2020FROM lost to the Docker 2020
FROM lost to the Docker 2020
 
Componentes Ubuntu
Componentes UbuntuComponentes Ubuntu
Componentes Ubuntu
 
Desarrollo de rootkits en Linux [GuadalajaraCON 2013]
Desarrollo de rootkits en Linux [GuadalajaraCON 2013]Desarrollo de rootkits en Linux [GuadalajaraCON 2013]
Desarrollo de rootkits en Linux [GuadalajaraCON 2013]
 
Docker y PostgreSQL
Docker y PostgreSQLDocker y PostgreSQL
Docker y PostgreSQL
 
Docker 2014 v2
Docker 2014 v2Docker 2014 v2
Docker 2014 v2
 
Construyendo rootkits basicos
Construyendo rootkits basicosConstruyendo rootkits basicos
Construyendo rootkits basicos
 
Semana9 Vbr
Semana9 VbrSemana9 Vbr
Semana9 Vbr
 

Más de Conferencias FIST

Seguridad en Entornos Web Open Source
Seguridad en Entornos Web Open SourceSeguridad en Entornos Web Open Source
Seguridad en Entornos Web Open SourceConferencias FIST
 
Las Evidencias Digitales en la Informática Forense
Las Evidencias Digitales en la Informática ForenseLas Evidencias Digitales en la Informática Forense
Las Evidencias Digitales en la Informática ForenseConferencias FIST
 
Evolución y situación actual de la seguridad en redes WiFi
Evolución y situación actual de la seguridad en redes WiFiEvolución y situación actual de la seguridad en redes WiFi
Evolución y situación actual de la seguridad en redes WiFiConferencias FIST
 
El Information Security Forum
El Information Security ForumEl Information Security Forum
El Information Security ForumConferencias FIST
 
Inseguridad en Redes Wireless
Inseguridad en Redes WirelessInseguridad en Redes Wireless
Inseguridad en Redes WirelessConferencias FIST
 
Mas allá de la Concienciación
Mas allá de la ConcienciaciónMas allá de la Concienciación
Mas allá de la ConcienciaciónConferencias FIST
 
Riesgo y Vulnerabilidades en el Desarrollo
Riesgo y Vulnerabilidades en el DesarrolloRiesgo y Vulnerabilidades en el Desarrollo
Riesgo y Vulnerabilidades en el DesarrolloConferencias FIST
 
Demostracion Hacking Honeypot y Análisis Forense
Demostracion Hacking Honeypot y Análisis ForenseDemostracion Hacking Honeypot y Análisis Forense
Demostracion Hacking Honeypot y Análisis ForenseConferencias FIST
 

Más de Conferencias FIST (20)

Seguridad en Open Solaris
Seguridad en Open SolarisSeguridad en Open Solaris
Seguridad en Open Solaris
 
Seguridad en Entornos Web Open Source
Seguridad en Entornos Web Open SourceSeguridad en Entornos Web Open Source
Seguridad en Entornos Web Open Source
 
Spanish Honeynet Project
Spanish Honeynet ProjectSpanish Honeynet Project
Spanish Honeynet Project
 
Seguridad en Windows Mobile
Seguridad en Windows MobileSeguridad en Windows Mobile
Seguridad en Windows Mobile
 
SAP Security
SAP SecuritySAP Security
SAP Security
 
Que es Seguridad
Que es SeguridadQue es Seguridad
Que es Seguridad
 
Network Access Protection
Network Access ProtectionNetwork Access Protection
Network Access Protection
 
Las Evidencias Digitales en la Informática Forense
Las Evidencias Digitales en la Informática ForenseLas Evidencias Digitales en la Informática Forense
Las Evidencias Digitales en la Informática Forense
 
Evolución y situación actual de la seguridad en redes WiFi
Evolución y situación actual de la seguridad en redes WiFiEvolución y situación actual de la seguridad en redes WiFi
Evolución y situación actual de la seguridad en redes WiFi
 
El Information Security Forum
El Information Security ForumEl Information Security Forum
El Information Security Forum
 
Criptografia Cuántica
Criptografia CuánticaCriptografia Cuántica
Criptografia Cuántica
 
Inseguridad en Redes Wireless
Inseguridad en Redes WirelessInseguridad en Redes Wireless
Inseguridad en Redes Wireless
 
Mas allá de la Concienciación
Mas allá de la ConcienciaciónMas allá de la Concienciación
Mas allá de la Concienciación
 
Security Metrics
Security MetricsSecurity Metrics
Security Metrics
 
PKI Interoperability
PKI InteroperabilityPKI Interoperability
PKI Interoperability
 
Wifislax 3.1
Wifislax 3.1Wifislax 3.1
Wifislax 3.1
 
Network Forensics
Network ForensicsNetwork Forensics
Network Forensics
 
Riesgo y Vulnerabilidades en el Desarrollo
Riesgo y Vulnerabilidades en el DesarrolloRiesgo y Vulnerabilidades en el Desarrollo
Riesgo y Vulnerabilidades en el Desarrollo
 
Demostracion Hacking Honeypot y Análisis Forense
Demostracion Hacking Honeypot y Análisis ForenseDemostracion Hacking Honeypot y Análisis Forense
Demostracion Hacking Honeypot y Análisis Forense
 
Security Maturity Model
Security Maturity ModelSecurity Maturity Model
Security Maturity Model
 

Último

Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 

Último (19)

Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 

Evasión de Técnicas Forenses

  • 1. Evasión de técnicas forense (Shellcode ELF loader) Albert Puigsech Galicia ripe@7a69ezine.org Rubén Jiménez García pluf@7a69ezine.org FIST BCN 2005
  • 3. Introducción  Sistema de explotación común:  Localización de maquina vulnerable  Generación de programa exploit  Utilización de shellcode especifica  Se inicia el proceso de post-explotación
  • 4. Introducción  La shellcode es nuestra amiga:  Codigos pequeños y faciles de programar  Se pueden adaptar a cualquier exploit  Pueden incorporar tecnicas de antidetección  Generalmente se ejecuta una shell via execve()  Pero nos puede trainicionar:  Imposibilidad de utilizar execve()!!
  • 5. Introducción  Y si disponemos de execve()?  Ejecución de comandos y aplicaciones locales  Descarga/compilación de programas  Estamos muertos..  Que ha ocurrido?  for(;;) printf(“evidencias!!”);
  • 6. Introducción  Para poder solucionar estos problemas tendremos que optar por un sistema que nos facilite la ejecución de programas y al mismo tiempo genere el menor numero posible de evidencias: Userland execve()
  • 8. Userland execve  El procedimiento que permite la ejecución local de un programa sin utilizar la llamada al sistema ‘execve’ recibe el nombre de ‘userland execve’.  Mecanismo que simula de forma correcta y ordenada las tareas que realiza el núcleo:  Carga de las secciones necesarias del binario  Inicialización del contexto de la pila.  Salto al punto de entrada.
  • 9. Userland execve  El uso de ‘userland execve’ nos soluciona los problemas planteados anteriormente.  No es necesario el uso de la syscall, por lo que no es preocupante que esté denegada.  La implementación es nuestra por lo que es posible cambiar el origen del ejecutable y obtenerlo de la red, en lugar del disco duro. Así podemos ejecutar una shell pese a que no exista en el disco.  La ejecución remota nos permitirá ejecutar herramientas que no estan en el host atacado sin alterar el disco.
  • 10. Userland execve  Primera versión publica de userland execve: grugq  Problemas:  poco portable  exceso de código inútil  orientado a la ejecución local  Solución:  Shellcode ELF Loader
  • 12. Shellcode ELF loader  La shellcode ELF loader es una nueva y sofisticada técnica post-explotación basada en el ‘userland execve’.  Diseñada para ser utilizada en exploits  Reduce la generación de evidencias  Posibilita la ejecución en entornos ostiles  Es fácil de programar y utilizar
  • 13. Diseño e implementación  SELF esta formado por tres elementos:  Lxobject (1)  Builder (2)  Jumper (3)  Cada uno realiza una tarea especifica dentro del proceso de post-explotación
  • 14. Lxobject (1)  Es un objeto ejecutable y auto-cargable utilizado para sustituir por completo un proceso original por otro.  Es la parte más compleja e importante de todo el sistema.  Se construye por el ‘builder’ en el host del atacante.
  • 15. Lxobject (1)  Un lxobject esta constituido por tres partes:  Binario ELF estático  Contexto inicial de la pila  Shellcode cargadora
  • 16. Binario ELF estático (1.a)  Es el binario que queremos cargar y ejecutar en la maquina remota.  El sistema sólo funciona con binarios estáticos, se ha optado por ello por varios motivos.  Facilita el diseño y la implementación  No nos preocupamos por las librerías  Reduce la complejidad de SELF  El binario lo genera el atacante. (uso de armerías)
  • 17. Contexto de pila (1.b)  Todo proceso dispone de una zona de memoria llamada pila o stack usada para varios cometidos.  Variables locales.  Control del flujo de ejecución.  Copias temporales de registros.  Parámetros pasados a la aplicación por el proceso padre.  Variables de entorno.
  • 18. Contexto de pila (1.b)  La pila debe tener un contexto inicial para que el proceso funcione correctamente.  Para facilitar la portabilidad y estabilidad se ha optado por pre-construir el contexto de la pila en el host atacante e incluirlo en el lxobject como de un program header más se tratara.  No es necesario incluir los vectores auxiliares utilizados para tratar con binarios dinámicos.
  • 19. Shellcode cargadora (1.c)  Se trata de la parte más importante y delicada del lxobject.  Es una shellcode que simula el userland execve()  Código pequeño y fácil de entender  Se puede adaptar a cada sistema/plataforma  No construye el contexto de pila
  • 20. Builder (2)  Es la aplicación encargada de ensamblar las piezas que construyen el lxobject.
  • 21. Builder (2)  Su funcionamiento es sencillo: bash ~$ ./builder <host> <port> <exec> <argv> <envp> host, port: dirección y puerto de la máquina atacada donde el jumper está ejecutándose y esperando. exec: Fichero binario ELF que queremos ejecutar argv, envp: Argumentos y variables de entorno pasadas al programa.
  • 22. Builder (2)  Elemplo de ejecución: bash ~$ ./builder 172.26.0.1 2002 nmap-static “-P0;-p;23;172.26.0.30” “PATH=/bin”
  • 23. Proceso de construcción  Se crea una zona de memoria lo suficientemente grande para almacenar el fichero ejecutable estátido y se copia el binario. elf_new = (void*)malloc(elf_new_size);  Se limpian aquellos campos referentes a las secciones pues no seran usadas por nuestro binario. ehdr_new->e_shentsize = 0; ehdr_new->e_shoff =0; ehdr_new->e_shnum = 0; ehdr_new->e_shstrndx = 0;
  • 24. Proceso de construcción  Se introduce el shellcode ELF loader y se guarda su offset en el campo e_ident de la cabecera del ejecutable. memcpy(elf_new + elf_new_size - PG_SIZE + LOADER_CODESZ, loader, LOADER_CODESZ); ldr_ptr = (unsigned long *)&ehdr_new->e_ident[9]; *ldr_ptr = elf_new_size - PG_SIZE + LOADER_CODESZ;  El lxobject está perfectamente ensamblado y listo para ser enviado. connect(sfd, (struct sockaddr *)&srv, sizeof(struct sockaddr)); write(sfd, elf_new, elf_new_size);
  • 25. Jumper (3)  El jumper es la shellcode que deberá ser usada por el exploit en el proceso de explotación.  Su misión es activar el lxobject y para ello debe realizar, por lo menos, las siguientes acciones:  Obtener el lxobject.  Almacenarlo en la memoria.  Activarlo saltando al loader.
  • 26. Obtener el lxobject  El lxobjet puede obtenerse de muchas fuentes.  Disco duro  Socket de red  ...  Es recomendable usar un socket de red para reducir el riesgo de dejar evidencias.
  • 27. Almacenarlo en memoria  Es necesario almacenar el lxobject en la memoria de proceso. Se plantean entonces tres posibilidades.  Almacenarlo en la heap  Almacenarlo en la pila del proceso  Almacenarlo en una nueva zona de memoria (mmap).
  • 28. Almacenarlo en la heap  Para almacenar el lxobject en la heap es necesario localizar la vaddr del proceso usando brk().  Ventajas:  Es sencillo de implementar.No suele haber restricciones de copia de datos.  Desventajas:  Se puede desmapear el propio lxobject durante el proceso de carga
  • 29. Almacenarlo en el stack  Si se conoce la situación de la pila es posible almacenar ahí el lxobject.  Ventajas:  Es sencillo de implementar.  No suele haber restricciones de copia de datos.  Desventajas:  Se puede desmapear el propio lxobject durante el proceso de carga.  Pueden existir restricciones de ejecución en la pila, es bastante común en sistemas hostiles.
  • 30. Almacenar en una nueva zona  Es posible mapear (usando la llamada al sistema mmap) una nueva zona de memoria destinada almacenar el lxobject.  Ventajas:  No existen restricciones para la copia o ejecución de datos.  No existe peligro de que el lxobject se desmapee durante el proceso de carga.
  • 31. Demostración Simple stack overflow + SELF = envio y ejecución de nmap
  • 32. Demostración Simple stack overflow + SELF = envio y ejecución de elfsh
  • 33. Referencias [+] The Design and Implementation of ul_exec - the grugq http://securityfocus.com/archive/1/348638/2003-12-29/2004-01-04/0 [+] Remote Exec - the grugq http://www.phrack.org/show.php?p=62&a=8 [+] Advanced antiforensics - Ripe & Pluf http://www.phrack.org/show.php?p=63&a=11 [+] Forensic Shell. FSH – Parki [+] API Proxy – ilo http://www.reversing.org
  • 35. Muchas gracias A los organizadores de FIST BARCELONA 
  • 36. FIN http://www.7a69ezine.org Albert Puigsech Galicia Rubén Jiménez García