Categorías: Seguridad

Creando el virus de la policía

En el día de hoy, os vamos a enseñar los fundamentos básicos y un análisis sobre el famoso virus de la policía. Este tipo de virus son llamados ransomware, y últimamente parece que se están convirtiendo en una de las maneras más utilizadas para atacar a todo tipo de personas y empresas.

Cómo funciona el virus de la policía

1. Lo primero de todo, navegando por sitios poco seguro, como adjunto a un email o de cualquier otra manera, el atacante consigue introducir en nuestro ordenador, el virus.

2. Este virus, tiene como objetivo cifrar todos nuestros archivos, de manera transparente, es decir, el poco a poco y sin que nosotros nos demos cuenta va modificando todos los archivos. Para nosotros el archivo sigue igual, ya que esta donde lo dejamos y no presenta ningún cambio, pero este ha cambiado.

El cifrado de datos

Según hemos podido investigar, la mayoría utiliza algún algoritmo de cifrado de datos, como RSA o incluso algunos más complejos. Pero utilizar un algoritmo de cifrado complejo, realentiza el cifrado. Por ello al analizar el código fuente, se ha encontrado que muchos utilizan el operador lógico XOR.

 

3. Una vez todo el proceso se ha realizado, nos informan de que debemos pagar una cantidad, para recuperar nuestros archivos, en algunos casos indicándonos que hemos realizado actividades delictivas o que nuestro equipo ha quedado confiscado por un departamento de policía. En España se conoce como el “virus de la policía” porque el que más se extendió mostraba la siguiente imagen:

 

4. Cuando se procedía al pago, se activaba la opción de descifrado y los archivos volvían a su estado original. Aunque según algunas personas que lo han sufrido, con el propio pago, intentaban introducirte nuevamente otro virus.

Creando un ransomware

Después de ver cómo funcionaba y basándonos en el método más sencillo, el cifrado XOR, he recordado un pequeño programa que tenía hecho, de cuando empecé a estudiar C que la verdad podría ser algo parecido a este sistema. El programa es muy simple, cifra un archivo realizando XOR a nivel de bit de un único archivo y para descifrarlo solo tenemos que volver a ejecutar el programa otra vez.

Como se puede ver en la siguiente tabla:

Bit originalBit de unosSalida Bit de unosBit original
01110
11011

 

#include 
#include 

int main(int argc, char * argv[]){
    int a;
    int avance=0;
    FILE *f;    
    if((f=fopen(argv[1],"rb+"))==NULL){ //escritura binaria
        fprintf(stderr,"Error al abrir archivo\n");
        return 1;
    }
    fread(&a,sizeof(int),1,f);
    while(!feof(f)){ //hasta final de fichero
        a=a^11111111; // XOR con todos 1s
        fseek(f,sizeof(int)*avance,SEEK_SET); //recolocamos el cursor
        avance++;
        fwrite(&a,sizeof(int),1,f);
        fread(&a,sizeof(int),1,f);
    }

}

El modo de usarlo es sencillo solo debemos pasar como argumento mediante linea de comandos el archivo a cifrar.

Os dejamos un vídeo mostrando su uso:

 

 

Jorge Durán

Entusiasta de la tecnología desde los 10 años, desarrollador y creador de varios proyectos de software y autodidacta por naturaleza. Ingeniero Informático por la USAL y .Net backend developer en idealista.

Share
Publicado por
Jorge Durán

Recent Posts

Docker: conceptos principales y tutorial paso a paso

Hoy queremos hablaros de Docker un proyecto que cada día es más usado, porque permite…

3 años hace

Crea diagramas rápidamente usando código

Cada vez estamos más acostumbrados a usar código para generar la infraestructura (IaC), documentar nuestro…

3 años hace

Procesamiento del lenguaje natural con ElasticSearch

Uno de los problemas que se presentan con una mayor frecuencia hoy en día, es…

4 años hace

Elige tecnología clásica y aburrida

Uno de los problemas que solemos tener los programadores, es que nos gusta estar a…

4 años hace

Cómo usar Docker en Windows

Docker es una de las herramientas más usadas por los desarrolladores, sin embargo, usarlo en…

4 años hace

Analiza el coste del uso de JavaScript

Como seguramente sabrás el uso de JavaScript ha crecido exponencialmente en los últimos tiempos, sin…

5 años hace