A próxima postagem mostrará como o malware, depois de baixar a imagem, pode ser extraído e executado em seu sistema.
Este é um truque chamado Esteganografia. Ele pega uma imagem e itera sobre os pixels individuais dentro dela. O bit menos significativo (LSB) é substituído por uma versão codificada do malware que você não vê.
Para este exemplo, escrevi um programa que faz isso com Ruby, aqui vamos mergulhar no código.
require 'chunky_png' # Ruby import statement for the library to load the image you need
image_path = 'path/to/your/image.png' # Path to the original image file
output_image_path = 'path/to/output/image.png' # Path to where you'll output the image file with the hidden malware
payload_file_path = 'path/to/payload/file.txt' # Path to the payload file
image = ChunkyPNG::Image.from_file(image_path) # Load the original image with ChunkyPNG
payload = File.read(payload_file_path) # Load the payload file
Primeiro, as bibliotecas necessárias são carregadas no script. Para este programa, basta a biblioteca “Chunky_PNG”. Em seguida, você carrega todo o resto: o local da imagem que você usa, onde a imagem perigosa será exibida, a imagem em si e a carga útil do malware que deveria fazer algo ruim.
binary_payload = payload.unpack('B*')[0].split('') # Convert the malware payload into an array of binary strings
A seguir, é assim que você divide a carga útil de forma que ela possa ficar oculta na imagem. Como mencionei anteriormente, estamos usando o LSB de cada pixel, então precisamos que toda a nossa carga de malware seja convertida em uma longa sequência de código binário. Isso nos permitirá ocultar um único bit (1 ou 0) da carga útil dentro do valor do último bit (bit menos significativo) de cada pixel.
binary_payload.each_with_index do |bit, i| # Embed the payload into the image using Least Significant Bit (LSB) steganography (replace the least important bit of each pixel with ONE binary bit from the malware)
x = i % image.width
y = i / image.width
pixel = image[x, y]
new_pixel = pixel & 0xFE | bit.to_i
image[x, y] = new_pixel
end
Veja como é simples incorporar o malware sem ser visto. Você descobre o tamanho da imagem, olha cada pixel, descobre a informação menos importante (LSB) e a substitui por um dos bits gerados que contém o malware. Desta forma, os pixels não são modificados o suficiente para alterar significativamente a imagem. É por isso que você não sabe que a imagem contém malware.
image.save(output_image_path) # Save the image with the hidden malware stored inside the pixels
Finalmente, você salva a imagem perigosa. E aí está. Uma imagem que parece igual, mas na verdade contém malware.
Para que isso funcione adequadamente, depende do tamanho do malware (se expandirá para uma string muito maior como binário) e do tamanho da imagem. A imagem deve ter pixels suficientes para conter todos os bits da versão binária do malware.
É por isso que é extremamente importante digitalizar QUALQUER COISA antes de baixá-lo. Só porque parece uma imagem inofensiva, não significa que não esteja secretamente contendo malware escondido dentro dela.
A definição da esteganografia é “A prática de ocultar mensagens ou informações dentro de outros textos ou dados não secretos”. Não é apenas empregado dessa maneira maligna, mas também para outras coisas. Às vezes, as pessoas usam a esteganografia para ocultar mensagens dentro de imagens como uma forma de criptografia que não usa muita matemática complicada (quando feita com um computador, pelo menos). Mas usado desta forma, pode ser uma ferramenta para o mal.
Obrigado e espero que você tenha aprendido algo útil com este artigo. Lembre-se, nunca baixe coisas porque parecem inofensivas, baixe-as porque são inofensivas. Digitalize tudo antes de baixá-lo, ou você poderá acabar se arrependendo de algumas coisas em breve.
Isso é tudo por hoje pessoal. Obrigado por ler!








