Parece fácil registrar as teclas digitadas de todos os processos do mesmo usuário. Um keylogger básico é 'xinput'.
xinput test-xi2
O comando gera o log de todas as teclas pressionadas. Infelizmente, isso inclui senhas no gnome-terminal. O Google sugeriu que pegar o teclado pode impedir que outras janelas capturem os pressionamentos de tecla.
Existe uma maneira de impedir o log do XI2 no terminal gnome? Ou existe um terminal X que possui esse recurso?
Respostas:
Não é possível, pois as teclas passadas para o servidor X estarão disponíveis para xinput / qualquer programa arbitrário. (De fato, faz parte do design). Novos servidores de exibição como Wayland e Mir estão corrigindo esses problemas de segurança no X. A única solução real seria usar o Wayland ou o Mir em vez do X. Esta postagem do blog detalha esse problema.
fonte
Na verdade não. Mesmo que você consiga, de alguma forma, pegar o teclado no X (não sei se isso é possível, duvido disso), um utilitário de keylogger executando como root sempre terá acesso ao teclado.
fonte
Como outros disseram aqui, não é possível proteger apenas um programa como o gnome-terminal ou outro terminal do registro de chaves, apenas se você restringir os usuários padrão a executar qualquer registrador de chaves ou se você parar / pausar qualquer processo do registrador de chaves.
Em seguida, mostrarei como você pode fazer isso em caso de
xinput
comando, mas os mesmos métodos podem ser usados para qualquer outro registrador de chaves. Se um registrador de chaves usa oxinput
comando, não é necessário aplicar o método nele, desde que você o apliquexinput
.1. Restrinja os usuários padrão para usar o
xinput
comandoVocê pode restringir os usuários padrão a usar o
xinput
comando usando o seguinte comando:2. Restrinja os usuários padrão para usar o
xinput
comando comtest-xi2
argumentoVocê pode restringir os usuários padrão a usar o
xinput
comando comtest-xi2
argumento escrevendo um wrapper para este comando. Para fazer isso, entre no terminal e siga as instruções abaixo:Obtenha privilégios de root:
Mova o
xinput
arquivo para outro diretório que não esteja no CAMINHO de nenhum usuário (por exemplo/opt
):Crie seu wrapper para
xinput
comando em/usr/bin
:Adicione o seguinte script dentro:
Salve o arquivo e feche-o.
Torne o novo wrapper executável:
Enquanto o primeiro método é a segurança, usando o segundo método, o usuário ainda pode contorná-lo chamando o original
xinput
diretamente se ele souber seu novo local.3. Parar / pausar qualquer
xinput
processoVocê pode interromper ou pausar qualquer
xinput
processo antes para inserir uma senha ou qualquer outra coisa que não deseja que seja registrada. Para fazer isso, adicione a seguinte função bash no final do seu~/.bashrc
arquivo:Agora, depois de reabrir o seu terminal, quando quiser, usando esta função, você pode:
parar / matar todos os
xinput
processos:pausar todos os
xinput
processos:retomar todos os
xinput
processos:De fato, com esta função, você pode interromper / pausar qualquer processo que desejar antes de executar algo (como digitar a senha):
Se você não sabe como detectar um keylogger ativo no seu sistema, consulte:
Talvez esses métodos não sejam as melhores soluções, mas espero ter uma idéia do que você pode fazer ...
fonte
xinput
não é sequer SUID (-rwxr-xr-x 1 root root 48504 15 agosto de 2012 / usr / bin / xinput)