Caracteres imprimíveis não ASCII no banner do sshd

6

É possível configurar um banner para sshd que deve ser exibido como uma conexão é aberta , via Banner /etc/motd.ssh in sshd_config . Observe que isso é exibido antes da autenticação, e mesmo quando um shell interativo não é iniciado (por exemplo, via scp ).

Se este banner contiver caracteres fora do intervalo ASCII imprimível, eles parecem ter escapado, no entanto. Existe alguma maneira de desativar este escape, ou uma maneira alternativa de enviar a saída textual de volta ao cliente na conexão que suporta tais caracteres fora do intervalo ASCII imprimível?

Isso seria útil tanto para seqüências de escape de cores quanto para caracteres Unicode.

  • Relacionados: Banner ssh colorido (não é uma duplicata, no entanto, como essa pergunta é sobre outro tipo de banner, não sobre cor)
por FireFly 12.01.2014 / 22:07

2 respostas

8

Menção # 1 - Projeto LinuxFromScratch

Um lugar mencionado é no projeto Linux From Scratch. Eu encontrei esta página intitulada: / etc / issue (Personalizando seu logon) .

trecho

The /etc/issue file is a plain text file which will also accept certain Escape sequences (see below) in order to insert information about the system. There is also the file issue.net which can be used when logging on remotely. ssh however, will only use it if you set the option in the configuration file and will also not interpret the escape sequences shown below.

Menção # 2 - Post do fórum do SecurityFocus

Como evidência adicional de que isso não é possível, há este trecho de um post no fórum intitulado: Re : ssh e banners Ago 18 2009 01:20 PM , que discute a função que implementa a impressão do banner no OpenSSH.

trecho

After doing some more digging, I found that there is a function in the ssh source (specifically sshconnect2.c) called "input_userauth_banner" that displays the banner from the server. The text of the banner is now being filtered through another function called "strnvis" that encodes non-printable ascii characters as printable text, ie: octal codes. This is why the ansi escape sequence is displayed as "3[". The documentation for strnvis doesn't mention any security issues, only "unexpected behavior" that could be associated with non-printable characters.

Menção # 3 - Notas de Lançamento do OpenSSH + RFC's

Por fim, incentivo você a ler as notas de lançamento do OpenSSH. Eles estão aqui, assim como os RFCs que governam o SSH v1 & especificações v2.

Essa RFC abrange parte do comportamento do recurso Banner . Esta seção "5.4. Mensagem do banner" aborda os detalhes de por que isso não é permitido. Este parágrafo é o que diz que isso é explicitamente proibido.

trecho

If the 'message' string is displayed, control character filtering, discussed in [SSH-ARCH], SHOULD be used to avoid attacks by sending terminal control characters.

Referências adicionais (por @hildred)

por 12.01.2014 / 23:03
2

O cliente openssh tem um bug no filtro de caracteres não seguros que, em vez de filtrar os caracteres de controle, filtra tudo, menos as imprii print (as chamadas de especificação para utf8 imprimíveis) a patch para o cliente corrigirá isso.

    
por 13.07.2015 / 06:49