Creando el virus de la policía

por:

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:

 

Imagen del famoso virus de la policía

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

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#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);
    }
 
}
#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:

 

 

The following two tabs change content below.

Jorge Durán

Administrador, redactor y creador de Somos Binarios
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