comment
IRC Chat
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.

Como programar un troyano?

  • 1 Respuestas
  • 1616 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: 3150
Último mensaje Junio 07, 2012, 02:52:34 pm
por Sanko
Usar memoria externa como memoria interna.

Iniciado por CthulhuRise97

Respuestas: 4
Vistas: 2400
Último mensaje Abril 30, 2018, 05:35:43 pm
por NERV0
Cómo utilizo un script en una sala de ares sin tener sala?

Iniciado por Narciso

Respuestas: 3
Vistas: 3788
Último mensaje Junio 28, 2015, 05:16:59 pm
por Narciso
Cómo uso la "/" para hacer un select en una tabla

Iniciado por tetano32

Respuestas: 3
Vistas: 1037
Último mensaje Diciembre 20, 2017, 04:41:12 pm
por tetano32
Como obtener informacion de la DB "mysql" con SQLMap

Iniciado por DirectxTro

Respuestas: 3
Vistas: 1417
Último mensaje Marzo 09, 2016, 08:01:03 pm
por seth