Foro de elhacker.net

Seguridad Informática => Análisis y Diseño de Malware => Mensaje iniciado por: Panic0 en 14 Agosto 2020, 21:56 pm



Título: Malwares
Publicado por: Panic0 en 14 Agosto 2020, 21:56 pm
Como puedo aprender de la creacion de malwares,Hace poco aprendi a usar python y el tema que me interesa es la creacion de malwares.Si alguien me puede decir que es lo que tengo que saber para lograr hacer un mini malware (de cualquier tipo).Seria genial

Gracias


Título: Re: Malwares
Publicado por: @XSStringManolo en 14 Agosto 2020, 22:15 pm
Principalmente sockets. Te permiten comunicarte a través de internet. Después le mandas texto por la red y con condicionales eliges que acción realizar en base a cada comando.


Título: Re: Malwares
Publicado por: Panic0 en 14 Agosto 2020, 22:35 pm
Principalmente sockets. Te permiten comunicarte a través de internet. Después le mandas texto por la red y con condicionales eliges que acción realizar en base a cada comando.
Suena jodido :/


Título: Re: Malwares
Publicado por: @XSStringManolo en 15 Agosto 2020, 00:25 am
Una función para enviar un texto son 10 líneas de código. Y para recibirlo y procesarlo 13-14. En Python es muy muy sencillo. Después solo pones condicionales y lo que quieras hacer.

Necesitas hacer 1 o 2 programas.
En el caso de hacer 2 programas, 1 se ejecuta en la máquina "zombie" y otro en tu máquina (o una bajo tu control), para darle órdenes.

Tienes 2 tipos de conexión, directa y reversa. La directa requiere que el router del zombie tenga los puertos abiertos.
La reversa eres tú quien abre los puertos para habilitar al zombie conectarse a ti.

Si haces un solo programa, debes hacer un generador que crea los 2 programas cliente y servidor.

En la práctica los pasos que te recomiendo son:
- Programas un servidor con sockets y lo bindeas a un puerto local, por ejemplo 127.0.0.1:8080
  + Puedes probar con el propio navegador de internet (chrome, mozilla, edge, ...) si el servidor funciona visitando la dirección 127.0.0.1:8080/hola
  + Debes poder leer "GET /hola ..." al imprimir el texto recivido por el servidor.
  + La misión del servidor es recibir conexiones de zombies/clientes para poder responderle con comandos como: Enviame el nombre de tu sistema operativo. Ejecuta este programa que te mando.

- Programas el cliente. Su función es remplazar el navegador, de forma que puedas automatizar el envio de órdenes y ejecutar los comandos o acciones que envie el servidor. O si quieres algo super sencillo puedes olvidarte de programar el cliente y usar el navegador directamente para enviar órdenes.

- Una vez funciona en local tienes que remplazar la ip local 127.0.0.1:8080 por tu ip real y el puerto, para poder recibir conexiones de equipos fuera de tu red local (internet)
  + Hay un problema, las ip cambian, no siempre te dan la misma. Es decir, si pones tu ip en el código, un zombie lo usa y te cambian de ip jamás te llegará la conexión. Para solucionar esto debes usar un servicio DDNS. Te dan un prpgrama y un dominio. El dominio puede ser por ejemplo: mi-malware.com.tk entonces remplazas tu ip por el dominio en el código. El programa que te dan sirve para que el DDNS sepa cual es tu ip para cuando te la cambien resolver el dominio mi-malware.com.tk con tu nueva ip.
En el código usarías mi-malware.com.tk:8080 en lugar de 174.86.56.47:8080 por ejemplo.

- Lo siguiente es ir al router e indicar a que equipo de la red interna (tu pc) se le enviarán las órdenes mediante el puerto 8080.

- Una vez está esto listo, debes ser capaz de recibir la conexión y tú de enviarle texto al cliente de tu red.

- Una vez todo funcionando debes programar lo que quieres que haga el zombie. Descargar/enviar archivos, sacar capturas de pantalla, registrar las teclas, obtener el historial del navegador... Lo que consideres.

