Host vulnerável usando o serviço SMB [aberto]

O protocolo Server Message Block (SMB) é o protocolo padrão que o sistema operacional Windows utiliza para compartilhar arquivos, impressoras, portas seriais e para comunicação entre computadores. [1]

O protocolo SMB pode ser usado sobre seu protocolo TCP/IP ou outros protocolos de rede. Utilizando o protocolo SMB, um aplicativo (ou o usuário de um aplicativo) pode acessar arquivos ou outros recursos em um servidor remoto. Isso permite que os aplicativos leiam, criem e atualizem arquivos no servidor remoto. Ele também pode se comunicar com qualquer programa do servidor que esteja configurado para receber uma solicitação de um cliente SMB. [2]

Perigos dessa vulnerabilidade

A vulnerabilidade do protocolo SMB permitiu o ataque do Ransomware (código malicioso que criptografa os dados da vítima e pede resgate pelo sequestro das informações) WannaCry, o qual ficou conhecido por infectar diversos computadores pessoais e de empresas em todo o globo no dia 12 de maio de 2017. Poucos dias após seu aparecimento global o Ransomware já havia infectado mais de 400 mil máquinas em 150 países. No Brasil, diversos órgãos importantes, como o Ministério Público do Estado de São Paulo e o INSS, tiveram suas operações comprometidas pelo Ransomware. Desta forma, fica evidente a importância de que qualquer brecha identificada seja solucionada com urgência.

 

Identificando vulnerabilidades

As vulnerabilidades existem no processo de validação de certas requisições SMB, estas podem permitir que um atacante obtenha controle total sobre o sistema afetado, ou causar um ataque de negação de serviço (DoS) sobre este.

Uma forma de verificar se o computador se encontra vulnerável é checar a porta 445

1 – Instalar a ferramenta NMAP [4]

2 – Executar o comando abaixo
nmap -p445 –script smb-vuln-ms17-010 “seu IP/rede”

O teste deve ser realizado de um IP fora da sua rede, caso o resultado exiba informações mostrando que o host está com a porta aberta, isto indica que você está vulnerável.

Soluções

A maneira recomendada de corrigir um protocolo SMB vulnerável é instalar a atualização de segurança para o Microsoft Windows SMB server, publicada pela Microsoft no Boletim de Segurança MS17-010, em 14 de março de 2017.

Contudo, caso não seja possível prosseguir imediatamente com as atualizações necessárias, existem medidas alternativas que visam solucionar temporariamente as vulnerabilidades dos protocolo SMB.

  • Desabilitar o Protocolo SMBv1, SMBv2 e SMBv3.

    • É importante ressaltar que a Microsoft não recomenda a desativação dos protocolos SMBv2 e SMBv3. Caso a medida seja necessária, aconselha-se que seja apenas temporária.

  • Bloquear o tráfego de entrada das portas TCP 137, 139 e 445 e das portas UDP 137 e 138

Existem alguns métodos para desabilitar o Protocolo SMBv1, SMBv2 e SMBv3 dependendo da versão e tipo do sistema operacional windows utilizado.

Método para desabilitar o protocolo SMBv1 para clientes que executam o Windows 8.1 e o Windows Server 2012 R2 e sistemas posteriores

  • Para sistemas operacionais de cliente:
    1. Abra o Painel de Controle, clique em Programas e clique em Ativar ou desativar recursos do Windows.
    2. Na janela Recursos do Windows, desmarque a caixa de seleção Suporte a Compartilhamento de Arquivos SMB1.0/CIFS e clique em OK para fechar a janela.
    3. Reinicie o sistema.
  • Para sistemas operacionais de servidor:
    1. Abra o Gerenciador de Servidor, clique no menu Gerenciar e selecione Remover Funções e Recursos.
    2. Na janela d Recursos, desmarque a caixa de seleção Suporte a Compartilhamento de Arquivos SMB1.0/CIFS e clique em OK para fechar a janela.
    3. Reinicie o sistema.

Método para desabilitar o protocolo SMBv1 para clientes que executam Windows 7, Windows Server 2008 R2, Windows Vista e Windows Server 2008

É possível utilizar o Windows PowerShell ou o Editor do Registro.

Através do Windows PowerShell:

  • Para desabilitar o SMBv1 no servidor SMB, execute o seguinte cmdlet e reinicie o computador logo após:

Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters” SMB1 -Type DWORD -Value 0 -Force

  • Para desabilitar o SMBv2 e SMBv3 no servidor SMB, execute o seguinte cmdlet e reinicie o computador logo após:

Set-ItemProperty -Path “HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters” SMB2 -Type DWORD -Value 0 -Force

Através do Editor de Registro

  • Para habilitar ou desabilitar o SMBv1 no servidor SMB, configure a seguinte chave do Registro:

Subchave do Registro: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\ParametersRegister entry: SMB1

REG_DWORD: 0 = Desabilitado

REG_DWORD: 1 = Habilitado

Padrão: 1 = Habilitado

  • Para habilitar ou desabilitar o SMBv2 no servidor SMB, configure a seguinte chave do Registro:

Subchave do Registro: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

Register entry: SMB2

REG_DWORD: 0 = Desabilitado

REG_DWORD: 1 = Habilitado

Padrão: 1 = Habilitado

Maiores detalhes sobre a ativação, desativação e funções detalhadas dos protocolos SMBv1, SMBv2 e SMBv3 podem ser encontrados no site de suporte da Microsoft Corporation nos links ao final do artigo.

Bloqueando Portas

O bloqueio das portas TCP 137, 139 e 445 e das portas UDP 137 e 138 pode ser feito feito da maneira tradicional no Windows

  • Acesse o Firewall do Windows através do Painel de controle

  • Procure nas opções avançadas a aba regras de entrada

  • Selecione a criação de uma nova regra e escolha a opção TCP para as portas 137, 139 e 445 e UDP para as portas 137 e 138

  • Selecione a opção Bloquear a Conexão e finaliza a criação de regra

  • Esses passos deverão ser feitos uma vez para as portas TCP e outra para as portas UDP

Ainda é possível bloquear as portas através de operações na linha de comando:

  • Com privilégios de administrador acesse a linha de comando

  • Execute: netsh advfirewall set allprofile state on

  • Execute: netsh advfirewall firewall add rule dir=in action=block protocol=PROTOCOLO localport=PORTA name=”Block_PROTOCOLOPORTA
  • Substitua o campo PORTA pelo número da porta desejada e PROTOCOLO pelo protocolo em questão, seja ele TCP ou UDP

Para acessar o boletim de segurança completo da Microsoft acerca dessa vulnerabilidade acesse este link.

Maiores informações sobre o NMAP podem ser encontradas aqui

[1] – https://memoria.rnp.br/cais/alertas/2006/MS06-030.html

[2] – https://msdn.microsoft.com/pt-br/library/hh831795(v=ws.11).aspx

[3] – https://technet.microsoft.com/pt-br/library/security/MS17-010#ID0ERPAG

[4] – https://nmap.org/book/inst-windows.html

[5] – https://www.samba.org/cifs/docs/what-is-smb.html