Iniciar aplicacion con windows usando msn messenger

Iniciado por bizco, 5 Septiembre 2010, 03:23 AM

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

bizco

Solo voy a explicar el como ya que es bastante sencillo, de esta forma no hay que tocar el registro siendo mas complicado que salte el antivirus. esta claro que para que funcione la "victima" tiene que tener instalado msn pero el metodo puede aplicarse con algunas modificaciones a cualquier otra aplicacion.

cosas a tener en cuenta:

Nuestra aplicacion tiene que ser una dll, puede luego soltar un regalo o ejecutar el codigo necesario desde el contexto de msn, esta opcion es mas segura por las reglas que puedan tener los usuarios para msn.

La dll tiene que exportar en este caso esta funcion exactamente:

BOOL  IsThemeActive();

esta funcion sera un wrapper de la original en uxtheme.dll.

Nuestra dll tiene que llamarse uxtheme.dll y solo tiene que ser copiada en la carpeta donde esta instalado msn.



Karcrack

Que gran tema el DLL Hijacking :)
Pero para facilitar las cosas se deben buscar programas que importen una DLL unicamente por una funcion... si no habria que cargar la DLL original (usando la ruta completa) y parchear la IAT del proceso y tachan! ya te has cargado de forma legitima :)

bizco

puedes escribir un wrapper completo de otra dll, pero eso ya cada cual lo adapte a sus necesidades. realmente es una muy buena alternativa, ya que podemos leer de la rama de inicio del registro que programas se inician y escojer alguno aleatorio.

Karcrack

Cita de: ctlon en  5 Septiembre 2010, 19:05 PM
puedes escribir un wrapper completo de otra dll, pero eso ya cada cual lo adapte a sus necesidades. realmente es una muy buena alternativa, ya que podemos leer de la rama de inicio del registro que programas se inician y escojer alguno aleatorio.
Puff... un wrapper completo... demasiado trabajo, mas facil cargar la DLL original y parchear la IAT del proceso "secuestrado"

Podrias leer todos los ejecutables que se ejecutan con el inicio de W$, elegir uno en el que tengas permiso de escritura... Leer todas sus importaciones de la IAT, y completar el Wrapper reemplazando Libreria y nombre de funcion :D, por supuesto habria que buscar librerias de las que solo se importe una funcion... en otro caso la cosa se compliiiica...

Saludos :D

bizco

#4
o añadirle una funcion propia y asi aseguras la dependencia de tu dll a ese programa, eso ya a gusto del consumidor :).

ejemplo simple:


#include "main.h"
#include <Uxtheme.h>

EXTERN_C __declspec(dllexport) BOOL IsThemeActive()
{
   return IsThemeActive();
}

BOOL WINAPI DllMain(HINSTANCE h, DWORD Reason, LPVOID Reserved)
{
   return TRUE;
}



es erroneo pero la idea se entiende.

Zzombi


Jaixon Jax

#6
  Eres un As ctlon si funciona y lo mejor de todo es que mi proyecto principal es una dll    :xD  ....

 En mi caso le agregue un Sleep antes de crear el mutex de identificacion, me interesa que mi dll se cargue en otros procesos pero si no se carga este es el ultimo recurso me cargo o me cargo .......

 +10 de karma XD

  Otra cosa es que: a no ser que se haya hecho una instalacion personalizada de messenger la mayoria de las veces el directorio esta en ProgramFiles por lo que se necesitaria privilegios para copiarse alli y habria que verificar los privilegios antes de intentarlo para no disparar el UAC ..... pero eso ya es carpinteria