Hola amigos, bienvenidos a esta clase, donde vamos a estar creando un ransomware con Peyton.
Sí, así como lo escuchan.
Vamos a llevar adelante las funcionalidades en su esencia, el rango de software.
A qué me refiero?
Vamos a utilizar una víctima.
En este caso creé una carpeta de la víctima y este audio que podría hacer un video, pero el archivo
que ustedes quieren imaginar lo vamos a secuestrar.
Fíjense que yo lo ejecuto.
Pueden escuchar voces que un agricultor tenía mi mejor cultivo de maíz.
Por qué se lo van a escuchar?
Porque el software que vamos a crear a simple vista no va a parecer que lo encripta, pero cuando querramos
ejecutar no va a funcionar.
Ya está terminado.
Vamos a crear la cura.
Y aparte, le vamos a dejar un mensaje a la víctima.
Cuál es la utilidad de Terran Software fuera de la esencia de este malware?
También nos sirve.
Inclusive se lo dejó como idea y esto está sujeto también a su imaginación.
Es una forma también de de cuidar archivos de forma local en nuestra máquina para que otros no puedan
acceder al mismo, ya que como les acabo de decir, en su apariencia va a aparecer un archivo normal,
pero cuando lo quieran ejecutar no va a funcionar y eso puede ser muy útil a los fines de querer cuidar
nuestra información para que otra persona no la pueda ver ni leer.
Bastante interesante, no?
Bueno, no perdamos más el tiempo.
Primero mencionar como siempre, como responde el código que voy a usar y que les voy a explicar como
funciona.
Corresponde a este repositorio.
Esta persona es el creador.
Yo lo que voy a hacer es explicarle el código y compartir zelot para que?
Y darle las oportunidades también, ya que con los fines de git app también es compartir con la comunidad.
Ustedes después a posteriori puedan hacer las modificaciones que consideren, ya que claramente se también
de este medida porque conocen el lenguaje de Python.
Bien, lo primero que vamos a hacer es crear el nuestra herramienta que nos va a permitir encriptar
la información.
Luego vamos a crear la desing desencriptación.
Lo primero que tienen que tener instalado es Geografic, que para eso tenemos que utilizar nuestro PIB
instal y se escribe criptográfico.
Obviamente para tener el PIB tienen que tener instalado python y haber agregado las variables de entorno.
Se windhoek bien.
Entonces vamos a hacer un from cripto e raffi punto net import facultat.
Importo.
Os vamos a crear una función que se llame Gendry.
Penetrarte un bajo, ok.
Casi la llamó el creador.
Dos puntos importante que vamos a hacer acá es crear una función que genere la clave de encriptación,
que es el.
La cual va a ser el que el programa usará.
Usará esta clave para poder cifrar los archivos que tengamos en nuestra víctima, por eso en el repositorio
se encuentra este archivo.
Este archivo es un jazz, como también en pantalla, que justamente es el que utiliza para encriptar
y que a posteriori después vamos a utilizar para desencriptar.
Para esto hacemos un QY.
El ropón iguala fernet.
Punto generates bien bajo aquí y par los paréntesis, la función de un widget open entre paréntesis
comillas simple qui, que es el que se encuentra en la carpeta comÃ y los permisos, en este caso doble
de bien.
Acá hacemos un ask fail dos puntos y hacemos que Phil trabajó hasta punto grids en reglones entre paréntesis.
Que bien, esto es en relación para la generación de la de la llave que a posteriori.
Pues perdón.
Nos va a servir para desencriptar la información.
Hacemos otra función.
Vamos a llamarla.
Lo aquí no está entre paréntesis dos puntos, en este caso un return open entre paréntesis, comillas
simple.
Otra es qui y coma con esa simple RBI.
En este caso perdón entre comillas simples parfait punto right entre paréntesis.
Bien, ahora vamos a crear una función con la cual vamos a encriptar justamente e encripta.
Entre paréntesis usamos item como aquí dos puntos y la casa.
Tenemos que empezar a trabajar justamente y en lo que vamos a hacer para Witten para empezar a encriptar
la información.
Entonces hacemos un bucle for vamos a item y items con ese dos puntos.
Entonces acá usamos un widget open entre paréntesis, ítem coma, comillas, simple revé, host failed,
dos puntos.
Con esto leemos el fichero.
Hacemos un fail data iguala, fail rid.
La función y a la misma altura importante es la tabulación del Wicks, hacemos un TED data.
P Del segundo.
Perfecto e Iguala F punto en Crips una función de la librería que estábamos trayendo perdón o abriendo
paréntesis.
Esto, si no me equivoco, lo escribí y me falta la P y hacemos un fail en guión bajo data.
Qué es lo que vamos a encriptar?
Y ahora otra vez a la misma altura del otro.
Weeds.
Lo que hacemos es un nuevo pent entre paréntesis.
Item.
Koma comienza simples doble V.
V.
Dónde vamos a escribir justamente los ficheros asfalto y lo que hacemos es un file.
Punto grits y entre paréntesis e encripta set data.
Bien, perfecto.
Una vez que tenemos esto, lo que vamos a hacer es el famoso IF.
Y Meum es más porteria menos deberían mostrar acá y finen perfecto con esto.
Esta condición lo que hace siempre es la condición de que por lo tanto, si siempre se cumple.
Accedemos, digamos o ejecutamos y lo que hacemos acá es un paths guión bajo ron su guión bajo en crip
que es lo que vamos a hacer acá.
importanteQue acá presten especial atención porque lo que vamos a hacer es marcar la ruta.
Fíjense que importante esto y aparte acá por favor presten especial atención ya que se ponen mal la
ruta o no va a funcionar o les va a encriptar cualquier otra información.
Lo que yo voy a hacer es esta ruta.
Fíjense Houser cerc cours texto víctima.
Esta parte de la víctima lo voy a copiar y fíjense que Yusa cercas de stop y en vez de a ésta en vez
de prueba la carpeta se llama víctima.
De esa manera yo estoy apuntando esto lo podríamos almacenar en una variable con Python, podríamos
a escanear y ver la ubicación de la carpeta o directamente apuntar al cesaremos que todo Windows siempre
va a tener la raíz, por lo general sea de forma predeterminada.
Necesitamos saber directorio del encriptado motor.
Sé bueno el infinito de variables que ustedes quieran tener, pero es importante que sepan que esta
ubicación es lo que vamos a encriptar.
Por favor con cuidado y acá hacemos un items igual a os e punto list dir.
En este caso estamos utilizando la librería host justamente list dir.
Entre paréntesis, porque estamos utilizando la función y nuestra variable que almacenamos sobre la
ubicación donder de lo que nosotros queremos encriptar.
Y ahora vamos a poner full paths y lo que vamos a hacer es entre corchetes.
Vamos a escribir patch en crip.
Vamos a aprovechar.
Vamos a evitar errores de capa 8 y comienza simple perdón.
Esta barra vamos a borrar ahí con comillas.
Simple.
Más concatenados e item for item items.
Y lo que tengo que hacer acá que yo me equivoque.
Por qué?
Denme un segundo.
Ayase porque tenía el insert colocado.
Hacemos así está perfecto una cuestión del teclado.
Item from item in items y sha ramos corchetes.
Bien, ahora llamamos a la función generates aquí y aquí guardamos los triki la función.
Y ahora en crit.
Y acá colocamos uy, perdón, foul.
Bien, como verán, ya directamente nos va llamando cada cosa que nosotros ya hemos hecho y ahora lo
que vamos hacer es vamos a dejar un mensaje para que la víctima en este caso sepa qué sucedió.
Y bueno, a posteriori, si lo manejamos con la teoría y la tipología de delito, el mensaje que nosotros
deberíamos dejar es para que nos envíe un pago para recuperar la información.
Hacemos un switch Open iPads, utilizamos la variable más comilla simple barra barra
concatenados otra vez comillas simple mientras caso lo vamos a llamar rescate, por ejemplo.
Punto tejiste y hacemos comÃ comienza simple doble v los permisos sanofi dos puntos y acá adentro hacemos
file grits.
Perdón, no es coma en punto.
Y un paréntesis dentro paréntesis escribimos el mensaje, por ejemplo, a ficheros encriptados por Pepe.
Y le podemos poner un salto de línea importante para que el próximo mensaje sea lo vamos a hacer así.
Copiar y pegar y a causemos a realizar pago a la siguiente dirección.
Bien, fíjense que acasa con esto con 30 líneas con Python hemos creado un ransomware.
Cómo lo probamos?
Tengan en cuenta que esto está escrito en Python versión 3.
Entonces lo que yo voy a hacer es para que no sepa yo mi máquina.
Tengo instalada las dos versiones de Python, ya que se pueden aprovechar bondades de ambos Python bien
sea Adir.
Vemos que acá está el archivo.
Entonces hago Python 3 E en Greet y vamos a apretar enter.
Bien, denme un segundo.
Voy a revisar.
Línea 28 me hice.
En qué me puedo ver que equibocado acá?
Denme un segundo Kitts.
Pero esto no pareciera ser la línea 28.
Ok, bueno, denme un segundo.
No voy a revisar tuits.
Open.
En qué me pude dxt a gastar arroz, que era una cobertura?
Todo letas bien, perfecto.
Bueno, is defined.
Dice Línea 26 Paths.
Pero lo raro es que encima fuimos fi llamando.
A cada cosa a ver que dice el arroz FMS está definido.
Pero si jefe, en la línea 26 a 16 encripta.
Pues no!
Donde yo aprovechadas, no convocar el error.
Esto va a ser así, no?
Bien.
Dónde?
Pero aparte no me dice la niña de 16 acá, acá está F dice que F no está declarado y ya se porque.
Dónde está mi error?
Acá me faltó una línea.
Perdón, que es f uala e Arnett el módulo y adentro Kichi de su perfecto.
Vamos a dar.
Bueno, vamos a ver que sucedió.
Fíjense que no, nosotros no pusimos que no devuelvan ningún mensaje.
Y acá qué pasó?
A simple vista este archivo sigue pesando lo mismo.
Audio motivacional.
Y acá tenemos el rescate.
Ficheras incrustaron por Pepe.
Rezar para.
Pero uno ve el archivo y dice bueno, pues está todo bien.
Ejecuto y fíjense, efectivamente, el archivo no funciona nada más.
Por eso le mencionaba la utilidad que el podemos utilizarlo para evitar que cualquier persona o usuario
coticen Arima, la computadora misma hoja o hacer una broma, por ejemplo, o cuidar nuestra información.
No queremos que esto mientras nosotros nos estamos sentando agotara ahí.
No pueda escuchar.
Bueno, ni hablar, que necesitábamos escribir el rescate y directamente dejar el archivo.
Así ya ha pasado por nuestro código Python que hemos creado.
Ahora lo que vamos a hacer es recuperar la información.
Para esto lo que tenemos que hacer es bueno.
En realidad vamos a utilizar un poquito de tiempo, vamos a utilizar las mismas librerías en este caso
y lo que vamos a hacer entonces es la función float aquí es para cargar justamente, y lo que vamos
a hacer acá es un return perfecto open.
Y acá lo que tenemos que hacer es entre comillas simples que aquí la llave.
Justamente para poder desencriptar tibiezas simples arribé y acá hacemos un ritt.
Bien, ahora lo que tengo que hacer es otra función donde hacemos la desencriptación y entre paréntesis
y para la función acá dentro vamos a tirar las variables y tems como aquí.
Y lo que hay que hacer acá es lo que habíamos hecho en la anterior, que otra vez vamos, lo podemos
aprovechar y lo vamos a copiar para Dinamarca.
Vamos a cambiar un par de valores por una archivo, inclusive de documentación o buenas prácticas.
A qué me refiero?
Tenemos F igual a Fernet KIPP, tenemos fore item in items y acá hacemos WITSEC Open Item Add file e
acá en vez de Filth data.
Yo voy a escribir en Querer tep bien bajo data y esta parte está file roat bien en vez de acá encriptar
lo que vamos a hacer.
Desencriptar.
Entonces esta variable la vamos a llamar de cricket de un bajo data iguala de acá.
Esto también es importante.
Fíjense que acá cambia.
Justo ahora estamos utilizando las funciones de la librería, entonces en vez de encriptar vamos a desencriptar
de crips entre paréntesis e esta estafo esta variable que haga que creamos y acá lo que tengo que hacer
es wich open y item con estos permisos file y acá en vez de de Grettel es de chiste tatá bien quedó
bien escrito y acá lo que tenemos que hacer es otra vez vamos a aprovechar los recursos que ya tenemos
escrito y lo que vamos a utilizar es esto que es exactamente igual, donde la ubicación es exactamente
la misma y en este caso hacemos un koz punto rebut entre paréntesis paths yo scrip más concatenados,
barra barra concatenados.
En este caso vamos, lo que vamos a a remover es el ráscate, o sea el mensaje.
Si con el ejemplo que le he aplicado anterior no lo creamos.
Esta línea también no la necesitamos y acá lo que hacemos es items e iguala perdón os punto list dir
la función y acá paths en Querit y acá ful guión bajo paths.
La variable señor acento nos puede llegar a dar un error de Tf8 y entre corchetes acá.
Bien perfecto hacemos paths script que rodead.
Si seguimos con la misma nemotécnica incorporamos otra manera pero no vino al caso.
Y acá dentro.
Doble comilla perfecta.
Acá concatena, vamos.
Item sin la effort.
Item X que le sumamos a la ruta del archivo por cada item de la lista.
En este caso y lo que hacemos aquí es qué?
Iguala Lovat aquí la función y utilizamos el de Kri perfecto.
Y entre paréntesis lo que le enviamos es full paths koma que bueno, por teoría lo que debería suceder
acá es la información.
Bien, no devolvió ningún error a la primera y lo que vamos a hacer es ver si este archivo fíjense que
desapareció el txt y eso es que un agricultor tenía perfecto.
Hemos recuperado el archivo en cuestión.
Realmente la funcionalidad que le podemos dar es muchísima.
Existen muchas versiones para generar RAM software de Python, pueden si quieren invocarlo.
Inclusive en Git Japp no se necesita redescubrir la rueda.
La realidad es que en lo que es en el mundo de la programación es un 80 a 90 por ciento reutilización
porque todos utilizamos librerías.
Bueno, todos nos basamos en esta comunidad y en su efecto uno puede ir haciendo uno que otro cambio
personalizado.
Por eso mismo lo sigo invitando a mejorar y a seguir compartiendo.
Espero que les haya gustado la clase.
Les dejo un abrazo digital.