O puzzle do ABNT2: quando /, ? e ç param de responder entre o Kali e o Metasploitable2#
Quem estuda segurança ou monta laboratórios locais frequentemente precisa alternar entre ambientes modernos e máquinas virtuais legadas. Em uma dessas sessões práticas, me deparei com um problema clássico que sempre rouba minutos preciosos: teclas como /, ? ou ç não respondendo no padrão brasileiro ABNT2.
O desafio era ajustar o mapa de teclas puramente via linha de comando em dois ambientes totalmente diferentes: o moderno Kali Linux e o clássico Metasploitable2.
Para resolver de verdade, é preciso entender como o Linux processa a entrada do teclado nas diferentes camadas do sistema operacional.
1. As camadas de entrada no Linux: TTY vs. X11#
No Linux, o sinal da tecla é tratado em camadas distintas dependendo de onde você está digitando:
- Console Virtual Puro (TTY): O kernel converte os sinais de hardware (scancodes) diretamente para keycodes usando tabelas carregadas na memória do console.
- Ambiente Gráfico (X11 / Desktop): O X Server gerencia o subsistema XKB (
/usr/share/X11/xkb), interceptando os eventos antes que cheguem aos aplicativos gráficos. - Configuração Persistente: Onde o sistema de inicialização (
systemd, SysVinit ouudev) busca os parâmetros para reaplicar o mapa a cada reinicialização.
2. Configurando o Kali Linux (ambiente moderno com X11)#
O Kali roda sobre a base Debian moderna gerenciada por systemd com ambiente gráfico XFCE/X11.
Alteração imediata no desktop (sessão ativa)#
Para aplicar o ABNT2 instantaneamente na sessão gráfica sem reiniciar:
setxkbmap br
Como funciona: O setxkbmap comunica-se via protocolo X11 com o servidor gráfico para carregar os símbolos definidos em /usr/share/X11/xkb/symbols/br.
Persistência definitiva no boot#
Para manter o layout ABNT2 tanto no console quanto na interface gráfica após reiniciar a máquina:
sudo dpkg-reconfigure keyboard-configuration
- Passos no menu interativo:
- Selecione o modelo padrão (Generic 105-key PC).
- Escolha Other -> Portuguese (Brazil).
- Marque a variante Portuguese (Brazil, ABNT2).
O utilitário grava as diretivas no arquivo /etc/default/keyboard, lido automaticamente durante a inicialização.
3. Configurando o metasploitable2 (Ubuntu 8.04 / kernel 2.6)#
O Metasploitable2 roda sobre um Ubuntu 8.04 antigo sem systemd e opera quase exclusivamente em modo texto (TTY pura).
Alteração imediata no console virtual (TTY)#
Para carregar o mapa brasileiro no console ativo:
sudo loadkeys br-abnt2
Como funciona: O comando loadkeys usa a chamada de sistema ioctl para carregar a tabela binária de mapeamento direto no driver do console (/dev/tty0).
Persistência no metasploitable2#
No Ubuntu 8.04, o caminho correto para persistência é o arquivo /etc/default/console-setup:
sudo nano /etc/default/console-setup
Ajuste as duas variáveis principais:
XKBLAYOUT="br"
XKBVARIANT="abnt2"
Em seguida, aplique as mudanças reiniciando o serviço legado:
sudo /etc/init.d/console-setup restart
4. Diagnóstico e pegadinhas comuns em máquinas virtuais#
Se as teclas continuarem trocadas mesmo após a configuração:
A. Rastreamento de sinais de hardware (showkey)#
Para ver o sinal bruto que o kernel está recebendo no console virtual:
showkey -s
- Ao pressionar a tecla
/?, o terminal precisa exibir o código hexadecimal0x73(exclusivo do ABNT2). - Se aparecer outro valor, o hypervisor (VirtualBox, VMware ou Proxmox) ou o sistema host está interceptando o sinal antes de repassar à VM.
B. A armadilha do acesso via SSH#
Se você estiver acessando o Kali ou o Metasploitable2 via SSH, comandos como setxkbmap ou loadkeys não têm nenhum efeito.
No SSH, a tradução do teclado acontece 100% no seu terminal local (como Kitty, Alacritty, GNOME Terminal ou PuTTY). O servidor remoto apenas recebe o caractere já traduzido em UTF-8. A configuração no sistema convidado só afeta a janela gráfica local da máquina virtual ou o console direto.
Matriz de referência rápida#
| Ambiente | Escopo / Camada | Mudança Imediata | Configuração Persistente |
|---|---|---|---|
| Kali Linux | X11 / Desktop Moderno | setxkbmap br | sudo dpkg-reconfigure keyboard-configuration |
| Metasploitable2 | Console TTY (Kernel 2.6) | sudo loadkeys br-abnt2 | /etc/default/console-setup + restart do serviço |
Entender a diferença entre o console do kernel e o servidor X11 poupa tempo e resolve de vez problemas de digitação em qualquer laboratório Linux.
Este artigo foi útil?
Deixe uma reação rápida para apoiar o conteúdo:
Este post está licenciado sob CC BY-NC.



Comentários
Participe da discussão abaixo.
0 comentários