Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
proftpd-sftp-copy-file-write — ProFTPD 1.3.9d - Alta - Remoto - Resíduo de privilégio / Escrita de arquivo - SFTP copy-file ignora WRITE no destino | Kitploit
Ferramentas/GitHubGitHub/abraxas/proftpd-sftp-copy-file-write
Autenticação e AutorizaçãoAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebVirtualização para SegurançaTestes de PenetraçãoPapers e PesquisaLabs e Prática

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
GitHubabraxas/proftpd-sftp-copy-file-write

proftpd-sftp-copy-file-write

ProFTPD 1.3.9d - Alta - Remoto - Resíduo de privilégio / Escrita de arquivo - SFTP copy-file ignora WRITE no destino

Ver Repositório
28há 17 diasAinda não revisado

Abraxas Labs - proftpd-sftp-copy-file-write

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  proftpd-sftp-copy-file-write

Write-up: https://abraxaslabs.tech/research/proftpd-sftp-copy-file-write

proftpd-sftp-copy-file-write

Classe: Privilégio residual / Escrita de arquivo Alcance: Remoto

ProFTPD 1.3.9d (f59f248) - proftpd.org

O contrib mod_sftp anuncia copy-file assim que SFTPEngine está ativado (SFTP_FXP_EXT_DEFAULT). fxp_handle_ext_copy_file executa a WRITE de destino mais AllowOverwrite somente se pr_fsio_stat(dst) for bem-sucedido. Um destino que ainda não existe ignora essa verificação. pr_fs_copy_file2 então cria o arquivo com o UID da sessão, inclusive sob <Limit WRITE> DenyAll.

O STOR do FTP e o OPEN-write do SFTP ainda passam por xfer_pre_stor, que sempre faz dir_check de WRITE antes de criar. A Issue 2095 pública é o inverso: o SITE COPY ignorava a READ da origem. Este resíduo é a WRITE de destino em um novo nome.

IDsem CVE ainda
ClassePrivilégio residual / Escrita de arquivo
AlcanceRemoto (SFTP autenticado)
CWECWE-863
CVSSAlto: 7.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
ProdutoProFTPD
Afetado1.3.9d (f59f248e26bdfa514443e42bf72a145641df635d) contrib mod_sftp
AutenticaçãoSFTP autenticado (SFTPEngine on)
LicençaGNU Affero GPL v3.0
Labsomente 127.0.0.1

Fixe a tag v1.3.9d e li fxp_handle_ext_copy_file. Ele despacha o PRE_CMD de um SITE COPY falso. O mod_copy registra copy_copy como CMD, não como PRE_CMD, então a verificação de WRITE de destino do FTP nunca é executada nesse caminho. A READ da origem sempre passa por dir_check. A WRITE de destino não, a menos que o destino já exista. O lab é SFTP em loopback em 127.0.0.1:18710.

O que um atacante pode fazer

MétodoSinkPrivilégio
SFTP EXTENDED copy-file de uma origem legível para um nome de destino que ainda não existe, sob <Directory> com <Limit WRITE> DenyAllpr_fs_copy_file2Integridade (comprovado em lab): criar esse arquivo com o UID da sessão. Recon (comprovado em lab): a READ via SFTP do destino retorna os bytes da origem quando a READ do destino é permitida.
Mesmo destino já existentedir_check WRITE + AllowOverwriteFechado (comprovado em lab): a sobrescrita via copy-file retorna permissão negada.
OPEN / STOR / upload SCP via SFTP do mesmo destinoxfer_pre_storFechado (comprovado em lab): a escrita/criação via OPEN retorna SSH_FX_PERMISSION_DENIED (status 3).
copy-file não autenticadoautenticação SFTPFechado. Sem shell. O DAC do Unix ainda se aplica.

Comprovado em lab vs inferido: a criação do destino, a READ do destino da testemunha, a negação de escrita via OPEN e a negação de sobrescrita de destino existente são comprovadas em lab. Não autenticado e DAC do Unix permanecem inferidos a partir do modelo de autenticação/chroot.

Requer: contrib mod_sftp carregado, SFTPEngine on. Vhost SFTP típico de distro. SFTPExtensions -copyFile desativa a extensão.

Lab

cd lab
./run.sh

Loopback 127.0.0.1:18710 mapeia o container 2222. Projeto Compose proftpd-sftp-copy-file-write. Tag da imagem proftpd-sftp-copy-file-write:1.3.9d. Witness PROFTPD-SFTP-COPY-FILE-WRITE-WITNESS. Última linha:

SUCCESS PROFTPD-SFTP-COPY-FILE-WRITE dest-exists=yes open-write=denied copy-file=ok overwrite-denied=yes PROFTPD-SFTP-COPY-FILE-WRITE-WITNESS

A correção

dir_check dest WRITE mesmo quando o dest ainda não existe, antes de pr_fs_copy_file2. Ou desative a extensão: SFTPExtensions -copyFile.

Referências

  • github.com/proftpd/proftpd tag v1.3.9d (f59f248e26bdfa514443e42bf72a145641df635d)
  • fxp_handle_ext_copy_file em contrib/mod_sftp/fxp.c
  • SFTP_FXP_EXT_DEFAULT inclui copy-file
  • Inverso (skip de READ na origem em FTP SITE COPY, não este resíduo de WRITE no dest): Issue 2095
  • CWE-863
Baixar ferramenta