Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Análisis dinámico de DLLs maliciosas

  • 2 Respuestas
  • 2495 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Expermicid

  • *
  • Underc0der
  • Mensajes: 457
  • Actividad:
    0%
  • Reputación 0
  • _-Expermicid-_
    • Ver Perfil
  • Skype: expermicid.xd
« en: Agosto 30, 2014, 11:05:24 am »
Una DLL (Dynamic Library Link) o biblioteca de enlace dinámico, es un archivo que contiene bloques de código (funciones o métodos) que se ejecutan por solicitud de algún programa, es en ese momento cuando se carga en memoria.

Diferentes programas pueden utilizar simultáneamente una misma DLL, debido a su esquema modular. Por ello, la desinstalación de un programa podría afectar a otras aplicaciones que hicieran uso de bibliotecas compartidas.


El archivo DLL utilizado para este análisis, fue creado como prueba de concepto (PoC) con algunas acciones maliciosas que son comunes. A continuación, se muestra que el archivo "malicious.dll", efectivamente corresponde a una biblioteca de enlace dinámico con ayuda del comando "file" para Windows.


Con la herramienta "CFF Explorer" se puede obtener información importante como: el lenguaje de programación con el cual fue creado el archivo, su tamaño en bytes, sus firmas md5/sha1, el nombre original del archivo, entre otros.

Para el archivo "malicious.dll" se muestra la siguiente información:


Es recomendable que, así como a los archivos ejecutables sospechosos, a las DLLs maliciosas también se les realice un análisis de cadenas, con el fin obtener más información. En este caso, utilizando "BinText", se puede apreciar que manda a llamar la interfaz de línea de comandos de Windows con el argumento "C:\WINDOWS\system32\calc.exe", lo cual es un indicio de que la DLL contiene código que ejecutará el binario de la calculadora de Windows.


Al desensamblar la DLL con "IDA Pro", se puede corroborar que, una vez que se inyecta en un proceso, se ejecuta "calc.exe". La llamada al sistema "ShellExecuteA" lleva a cabo una operación en un archivo específico, en este caso, abrir la calculadora de Windows.


A diferencia de los programas ejecutables, no se puede hacer doble clic sobre los archivos DLL para correrlos, puesto que no son una entidad autónoma, por lo cual requieren de un proceso para operar. Los sistemas operativos Windows cuentan con una utilería llamada "rundll32.exe" (versión de 32 bits) para ejecutar archivos DLL. Sin embargo, las acciones maliciosas serán atribuidas al proceso "rundll32.exe", por lo que, si se utiliza "ProcessMonitor" para dar seguimiento a las acciones de la DLL maliciosa, el filtro por nombre del proceso deberá ser para "rundll32.exe".

A continuación se muestra el árbol de procesos:


También, puede presentarse un problema al correr una DLL con el comando "rundll32.exe", si es que la biblioteca de enlace dinámico valida el proceso en cual debe ser inyectada. Una solución podría ser renombrar la utilería "rundll32.exe" por el nombre del proceso objetivo, lo cual implicaría hacer una inspección más a fondo en su código ensamblador.

La inyección de DLLs, es la inserción de código de las bibliotecas de enlace dinámico en el espacio de direcciones de algún proceso, para que se pueda ejecutar. En nuestro laboratorio, utilizaremos la herramienta "DLL_Injector.exe" programada en Visual Basic y la herramienta "DLL_Shot.exe" programada en C#, ambas desarrollada por el equipo de análisis de malware.

·         DLL_Injector: herramienta de interfaz gráfica para inyectar una o varias DLLs en un proceso.


·         DLL_Shot: herramienta de interfaz gráfica para identificar las DLLs activas inyectadas tanto en el proceso del malware como en otros procesos objetivo. Lo anterior, es mediante la comparación de las bibliotecas de enlace dinámico activas en el sistema, antes y después de la ejecución de malware o inyección de DLLs.


