Cargando
SecurityInside.info
  • Sobre SecurityInside
  • GitHub
  • Click to open the search input field Click to open the search input field Buscar
  • Menú Menú
  • Link to X
  • Link to Rss this site
  • Link to Youtube

Amenaza Silenciosa I

13 agosto, 2015/en Malware/por Ernesto Corral
Otras entradas de esta serie:
Amenaza Silenciosa I
Amenaza Silenciosa II – Inyección de DLL
Amenaza Silenciosa III – Hooking (Teoría)
…

Cuando trabajo cazando malware, una de las cosas que suelen cantar a la hora de encontrar artefactos maliciosos es la aparición de ejecutables extraños en los sistemas de persistencia más comunes, como, por ejemplo, en algunas claves de registro. Un día me pregunté, ¿es posible generar una amenaza silenciosa, que no cante mucho en los sistemas de persistencia, sin utilizar técnicas extrañas? Veamos como de fácil o difícil sería.

Dridex

No es la primera vez que hablo de temas relacionados con Dridex en este blog. En este caso lo hablaré de su mecanismo de persistencia. Es un sistema simple pero efectivo que da muchos dolores de cabeza a los administradores de sistemas a la hora de eliminarlo de una red.
Una vez infectado con Dridex, al ejecutarse, este se inyecta en el proceso Explorer.exe y se borra del sistema. Pero, ¿cómo logra entonces persistir?
Cuando Dridex detecta que Windows se va a cerrar se escribe a si mismo con la estructura <nombre aleatorio>.TMP y añade a la clave de registro HKEY_CURRENT_USER\ Software\Microsoft\Windows\CurrentVersion\Run el valor:

"rundll32.exe C:\DOCUME~1\\APPLIC~1\.tmp NfInitialize"

Cuando se vuelve a ejecutar el reiniciar el sistema, el fichero .TMP se vuelve a borrar y la clave del registro desaparece.
Esto no sólo hace su detección muy complicada, ya que la mayoría de los antivirus funcionan analizando los ficheros en disco y los que analizan la memoria no analizan todas la páginas, si no que la manera más fácil y barata de desinfectar las maquinas es desenchufándolas y quitándoles la batería si son ordenadores portátiles, lo cual complica la desinfección. ¿Os imagináis que gracia le hará al que le toque ir desenchufando dos mil ordenadores?
Sin utilizar ninguna técnica nueva, esto consigue que la detección en base a la aparición de artefactos sospechosos en sistemas de persistencia de la que hablaba en la introducción sea imposible una vez Windows ha arrancado: ni vamos a encontrar un ejecutable en %TMP% o %APPDATA% , ni vamos a ver nada en las claves del registro.

Alternate Data Streams

Alternate Data Stream (ADS) es una característica de NTFS en principio diseñada para almacenar información sobre un ficheros sin tener que utilizar otros ficheros. Estos metadatos se escriben en el disco duro a continuación de los datos del fichero.
Si miramos un registro de la Master File Table (MFT) de NTFS, se puede ver la diferencia entre un fichero sin ADS y uno con ADS.
Registro de fichero en MFT:
Screen Shot 2015-08-12 at 10.44.54 PM
Registro de fichero en MFT con ADS:
Screen Shot 2015-08-12 at 10.44.38 PM

Images extraídas del documento: Alternate Data Streams: Out of the Shadows and into the Light de Ryan L. Means (2003).

Como se puede ver, en el registro con ADS aparece un segundo stream de datos después de los datos del fichero.
En el pasado se han utilizado ADS para ocultar malware y ejecutarlo desde ahí.
Con la llegada de Windows 7, Microsoft deshabilitó la posibilidad de ejecutar directamente nada que estuviera almacenado en ADS. Aun así, hay formas indirectas de ejecutar estos binarios.

Infección de ficheros

Una de las cosas que me lleva a escribir esta serie de artículos es la siguiente hipótesis: ¿y si en lugar de añadir un nuevo binario a cualquiera de los sistemas de persistencia infectamos un binario que ya esté en uno de estos mecanismos?
Es decir, aprovechando la estructura de los ficheros PE, ¿puedo inyectar mi programa en un ejecutable que previamente he detectado que persiste?
La respuesta es, en principio, que sí, puedo. La realidad es que no sé cual será la dificultad de realizar esto en sistemas operativos modernos, pero lo que sí que sé es que en muchos proyectos de “compromise discovery” * pasaría desapercibido.

Objetivos

Este post es sólo la introducción a un viaje en el que sólo he empezado a dar los primeros pasos en el que voy a tratar de replicar las técnicas comentadas en el post y del que espero volver con los siguientes resultados:

  • Aumentar mi conocimiento de inyección de procesos en Windows.
  • Mejorar y terminar de comprender cómo funcionan el hooking de funciones en Windows.
  • Conocimiento profundo de los diferentes métodos de persistencia en sistemas Windows.
  • Comprender el sistema de ficheros NTFS.
  • Ver como funciona la infección de ficheros a nivel práctico.
  • Aplicación de las técnicas clásicas de infección en un entorno moderno.
  • Profundizar en la API de Windows.

¿Qué puede esperar el lector?

  • Un montón de referencias y enlaces a recursos que utilice.
  • Pruebas de concepto (al menos de las partes relevantes).
  • Los resultados explicados tan bien como pueda.
  • Largas esperas y poca periodicidad :P.