- El siguiente paso ya sería el tema de ocultación, proxies, automatización, técnicas antidebugging, escape de sandbox, persistencia, exfiltración con inyecciones en procesos, soporte multiplat... Esto ya es más avanzado.


Título: Re: Malwares
Publicado por: Panic0 en 16 Agosto 2020, 00:30 am
Una función para enviar un texto son 10 líneas de código. Y para recibirlo y procesarlo 13-14. En Python es muy muy sencillo. Después solo pones condicionales y lo que quieras hacer.

Necesitas hacer 1 o 2 programas.
En el caso de hacer 2 programas, 1 se ejecuta en la máquina "zombie" y otro en tu máquina (o una bajo tu control), para darle órdenes.

Tienes 2 tipos de conexión, directa y reversa. La directa requiere que el router del zombie tenga los puertos abiertos.
La reversa eres tú quien abre los puertos para habilitar al zombie conectarse a ti.

Si haces un solo programa, debes hacer un generador que crea los 2 programas cliente y servidor.

En la práctica los pasos que te recomiendo son:
- Programas un servidor con sockets y lo bindeas a un puerto local, por ejemplo 127.0.0.1:8080
  + Puedes probar con el propio navegador de internet (chrome, mozilla, edge, ...) si el servidor funciona visitando la dirección 127.0.0.1:8080/hola
  + Debes poder leer "GET /hola ..." al imprimir el texto recivido por el servidor.
  + La misión del servidor es recibir conexiones de zombies/clientes para poder responderle con comandos como: Enviame el nombre de tu sistema operativo. Ejecuta este programa que te mando.

- Programas el cliente. Su función es remplazar el navegador, de forma que puedas automatizar el envio de órdenes y ejecutar los comandos o acciones que envie el servidor. O si quieres algo super sencillo puedes olvidarte de programar el cliente y usar el navegador directamente para enviar órdenes.

- Una vez funciona en local tienes que remplazar la ip local 127.0.0.1:8080 por tu ip real y el puerto, para poder recibir conexiones de equipos fuera de tu red local (internet)
  + Hay un problema, las ip cambian, no siempre te dan la misma. Es decir, si pones tu ip en el código, un zombie lo usa y te cambian de ip jamás te llegará la conexión. Para solucionar esto debes usar un servicio DDNS. Te dan un prpgrama y un dominio. El dominio puede ser por ejemplo: mi-malware.com.tk entonces remplazas tu ip por el dominio en el código. El programa que te dan sirve para que el DDNS sepa cual es tu ip para cuando te la cambien resolver el dominio mi-malware.com.tk con tu nueva ip.
En el código usarías mi-malware.com.tk:8080 en lugar de 174.86.56.47:8080 por ejemplo.

- Lo siguiente es ir al router e indicar a que equipo de la red interna (tu pc) se le enviarán las órdenes mediante el puerto 8080.

- Una vez está esto listo, debes ser capaz de recibir la conexión y tú de enviarle texto al cliente de tu red.

- Una vez todo funcionando debes programar lo que quieres que haga el zombie. Descargar/enviar archivos, sacar capturas de pantalla, registrar las teclas, obtener el historial del navegador... Lo que consideres.

- El siguiente paso ya sería el tema de ocultación, proxies, automatización, técnicas antidebugging, escape de sandbox, persistencia, exfiltración con inyecciones en procesos, soporte multiplat... Esto ya es más avanzado.

Muchas gracias amigo


Título: Re: Malwares
Publicado por: jusecoco en 5 Septiembre 2020, 06:08 am
hola, tengo la misma pregunta, les agradeceria que me enviaran un ejemplo para usarlo y probarlo en android


Título: Re: Malwares
Publicado por: @XSStringManolo en 5 Septiembre 2020, 16:37 pm
hola, tengo la misma pregunta, les agradeceria que me enviaran un ejemplo para usarlo y probarlo en android
https://foro.elhacker.net/abril_negro/abril_negro_2020_rs-t504626.0.html

https://github.com/stringmanolo/rs


Título: Re: Malwares
Publicado por: jusecoco en 5 Septiembre 2020, 22:40 pm
hey, muchas gracias