Desarrollo de Malware creando tu primer Ransomware Parte 1
La mayoría de las veces, cuando uno quiere enseñar cómo actúa un ransomware moderno en un entorno corporativo, se enfrenta a dos problemas: o usás un malware real y te arriesgás a contaminar el entorno (o peor, romper cosas por accidente), o usás algo tan simplificado que no sirve para aprender nada serio.
Este proyecto nació justamente de esa tensión. Necesitábamos mostrar a un equipo de operadores EDR cómo se comporta un ransomware como LockBit 3.0 en el mundo real, pero sin correr riesgos. Sin usar muestras reales, sin sandbox en la nube, y sin depender de entornos con Windows vulnerables. Solo una VM Ubuntu, código abierto, y algo de ingeniería.
Esto es lo que hicimos.
Por qué crear un ransomware falso
LockBit 3.0 es uno de los ransomware más sofisticados de los últimos años. Cifra archivos con AES y RSA, mata procesos, detecta VMs, exfiltra información, y presiona con doble extorsión. Todo eso está documentado en análisis como los de Zscaler o Kaspersky, pero ver ese comportamiento en vivo, sin poner en riesgo nada, es otro tema.
Las herramientas de formación disponibles o eran extremadamente básicas (simples rename de archivos), o eran tan avanzadas que usaban samples peligrosos que no queríamos ni ver de cerca.
Requisitos: realista pero seguro
Así que decidimos escribir nuestro propio simulador.
Lo que implementamos
El objetivo era lograr un equilibrio entre veracidad y seguridad. Queríamos un simulador que:
-
Cifrara archivos realmente, no solo los renombrara.
-
Tomara información del sistema, como una red local.
-
Simulara exfiltración de datos a un C2.
-
Mostrara una nota de rescate.
-
Pero sin dejar puertas abiertas, sin conexión a internet, sin persistencia.
Todo debía correr en una sola VM Ubuntu y poder ser revertido fácilmente.
En la imagen de arriba vemos el archivo con el codigo en C a la derecha y su pieza compilada a la izquierda.
Lo que implementamos
El simulador final, escrito en C, funciona así:
-
Escanea el directorio actual buscando archivos
.pdf,.xls,.txt,.csv, etc. -
Cifra el contenido de esos archivos usando AES-256 en modo CTR, con una clave fija embebida en el binario.
-
Ejecuta
arp -apara simular recolección de información de red. -
Guarda ese resultado en un archivo
network_report.txt. -
Exfiltra ese archivo simuladamente a un host remoto por TCP, usando
netcat. -
Muestra una nota de rescate en la terminal.
-
Finaliza. Sin persistencia, sin conexiones reales.
El diseño sigue principios del NIST sobre entornos de entrenamiento aislado, y prácticas éticas recomendadas por la comunidad MITRE.
Pero vamos a lo que todos quieren ver...las pruebas:
A continuación veremos un pequeño GIF del momento exacto donde ejecutando la pieza se encriptan los archivos y en el escritorio aparecerá un documento txt con la lectura del comando arp -a.
En futuras entregas desarrollaré la lógica detrás del diseño mostrando parte por parte del código. Este tipo de técnicas avanzadas no se aprende con diapositivas, hay que meter las botas en el barro y picar código. Acá es donde se comprende la importancia de la programación en Ciberseguridad. Cualquiera puede correr Metasploit o usar MSFVenom y es fantástico no tiene nada de malo, pero hay una gran diferencia cuando sos capaz de generar tus propias herramientas o más allá aún, tu propio Malware.
Continuará...
.gif)