Para analizar la DLL iniciamos las herramientas de monitoreo: "Process Explorer", "TCPView", "Regshot", "DLL_Injector" y "DLL_Shot".


1 ) Ejecutar el programa en el cual se inyectará la DLL maliciosa, por ejemplo en el "Bloc de notas"


2 ) Listar los procesos en el sistema, desde la herramienta "DLL_Injector", con el botón "List" y seleccionar el proceso objetivo


3 ) Buscar la DLL maliciosa con el botón "Browse ..."


4 ) Tomamos el primer shot, tanto con la herramienta "Regshot" como con la herramienta "DLL_Shot"


5 ) Inyectar la DLL en el proceso objetivo con el botón "Inject"


6 ) Observar la actividad de los procesos


7 ) Observar la actividad de red


8 ) Tomar el segundo shot de las herramientas del paso 4


9 ) Comparar resultados


 10 ) Analizar resultados

- En el paso 6, la actividad de procesos muestra que a partir del proceso "notepad.exe" troyanizado se levanta el proceso "calc.exe".

- En el paso 7, el proceso troyanizado abre el "puerto local 50500" en modo escucha, lo cual es un indicio de "Backdoor" (puerta trasera).

- En el paso 9, la actividad en el sistema de archivos fue la creación de una carpeta y un archivo con extensión "txt". En cuanto a las DLLs, se aprecia que el archivo "malicious.dll" se inyectó correctamente en el proceso "notepad.exe" y también se muestra la DLL "netcfgx.dll" cargada por el proceso "svchost.exe", la cual tiene como descripción Network Configuration Objects (objetos de configuración de red), que involucra protocolos de red y es compartida por varias aplicaciones de Windows.

Finalmente, una forma de verificar si el puerto local 50500, que fue abierto en modo escucha, tiene un shell asociado, es utilizando desde otro equipo el comando "telnet". A continuación se muestra la obtención del "cmd" de Windows:


Se establece una conexión de red al puerto 50500 desde un equipo Linux y otra instancia del proceso troyanizado se queda en modo escucha:


Fuente: malware.unam

Saludos

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5470
  • Actividad:
    16.67%
  • Reputación 35
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« Respuesta #1 en: Agosto 30, 2014, 12:55:25 pm »
Excelente aporte bro!!
Muy bueno!!

Saludos!
ANTRAX


Desconectado Baxtar

  • *
  • Underc0der
  • Mensajes: 43
  • Actividad:
    0%
  • Reputación 0
  • NEVER ITS
    • Ver Perfil
    • Email
« Respuesta #2 en: Mayo 14, 2015, 03:07:03 am »
que maravilla probare ahoirta con un proceso poco raro llamado YTDOWNLOADER que se me infecto con un addons de mozilla

 

¿Te gustó el post? COMPARTILO!



Análisis de Malware: Enfoque y caso práctico | Seguridad Informática

Iniciado por Expermicid

Respuestas: 2
Vistas: 3831
Último mensaje Agosto 21, 2014, 10:43:22 pm
por WhiZ
Análisis de Malware(Dynamic Analysis) [Parte 2]

Iniciado por fudmario

Respuestas: 1
Vistas: 3127
Último mensaje Febrero 04, 2014, 01:11:24 pm
por hikari
Análisis de Malware(Static Analysis) [Parte 1]

Iniciado por fudmario

Respuestas: 4
Vistas: 3655
Último mensaje Marzo 20, 2014, 02:13:04 pm
por pimeo
Análisis de un malware que detecta el entorno virtual

Iniciado por Gabriela

Respuestas: 3
Vistas: 2907
Último mensaje Agosto 18, 2016, 12:08:20 pm
por Unname
Ransomware: Análisis de Malware by fudmario

Iniciado por fudmario

Respuestas: 1
Vistas: 2713
Último mensaje Junio 29, 2014, 08:39:24 pm
por blackdrake