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

Ocultar malware usando ataques de precarga de dll

  • 2 Respuestas
  • 1854 Vistas

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

Conectado blackdrake

  • *
  • Moderator
  • Mensajes: 1868
  • Actividad:
    15%
  • Reputación 14
    • Ver Perfil
« en: Agosto 09, 2014, 11:04:23 am »

Esta prueba de concepto que voy a explicar hoy, no es para nada algo nuevo, hace tiempo que se conoce y, que además se ha usado para atacar tanto empresas como usuarios. Es un tipo de ataque que, normalmente pasa bastante desapercibido. Ya que, no es las primeras cosas que se pone uno a investigar. Es por eso que, bien usado puede ser un quebradero de cabeza para un analista forense que le toque investigar el caso.

¿Cómo se da este fallo?

Ocurre cuando un programa hace llamadas a DLL sin definir bien el PATH o son llamadas que intenta acceder a PATHS que un usuario malintencionado podría modificar.

¿Qué es la precarga insegura de DLL?

Pues según Microsoft, la precarga insegura de DLL es:

Citar
“Cuando una aplicación carga dinámicamente una biblioteca de vínculos dinámicos (DLL) sin especificar una ruta de acceso completa, Windows intenta encontrar la DLL buscando en un conjunto bien definido de directorios. Si un atacante obtuviera el control de uno de los directorios, podría obligar a que la aplicación cargara una copia malintencionada de la DLL en lugar de la DLL que se esperaba. Estos ataques, conocidos como “ataques de precarga de DLL”, son habituales en todos los sistemas operativos que admiten la carga dinámica de bibliotecas DLL compartidas. El efecto de tales ataques podría ser que un atacante ejecutara código en el contexto del usuario que ejecuta la aplicación.”

¿Cómo detectar una llamada insegura de DLL?

Para poder encontrar este fallo en un programa, basta con usar la herramienta procmon de Windows Sysinternals: You are not allowed to view links. Register or Login
Una vez descargada vamos a realizar la prueba con pidgin. Para ello abrimos procmon y filtramos por el proceso “pidgin”:


Ejecutamos pidgin y comprobamos que realmente aparecen las diferentes llamadas que hace pidgin al ejecutarse. Una vez ejecutado volvemos a filtrar, esta vez buscaremos por el resultado “PATH NOT FOUND” y filtraremos también el path por todo aquel string que contenga la palabra “dll”.


De esta manera deberán aparecer todas las llamadas a DLLs que han sido realizadas a paths inexistentes:


Ahora solo falta crear el directorio y plantar la DLL para que pidgin la ejecute y de esta manera poder plantar un programa malicioso de manera “silenciosa”.

PoC

Para las siguientes PoC he usado Dropbox y pidgin como un ejemplo de cómo usando estas llamadas inseguras he podido ocultar un “código malicioso” dentro de una DLL el cual es llamado cada vez que se ejecuta uno de estos 2 programas. Los pasos son los siguientes:

Dropbox
  • Descargar la siguiente dll: You are not allowed to view links. Register or Login
  • Poner dentro de %APPDATA%\Dropbox\bin con el nombre ntmarta.dll
  • Ejecutar Dropbox

Pidgin*
  • Crear el siguiente Path %USERPROFILE%\.gtk-2.0\2.10.0\engines\
  • Descargar la siguiente dll: You are not allowed to view links. Register or Login
  • Copiar la dll dentro de la carpeta que hemos creado en el paso 1
  • Cambiar el nombre de la DLL a libwimp.dll
  • Ejecutar Pidgin

*Nota: Cabe destacar que el problema de pidgin viene por el uso de gtk y no del mismo pidgin.

Y aquí las imágenes de la PoC


Y una vez ejecutemos pidgin veremos la siguiente pantalla:


Lo mismo pasa con dropbox:



Como se puede observar el fallo se puede ejecutar dentro del contexto del usuario y en el caso de Dropbox, esta DLL se ejecutaría cada vez que se iniciara el pc debido a que Dropbox crea un registro para que se ejecute en cada inicio del ordenador.

Esto desde el punto forense podría implicar complicaciones a la hora de encontrar el malware debido a que de entrada, el programa que llama a esta DLL es un programa benigno instalado por el mismo usuario y las librerías que llama están dentro de su path… por lo que a primera vista no debería parecer una llamada “maliciosa”…

Fuente: SBD



Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5267
  • Actividad:
    48.33%
  • Reputación 26
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« Respuesta #1 en: Agosto 09, 2014, 01:33:29 pm »
Excelente aporte bro!!!!


Desconectado Baku

  • *
  • Underc0der
  • Mensajes: 64
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
  • Skype: Baku.indetectables
« Respuesta #2 en: Agosto 09, 2014, 10:20:30 pm »
Genial, que buen aporte compañero!
Saludos
Huelo a VERDE y no es Marihuana ;)

 

¿Te gustó el post? COMPARTILO!



Malware se propaga mediante "etiquetas" en Facebook

Iniciado por CodePunisher

Respuestas: 8
Vistas: 3643
Último mensaje Julio 02, 2013, 01:31:35 pm
por elshotta
Análisis de Malware: Enfoque y caso práctico | Seguridad Informática

Iniciado por Expermicid

Respuestas: 2
Vistas: 2791
Último mensaje Agosto 21, 2014, 10:43:22 pm
por WhiZ
[WinLockLess] Protege tu inicio contra el Malware en Windows.

Iniciado por Baku

Respuestas: 7
Vistas: 3662
Último mensaje Octubre 23, 2014, 05:50:24 am
por Gabriela
Archivos CPL: mecanismo para propagar malware

Iniciado por Gabriela

Respuestas: 4
Vistas: 2800
Último mensaje Agosto 17, 2016, 02:54:49 pm
por circunsxik
Análisis de Malware(Dynamic Analysis) [Parte 2]

Iniciado por fudmario

Respuestas: 1
Vistas: 2459
Último mensaje Febrero 04, 2014, 01:11:24 pm
por hikari