Olá!
Hoje vou mostrar como ocultar o javascript no arquivo de imagem e como executar isso.
Fazendo upload de JavaScript dentro de uma imagem, ele pode ser hospedado e executado a partir do servidor de um site. Além disso, a técnica ofusca bastante o JavaScript malicioso, mesmo quando usado em um servidor controlado pelo invasor, e pode ser usado para obscurecer as ações de uma página de phishing.
O que podemos fazer com a execução de JS em algum servidor?
- O JavaScript pode ser usado para tentar roubar cookies, que podem incluir tokens de autenticação, geralmente são vulneráveis a strings de escape XSS para executar mais javascript, podem solicitar que os navegadores baixem ou executem um programa e até mesmo roubem informações de outros sites visitados pelo usuário (assumindo que o host de destino oferece integrações que outras páginas da web acessam). No caso deste exemplo, uma simples função de alerta de JavaScript é usada para confirmar que o JavaScript está funcionando corretamente, mas isso pode ser substituído por um código malicioso ou até mesmo um gancho de navegador BeEF (para isso, você pode encontrar um tutorial em meus tópicos).
Vamos começar. Este é um tutorial de exemplo para este como trabalhar!
[1] Baixe o script imagejs
git clone https://github.com/jklmnn/imagejs
[2] Instalação. Siga o comando:
cd imagejs
mkdir build
cd build
cmake ..
make
[3] Escreva o código JavaScript. Este código simplesmente abrirá uma janela de alerta com o texto
alert("lord_x tutorial for BF");
Salve este "script.js" no diretório /imagejs/build
[4] Baixe alguma imagem. Eu uso imagem gif.
// As opções atualmente são bmp, gif, webp, pnm e pgf
[5] Agora use Imagejs
./imagejs gif script.js -i anon.gif
https://external-content.duckduckgo.com … -19-49.png
A sintaxe começa com a execução do programa, imagejs. O primeiro argumento, neste caso gif, indica o tipo de arquivo. O segundo argumento refere-se ao script que estamos usando e o argumento final após o sinalizador -i é a imagem que desejamos modificar.
[6] Agora crie uma página html simples (no mesmo diretório) com o nano
https://external-content.duckduckgo.com … -55-57.png
<html>
<body>
<img src="script.js.gif">
<script src="script.js.gif"></script>
</body>
</html>
https://external-content.duckduckgo.com … -55-31.png
[7] Vamos testar a página
https://external-content.duckduckgo.com … -54-20.png
Ótimo, funcionou!
[8] Como atacar?
O comando a seguir tentará despejar cookies de gravação na página da web servida. Esses cookies podem ser usados para representar usuários roubando seus tokens de autenticação.
document.write('cookie: ' + document.cookie)
Por fim, para implantar o ataque, precisamos encontrar um local para carregar nossa imagem e outro campo vulnerável a ataques XSS onde possamos escapar da verificação de entrada e usar uma tag <script> ou (mais facilmente) carregar o imagem (como um script) de nossa própria página de phishing.
https://external-content.duckduckgo.com … -30-07.png
No exemplo abaixo, carregamos nosso avatar, anon.gif, e seguindo uma tag de saída </textarea>, nós o colocamos em tags de script. Depois disso, qualquer pessoa que visualizar este perfil terá seus cookies despejados na janela do navegador. Substitua o script acima por um que publique silenciosamente os valores de document.cookie em um servidor de sua escolha e você terá um ladrão silencioso de credenciais.
Depois de testar com este exemplo, você pode tentar com o gancho BeEF!
Aproveitar