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

Como programar un troyano?

  • 1 Respuestas
  • 1737 Vistas

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado FMtH

  • *
  • Underc0der
  • Mensajes: 22
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« en: Noviembre 16, 2016, 02:13:57 am »
A la hora de programar un RAT como un troyano o una botnet (para windows), es impresindible usar el API de Windows? Es decir..
Si el WinAPI no existiera, no habria otra forma de acceder a los recursos del SO directamente?

Tambien creo haber escuchado que, actualmente al tirar mucho del WinAPI o al usar winsock, puede que nuestro malware sea mas detectado? Corrijanme porfavor.

Otra duda que tengo es, se puede crear el GUI de nuestro programa en el entorno de Visual Studio .NET(en C++) y usar las funciones de WinAPI para las demas cosas? como por ej. agregar al registro, crear threads, manipular procesos etc..
O si voy a usar WinAPI para lo dicho, tambien debo usarlo para crear mi GUI?

Y por ultimo y no molesto mas, que opinan de delphi para la programacion de RATs en la actualidad?


Gracias desde ya, saludos.
« Última modificación: Noviembre 16, 2016, 02:16:29 am por FMtH »

Desconectado grep

  • *
  • Underc0der
  • Mensajes: 178
  • Actividad:
    0%
  • Reputación 3
    • Ver Perfil
    • Grep's personal site
« Respuesta #1 en: Noviembre 16, 2016, 11:20:12 am »
A la hora de programar un RAT como un troyano o una botnet (para windows), es impresindible usar el API de Windows? Es decir..
Si el WinAPI no existiera, no habria otra forma de acceder a los recursos del SO directamente?

Si el WinAPI no existiera, no habria otra forma de acceder a los recursos del SO directamente.

También se accede a la WinAPI (de forma indirecta) cuando utilizas un intérprete, una librería, una máquina virtual u otro programa.

Tambien creo haber escuchado que, actualmente al tirar mucho del WinAPI o al usar winsock, puede que nuestro malware sea mas detectado? Corrijanme porfavor.

Los malwares suelen ser programados en C++ y en ASM. No solo por utilizar la WinAPI tu programa puede ser detectado porque, si fuera así, todo sería malware para un software de detección.

Otra duda que tengo es, se puede crear el GUI de nuestro programa en el entorno de Visual Studio .NET(en C++) y usar las funciones de WinAPI para las demas cosas? como por ej. agregar al registro, crear threads, manipular procesos etc..
O si voy a usar WinAPI para lo dicho, tambien debo usarlo para crear mi GUI?

Esto sirve para complementar la duda que tenías sobre los formularios en Visual Studio para C++
(https://underc0de.org/foro/dudas-generales-121/duda-sobre-api-de-windows/).

* Para usar la WinAPI de forma directa necesitas utilizar código nativo (unmanaged code).
* Para crear ventanas con el Designer de Visual Studio necesitas usar el Framework .NET (managed code).

Para unir esos dos mundos se ha creado "C++/CLI", una especificación creada por Microsoft para permitir la interoperabilidad con el código nativo. "Native and .NET Interoperability" es en donde coexisten las estructuras unmanaged y managed en el mismo assembly (este assembly se conoce como un "Mixed assembly", un componente que puede llamar y ser llamado por otro componente .NET mientras mantiene la compatibilidad con componentes unmanaged). Como el resultado final es un assembly, entonces el programa generado depende del Framework .NET.
Native and .NET Interoperability: https://msdn.microsoft.com/en-us/library/zbz07712.aspx
Mixed (Native and Managed) Assemblies: https://msdn.microsoft.com/en-us/library/x0w2664k.aspx

Antes de seguir, quiero aclarar que se puede crear un programa con varios módulos. Un módulo no es una DLL o dependencia, es una unidad que se puede combinar para generar un assembly (este assembly puede ser la aplicación o una librería).

Un módulo puede compilarse con la opción /clr para permitir que el mismo utilice las características del Framework .NET y mantener la compatibilidad con el resto de la aplicación.
/clr (Common Language Runtime Compilation): https://msdn.microsoft.com/en-us/library/k8d11d4s.aspx

Visual C++ soporta la generación de tres tipos de assemblies con la opción /clr:
* Mixed
* Pure
* Safe
Puedes ver la comparación en los siguientes enlaces:
Mixed, Pure, and Verifiable Feature Comparison (C++/CLI): https://msdn.microsoft.com/en-us/library/ms173252.aspx
Pure and Verifiable Code (C++/CLI): https://msdn.microsoft.com/en-us/library/85344whh.aspx

Las funcionalidades de interoperabilidad necesarias para llamar código nativo desde unmanaged code las provee el CLR (la máquina virtual del Framework .NET) y se llaman "Platform Invocation Services" o PInvoke. Para el caso de Visual C++, se puede utilizar C++ Interop (Implicit PInvoke) o DllImport/DllExport Attribute (Explicit PInvoke).
Calling Native Functions from Managed Code: https://msdn.microsoft.com/en-us/library/ms235282.aspx
Using C++ Interop (Implicit PInvoke): https://msdn.microsoft.com/en-us/library/2x8kf7zx.aspx
Using Explicit PInvoke in C++ (DllImport Attribute): https://msdn.microsoft.com/en-us/library/eyzhw3s8.aspx

Finalmente quiero contarte que existen varias precauciones que debes tener en cuenta al desarrollar este tipo de soluciones y que la comunidad de desarrolladores de Visual C++ generalmente no utiliza C++/CLI.

que opinan de delphi para la programacion de RATs en la actualidad?

Si Delphi te brinda todo lo necesario para crear el programa que quieres crear, entonces no hay problema.
https://github.com/DoddyHackman

Saludos
« Última modificación: Noviembre 16, 2016, 11:22:07 am por grep »

 

¿Te gustó el post? COMPARTILO!



¿Como fundear un "exe"? dejarle sin avs

Iniciado por iquitoshack

Respuestas: 5
Vistas: 3333
Último mensaje Junio 07, 2012, 02:52:34 pm
por Sanko
Como subir un proyecto de angular dos a angular?

Iniciado por Dani54

Respuestas: 1
Vistas: 387
Último mensaje Diciembre 21, 2018, 06:09:49 pm
por noxonsoftwares
Usar memoria externa como memoria interna.

Iniciado por CthulhuRise97

Respuestas: 4
Vistas: 2605
Último mensaje Abril 30, 2018, 05:35:43 pm
por NERV0
[SOLUCIONADO] ¿Como usar los exploits de Joomla con una página que usa joomla?

Iniciado por Cruef

Respuestas: 5
Vistas: 2758
Último mensaje Febrero 07, 2013, 07:46:41 pm
por Sanko
Cómo uso la "/" para hacer un select en una tabla

Iniciado por tetano32

Respuestas: 3
Vistas: 1182
Último mensaje Diciembre 20, 2017, 04:41:12 pm
por tetano32