Mientras sigo pasito a pasito, ¿se os ocurre alguna otra técnica o forma de hacer que un bicho pase desapercibido y se me haya pasado?

* Compromise discovery es el nombre que reciben los proyectos en los que un equipo con conocimiento en respuesta ante incidentes se presenta en una compañía, toma un “snapshot” de los sistemas de la compañía y analiza esa información en busca de evidencias de compromiso.

  • Acerca de
  • Últimas entradas
Ernesto Corral
Ernesto Corral
Profesional de la seguridad de perfil técnico. Principalmente interesado en respuesta ante incidentes, malware e ingeniería inversa.
Me encanta participar en CTFs y últimamente estoy cacharreando con temas de hardware.

Ver descripción | Ver perfil en LinkedIn
Ernesto Corral
Últimas entradas de Ernesto Corral (ver todo)
  • Introducción a Frida - 1 junio, 2016
  • De Charleta: “Android Application Function Hooking with Xposed” (Jamie Geiger) - 23 mayo, 2016
  • De Charleta: “Introducing the RITA VM: Hunting for bad guys on your network for free with math” (John Strand, Derek Banks, Joff Thyer, and Brian Furhman) - 9 mayo, 2016

¿Nos ayudas a compartir?

  • Compartir en X (Se abre en una ventana nueva) X
  • Compartir en LinkedIn (Se abre en una ventana nueva) LinkedIn
  • Comparte en Facebook (Se abre en una ventana nueva) Facebook
  • Haz clic en Pinterest (Se abre en una ventana nueva) Pinterest
  • Compartir en Reddit (Se abre en una ventana nueva) Reddit
  • Enviar un enlace a un amigo por correo electrónico (Se abre en una ventana nueva) Correo electrónico

Relacionado

Etiquetas: Binarios, Malware, NTFS, PE
Compartir esta entrada
  • Compartir en WhatsApp
https://www.securityinside.info/wp-content/uploads/04.png 321 845 Ernesto Corral https://securityinside.info/wp-content/uploads/logo.png Ernesto Corral2015-08-13 03:23:072024-11-06 12:22:18Amenaza Silenciosa I
Quizás te interese
Ofuscación de malware en macros de MS Office Ofuscación de malware en macros de MS Office
de-charleta De Charleta: «A Year in the Backdoor Factory» (Joshua Pitts)
IDGSecurity SecurityInside Live: IDGSecurity 2018
Amenaza Silenciosa II – Inyección de DLL
hacking-team Hacking Team: Pwned
La webcam no deja de mirarme… ¿la tapo?
de-charleta De Charleta: “License to Kill: Malware Hunting with the Sysinternals Tools” (Mark Russinovich)
de-charleta De Charleta: «Writing Bad @$$ Malware For OS X» (Patrick Wardle)

Categorías

  • Anonimato (18)
  • Auditoría (30)
  • Charlas y ponencias (68)
  • Cloud Security (9)
  • Control de acceso (29)
  • Desarrollo (32)
  • Dispositivos (19)
  • Eventos (25)
  • Exploiting (6)
  • Forense (6)
  • Formación (39)
  • Gobierno IT (36)
  • Hacking (20)
  • Herramientas (26)
  • I+D (13)
  • Ingeniería inversa (6)
  • ISO 27001 (10)
  • Live (20)
  • Malware (22)
  • Noticias (54)
  • Pentesting (12)
  • Privacidad (39)
  • Sin categoría (1)
  • Vulnerabilidades (24)

Archivo

  • mayo 2026
  • abril 2025
  • septiembre 2024
  • junio 2024
  • abril 2024
  • marzo 2024
  • enero 2021
  • septiembre 2020
  • abril 2020
  • febrero 2020
  • enero 2020
  • octubre 2019
  • septiembre 2019
  • julio 2019
  • junio 2019
  • mayo 2019
  • abril 2019
  • febrero 2019
  • enero 2019
  • octubre 2018
  • agosto 2018
  • mayo 2018
  • abril 2018
  • marzo 2018
  • febrero 2018
  • diciembre 2017
  • noviembre 2017
  • octubre 2017
  • septiembre 2017
  • julio 2017
  • junio 2017
  • mayo 2017
  • abril 2017
  • marzo 2017
  • febrero 2017
  • enero 2017
  • diciembre 2016
  • noviembre 2016
  • octubre 2016
  • septiembre 2016
  • julio 2016
  • junio 2016
  • mayo 2016
  • abril 2016
  • marzo 2016
  • febrero 2016
  • enero 2016
  • diciembre 2015
  • noviembre 2015
  • octubre 2015
  • septiembre 2015
  • agosto 2015
  • julio 2015
  • junio 2015
  • mayo 2015
  • abril 2015
  • marzo 2015
[2015 - 2024] - SecurityInside.info - Segura gracias a Defender Eye
  • Link to X
  • Link to Rss this site
  • Link to Youtube
Link to: Auditoría de código: algo necesario pero que nunca hacemos (parte 1) Link to: Auditoría de código: algo necesario pero que nunca hacemos (parte 1) Auditoría de código: algo necesario pero que nunca hacemos (parte 1)auditoria-de-codigo Link to: Sigue #Windows10 heredando el mismo REGEDIT ¿? Link to: Sigue #Windows10 heredando el mismo REGEDIT ¿? Sigue #Windows10 heredando el mismo REGEDIT ¿?
Desplazarse hacia arriba Desplazarse hacia arriba Desplazarse hacia arriba