Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
exploit-CVE-2016-9920 — Exploit de execução remota de código para Roundcube 1.0.0 <= 1.2.2 e container vulnerável | Kitploit
Ferramentas/GitHubGitHub/t0kx/exploit-cve-2016-9920
Segurança de ContêineresAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebAprendizado e EducaçãoLabs e Prática
GitHubt0kx/exploit-cve-2016-9920

exploit-CVE-2016-9920

Exploit de execução remota de código para Roundcube 1.0.0 <= 1.2.2 e container vulnerável

Ver Repositório
4821há 2 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Roundcube 1.0.0 <= 1.2.2 Execução Remota de Código

O Roundcube é um software de webmail de código aberto amplamente distribuído, usado por muitas organizações e empresas ao redor do mundo. O espelho no SourceForge, por exemplo, contabiliza mais de 260.000 downloads nos últimos 12 meses, o que é apenas uma pequena fração dos usuários reais. Uma vez instalado o Roundcube em um servidor, ele fornece uma interface web para usuários autenticados enviarem e receberem e-mails por meio do navegador.

No Roundcube 1.2.2 e versões anteriores, a entrada controlada pelo usuário flui sem sanitização para o quinto argumento de uma chamada à função embutida mail() do PHP, que é documentada como crítica em termos de segurança. O problema é que a invocação da função mail() fará o PHP executar o programa sendmail. O quinto argumento permite passar argumentos para essa execução, o que possibilita uma configuração do sendmail. Como o sendmail oferece a opção -X para registrar todo o tráfego de e-mail em um arquivo, um atacante pode abusar dessa opção e gerar um arquivo PHP malicioso no diretório raiz da web (webroot) do servidor atacado. As seguintes linhas de código disparam a vulnerabilidade.

Requisitos

A vulnerabilidade tem os seguintes requisitos para exploração:

  • O Roundcube deve estar configurado para usar a função mail() do PHP (por padrão, se nenhum SMTP foi especificado [1])
  • A função mail() do PHP está configurada para usar o sendmail (por padrão, veja sendmail_path [2])
  • O PHP está configurado com safe_mode desativado (por padrão, veja safe_mode [3])
  • Um atacante deve saber ou adivinhar o caminho absoluto do webroot

Esses requisitos não são particularmente exigentes, o que por sua vez significa que havia muitos sistemas vulneráveis na natureza.

Ambiente vulnerável

Para configurar um ambiente vulnerável para seu teste, você precisará do Docker instalado e basta executar o seguinte comando:

root@kitploit:~
docker build -t vuln/cve-2016-9920 .
docker run --rm -it -p 80:80 vuln/cve-2016-9920

E ele iniciará uma aplicação web vulnerável em seu host na porta 80

Código vulnerável

No Roundcube 1.2.2 e versões anteriores, a entrada controlada pelo usuário flui sem sanitização para o quinto argumento de uma chamada à função embutida mail() do PHP, que é documentada como crítica em termos de segurança. O problema é que a invocação da função mail() fará o PHP executar o programa sendmail. O quinto argumento permite passar parâmetros adicionais para essa execução, o que possibilita uma configuração do sendmail. Como o sendmail oferece a opção -X para registrar todo o tráfego de e-mail em um arquivo, um atacante pode abusar dessa opção e gerar um arquivo PHP malicioso no diretório raiz da web (webroot) do servidor atacado. Embora essa vulnerabilidade seja rara e não amplamente conhecida, a RIPS a detectou em segundos. [4]

Exploração

Para explorar este alvo, basta executar:

root@kitploit:~
./exploit.py --host HOST --user USERNAME --pwd PASSWORD --path PATH --www_path WEB_DIRECTORY

Se você estiver usando esta imagem vulnerável, basta executar:

root@kitploit:~
./exploit.py --host 127.0.0.1 --user username --pwd password --path roundcube --www_path "/var/www/html/roundcube"

Após a exploração, um arquivo chamado backdoor.php será armazenado na pasta raiz do diretório web. E o exploit lhe dará um shell onde você pode enviar comandos para o backdoor:

root@kitploit:~
./exploit.py --host 127.0.0.1 --user username --pwd password --path roundcube --www_path "/var/www/html/roundcube"
[+] CVE-2016-9920 exploit by t0kx
[+] Exploiting 127.0.0.1
[+] Target exploited, acessing shell at http://127.0.0.1/roundcube/backdoor.php
[+] Running whoami: www-data
[+] Done

Créditos

Esta falha foi encontrada por Robin Peraglie [4]. O texto principal e a ideia deste material educacional foram criados por opsxcq.

Aviso legal

Este ou programas anteriores são SOMENTE para fins educacionais. Não os use sem permissão. O aviso legal usual se aplica, especialmente o fato de que eu (t0kx) não sou responsável por quaisquer danos causados pelo uso direto ou indireto das informações ou funcionalidades fornecidas por estes programas. O autor ou qualquer provedor de internet NÃO tem responsabilidade pelo conteúdo ou uso indevido destes programas ou de quaisquer derivados deles. Ao usar estes programas, você aceita o fato de que qualquer dano (perda de dados, falha do sistema, comprometimento do sistema, etc.) causado pelo uso destes programas não é de responsabilidade do t0kx.

Links

  • [1] https://github.com/roundcube/roundcubemail/wiki/Configuration#sending-messages-via-smtp
  • [2] http://php.net/manual/en/mail.configuration.php
  • [3] http://php.net/manual/en/ini.sect.safe-mode.php
  • [4] https://blog.ripstech.com/2016/roundcube-command-execution-via-email/
Baixar ferramenta