Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
proftpd-sftp-copy-file-write — ProFTPD 1.3.9d - Élevé - À distance - Reste de privilège / Écriture de fichier - La copie de fichier SFTP ignore l'écriture de destination | Kitploit
Outils/GitHubGitHub/abraxas/proftpd-sftp-copy-file-write
Authentification et AutorisationAnalyse des VulnérabilitésExploitationExploitation d'Applications WebVirtualisation de SécuritéTests d'IntrusionArticles et RechercheLabs et Pratique

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
GitHubabraxas/proftpd-sftp-copy-file-write

proftpd-sftp-copy-file-write

ProFTPD 1.3.9d - Élevé - À distance - Reste de privilège / Écriture de fichier - La copie de fichier SFTP ignore l'écriture de destination

Voir le dépôt
28il y a 18 joursPas encore vérifié
Partager

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 : Reliquat de privilège / Écriture de fichier Portée : Distante

ProFTPD 1.3.9d (f59f248) - proftpd.org

Le contrib mod_sftp annonce copy-file dès que SFTPEngine est activé (SFTP_FXP_EXT_DEFAULT). fxp_handle_ext_copy_file exécute l'écriture sur la destination (dest WRITE) plus AllowOverwrite uniquement si pr_fsio_stat(dst) réussit. Une destination qui n'existe pas encore contourne cette vérification. pr_fs_copy_file2 crée alors le fichier avec l'UID de la session, y compris sous <Limit WRITE> DenyAll.

FTP STOR et SFTP OPEN-write passent toujours par xfer_pre_stor, qui effectue systématiquement un dir_check WRITE avant la création. L'Issue 2095 publique est l'inverse : SITE COPY sautait la vérification READ sur la source. Ce reliquat concerne l'écriture sur la destination (dest WRITE) pour un nouveau nom.

IDpas encore de CVE
ClasseReliquat de privilège / Écriture de fichier
PortéeDistante (SFTP authentifié)
CWECWE-863
CVSSÉlevé : 7.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
ProduitProFTPD
Affecté1.3.9d (f59f248e26bdfa514443e42bf72a145641df635d) contrib mod_sftp
AuthSFTP authentifié (SFTPEngine on)
LicenceGNU Affero GPL v3.0
Lab127.0.0.1 uniquement

J'ai épinglé le tag v1.3.9d et analysé fxp_handle_ext_copy_file. Il dispatche le PRE_CMD d'un faux SITE COPY. mod_copy enregistre copy_copy comme CMD, et non comme PRE_CMD, donc la vérification WRITE sur la destination propre à FTP ne s'exécute jamais sur ce chemin. Le READ sur la source passe toujours par dir_check. Le WRITE sur la destination, non, sauf si la destination existe déjà. Le lab est un SFTP en boucle locale sur 127.0.0.1:18710.

Ce qu'un attaquant peut faire

MéthodePoint d'aboutissementPrivilège
SFTP EXTENDED copy-file d'une source lisible vers un nom de destination qui n'existe pas encore, sous <Directory> avec <Limit WRITE> DenyAllpr_fs_copy_file2Intégrité (prouvé en lab) : créer ce fichier avec l'UID de la session. Reconnaissance (prouvé en lab) : un READ SFTP de la destination renvoie les octets de la source lorsque le READ sur la destination est autorisé.
Même destination déjà existantedir_check WRITE + AllowOverwriteFermé (prouvé en lab) : l'écrasement via copy-file renvoie permission denied.
SFTP OPEN / STOR / SCP upload de la même destinationxfer_pre_storFermé (prouvé en lab) : l'écriture/création via OPEN renvoie SSH_FX_PERMISSION_DENIED (statut 3).
copy-file non authentifiéAuth SFTPFermé. Pas de shell. Le DAC Unix s'applique toujours.

Prouvé en lab vs déduit : la création de la destination, le READ de la destination du témoin, le refus de l'écriture via OPEN et le refus de l'écrasement d'une destination existante sont prouvés en lab. Le non-authentifié et le DAC Unix restent déduits du modèle auth/chroot.

Prérequis : contrib mod_sftp chargé, SFTPEngine on. Vhost SFTP typique d'une distribution. SFTPExtensions -copyFile désactive l'extension.

Lab

cd lab
./run.sh

Loopback 127.0.0.1:18710 mappe le conteneur 2222. Projet Compose proftpd-sftp-copy-file-write. Tag d'image proftpd-sftp-copy-file-write:1.3.9d. Témoin PROFTPD-SFTP-COPY-FILE-WRITE-WITNESS. Dernière ligne :

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

Le correctif

dir_check dest WRITE même lorsque la dest n'existe pas encore, avant pr_fs_copy_file2. Ou désactiver l'extension : SFTPExtensions -copyFile.

Références

  • github.com/proftpd/proftpd tag v1.3.9d (f59f248e26bdfa514443e42bf72a145641df635d)
  • fxp_handle_ext_copy_file dans contrib/mod_sftp/fxp.c
  • SFTP_FXP_EXT_DEFAULT inclut copy-file
  • Inverse (source READ skip sur FTP SITE COPY, pas ce dest WRITE résiduel) : Issue 2095
  • CWE-863
Télécharger l’outil