Ocultar versão do ssh

0

Eu fiz um tcpdump quando conectei ao meu servidor através do ssh. A primeira coisa que vejo é:

SSH-2.0-OpenSSH_5.3

É possível fazer o servidor não enviar sua versão ssh?

    
por marcwho 12.07.2014 / 21:06

1 resposta

2

Não sem recompilar o código-fonte.

É usado para negociar compatibilidade entre o servidor e o cliente.

Existe um método, descrito aqui e reproduzido para ser completo, mas eu não o recomendaria, pois ele precisaria ser repetido toda vez que o software fosse atualizado.

  • Copie o arquivo /usr/sbin/sshd para /tmp .

    # cp /usr/sbin/sshd /tmp
    
  • Encontre a localização do texto OpenSSH usando o comando strings . Procure o texto SSH-2.0-OpenSSH_5.x , já que é a versão mostrada em telnet output.

    # cd /tmp
    # strings -t d -a -n 7 sshd | grep -i ssh-2
    521008 OpenSSH-2.0*,OpenSSH-2.1*,OpenSSH_2.1*,OpenSSH_2.2*
    
  • Remova a linha 521008 da saída acima usando o comando dd .

    # dd if=./sshd bs=1 skip=521008 count=11 | od -A n -c
    11+0 records in
    11+0 records out
       O   p   e   n   S   S   H   -   2   .   0
    11 bytes (11 B) copied, 0.000208606 s, 52.7 kB/s
    
    # dd if=./sshd bs=1 count=521008 of=sshd.1
    521008+0 records in
    521008+0 records out
    521008 bytes (521 kB) copied, 1.46733 s, 355 kB/s
    
    # dd if=./sshd bs=1 skip=521008 count=11 of=sshd.2
    11+0 records in
    11+0 records out
    11 bytes (11 B) copied, 0.00032878 s, 33.5 kB/s
    
    # dd if=./sshd bs=1 skip=521008 count=999999999 of=sshd.3
    131808+0 records in
    131808+0 records out
    131808 bytes (132 kB) copied, 0.368016 s, 358 kB/s
    

    O OpenSSH_5.x agora é cortado e copiado para o arquivo sshd.2.

  • Verifique o conteúdo do arquivo sshd.2 usando o comando od.

    # od -A n -c sshd.2
    O   p   e   n   S   S   H   _   2   .   0
    
  • Escreva o texto "ItsHidden" para sshd.2 e verifique a alteração do tamanho do arquivo antes e depois.

    # ls -l sshd.2 -rw-r--r-- 1 root root 11 May  6 14:11 sshd.2 
    # print -n ItsHidden > sshd.2 
    # ls -l sshd.2 -rw-r--r-- 1 root root 11 May  6 14:12 sshd.2
    
  • Combine todos os arquivos sshd acima em sshd.new.

    # cat sshd.* > sshd.new
    
  • Conceder permissão de execução sshd.new e substituir o binário sshd por sshd.new.

    # chmod 755 ./sshd.new
    # cp /usr/sbin/sshd /usr/sbin/sshd.bak
    # rm /usr/sbin/sshd
    # cp /tmp/sshd.new /usr/sbin/sshd
    
  • Reinicie o serviço sshd e teste o resultado com o comando telnet.

    # service sshd stop
    # ps aux | grep -i sshd
    # kill -9 <pid_sshd>
    # service sshd restart
    # telnet localhost 22
    

Não é uma solução muito elegante ou sustentável.

    
por 12.07.2014 / 21:08

Tags