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.
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.