Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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é.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
tscopy — Outil Python qui analyse le $MFT NTFS pour copier des fichiers verrouillés lors d'une réponse à incident, en contournant les verrous du système d'exploitation par lecture des emplacements disque bruts. Prend en charge la copie récursive, avec jokers et multi-fichiers, avec mise en cache pour les performances. | Kitploit
Outils/GitHubGitHub/trustedsec/tscopy
Criminalistique DisqueAnalyse ForensiqueRécupération de DonnéesCriminalistique NumériqueRéponse aux Incidents
GitHubtrustedsec/tscopy

tscopy

Voir le dépôt
103237il y a 4 ansVérifié par Kitploit

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 →

À propos

Outil Python qui analyse le $MFT NTFS pour copier des fichiers verrouillés lors d'une réponse à incident, en contournant les verrous du système d'exploitation par lecture des emplacements disque bruts. Prend en charge la copie récursive, avec jokers et multi-fichiers, avec mise en cache pour les performances.

Partager

TScopy

Logo TScopy

Mise à jour le 2022-03-31

Présentation de TScopy

Lors d'une intervention de réponse aux incidents (IR), il est essentiel de pouvoir analyser les fichiers du système de fichiers. Parfois, ces fichiers sont verrouillés par le système d'exploitation (OS) car ils sont en cours d'utilisation, ce qui est particulièrement frustrant pour les journaux d'événements et les ruches du registre. TScopy permet à l'utilisateur, disposant de privilèges administrateur, d'accéder aux fichiers verrouillés en analysant leur emplacement brut dans le système de fichiers et en les copiant sans solliciter l'OS.

Il existe d'autres outils qui effectuent des fonctions similaires, comme RawCopy, que nous avons utilisé et qui sert de base à cet outil. Cependant, RawCopy présente certains inconvénients qui nous ont conduits à développer TScopy, notamment en termes de performances, de taille et de possibilité d'intégration dans d'autres outils.

Ce billet a pour but de présenter TScopy, mais aussi de demander de l'aide. Comme dans tout développement logiciel, plus un outil est utilisé, plus on découvre de cas particuliers. Nous demandons aux utilisateurs de tester l'outil et de signaler tout bug.

Qu'est-ce que TScopy ?

TScopy est un script Python utilisé pour analyser le fichier $MFT du système NTFS afin de localiser et copier des fichiers spécifiques. En analysant la table de fichiers maîtres (MFT), le script contourne les verrous du système d'exploitation sur les fichiers. Le script est initialement basé sur le travail de RawCopy. RawCopy est écrit en AutoIT et est difficile à modifier pour nos besoins. Le choix de porter RawCopy en Python a été fait en raison de la nécessité d'intégrer cette fonctionnalité nativement dans notre boîte à outils.

TScopy est conçu pour être exécuté comme un programme autonome ou inclus comme un module Python. L'implémentation Python utilise les outils python-ntfs disponibles sur https://github.com/williballenthin/python-ntfs. TScopy s'appuie sur les fonctionnalités de base de python-ntfs pour isoler l'emplacement de chaque fichier sur le disque brut.

Qu'est-ce qui rend TScopy différent ?

TScopy est écrit en Python et organisé en classes pour le rendre plus maintenable et lisible qu'AutoIT. AutoIT peut être signalé comme malveillant par les antivirus ou les logiciels de détection car certains malwares ont utilisé son potentiel.

La principale différence entre TScopy et RawCopy est la possibilité de copier plusieurs fichiers par exécution et de mettre en cache la structure des fichiers. Comme le montre l'image ci-dessous, TScopy propose des options pour télécharger un seul fichier, plusieurs fichiers séparés par des virgules, le contenu d'un répertoire, des chemins avec des caractères génériques (fichiers ou répertoires individuels) et des répertoires récursifs.

TScopy met en cache l'emplacement de chaque répertoire et fichier lorsqu'il parcourt le chemin complet du fichier cible. Il utilise ensuite ce cache pour optimiser la recherche d'autres fichiers, garantissant ainsi que les copies futures sont beaucoup plus rapides. C'est un avantage significatif par rapport à RawCopy, qui parcourt l'intégralité du chemin pour chaque fichier.

Options de TScopy

root@kitploit:~
.\TScopy_x64.exe -h

usage: 
    TScopy_x64.exe -r -o c:\test -f c:\users\tscopy\ntuser.dat 
        Description: Copie uniquement le fichier ntuser.dat dans le répertoire c:\test 
    TScopy_x64.exe -o c:\test -f c:\Windows\system32\config 
        Description: Copie tous les fichiers du répertoire config mais ne copie pas les sous-répertoires.  
    TScopy_x64.exe -r -o c:\test -f c:\Windows\system32\config 
        Description: Copie tous les fichiers et sous-répertoires du répertoire config.  
    TScopy_x64.exe -r -o c:\test -f c:\users\*\ntuser*,c:\Windows\system32\config 
        Description: Utilise des caractères génériques et des listes pour copier tout fichier commençant par ntuser sous les comptes utilisateurs et copie récursivement les ruches du registre.
    

Copie les fichiers protégés en analysant la MFT. Doit être exécuté avec des privilèges Administrateur

arguments optionnels:
  -h, --help            Affiche ce message d'aide et quitte
  -f FILE, --file FILE  Chemin complet du fichier ou du répertoire à copier.
                        Les noms de fichiers peuvent être regroupés dans une
                        liste séparée par des virgules ','. Le caractère
                        générique '*' est accepté.
  -o OUTPUTDIR, --outputdir OUTPUTDIR
                        Répertoire de destination des fichiers. La copie
                        conserve les chemins.
  -i, --ignore_saved_ref_nums
                        Le script stocke les numéros de référence et les
                        informations de chemin pour accélérer l'exécution
                        interne. Cette option ignore et ne sauvegarde pas les
                        numéros de référence MFT stockés et le chemin.
  -r, --recursive       Copie récursivement le répertoire. Notez que cela ne
                        fonctionne qu'avec les répertoires.

Il existe une option cachée '--debug', qui active la sortie de débogage.

Exemples

root@kitploit:~
TScopy_x64.exe -f c:\windows\system32\config\SYSTEM -o e:\outputdir

Copie la ruche de registre SYSTEM dans e:\outputdir Le nouveau fichier sera situé dans e:\outputdir\windows\system32\config\SYSTEM

root@kitploit:~
TScopy_x64.exe -f c:\windows\system32\config\SYSTEM -o e:\outputdir -i

Copie la ruche de registre SYSTEM dans e:\outputdir mais ignore tout fichier précédemment mis en cache et ne sauvegarde pas le cache actuel sur le disque

root@kitploit:~
TScopy_x64.exe -f c:\windows\system32\config\SYSTEM,c:\windows\system32\config\SOFTWARE -o e:\outputdir

Copie les ruches de registre SYSTEM et SOFTWARE dans e:\outputdir

root@kitploit:~
TScopy_x64.exe -f c:\windows\system32\config\ -o e:\outputdir

Copie le contenu du répertoire config dans e:\outputdir

root@kitploit:~
TScopy_x64.exe -r -f c:\windows\system32\config\ -o e:\outputdir

Copie récursivement le contenu du répertoire config dans e:\outputdir

root@kitploit:~
TScopy_x64.exe  -f c:\users\*\ntuser.dat -o e:\outputdir

Copie le fichier NTUSER.DAT de chaque utilisateur dans e:\outputdir

root@kitploit:~
TScopy_x64.exe  -f c:\users\*\ntuser.dat* -o e:\outputdir

Pour chaque utilisateur, copie tous les fichiers commençant par NTUSER.DAT dans e:\outputdir

root@kitploit:~
TScopy_x64.exe  -f c:\users\*\AppData\Roaming\Microsoft\Windows\Recent,c:\windows\system32\config,c:\users\*\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt -o e:\outputdir

Pour chaque utilisateur, copie tous les jumplists, les ruches de registre et les commandes d'historique PowerShell dans e:\outputdir

Informations pour le signalement de bugs

Veuillez signaler les bugs dans la section issues de la page GitHub.

Corrections de bugs et améliorations

Version 4.0

  • Correction de la copie de fichiers contenant des données fragmentées (sparse data). Problème #13 (Erreur lors de la copie de c:$extend$usnjrnl$j)
  • Les fichiers ne sont plus lus en mémoire avant d'être écrits sur le disque. Les écritures sont désormais effectuées lors de la lecture des séquences de données (data runs). Cela devrait réduire l'utilisation de la mémoire pour les fichiers volumineux.

Version 3.0

  • Ajout de la prise en charge des flux de données alternatifs (Alternative Data Stream). La demande du fichier racine et des flux ADS est copiée.
  • Caractère générique pour la lettre de lecteur. Seulement pour les lecteurs fixes. Exemple : "*:$MFT" trouvera le $MFT pour tous les lecteurs locaux.
  • Problèmes de journalisation. Les échecs de copie sont à nouveau signalés comme échecs.
  • Suppression de la limite de taille de chemin de fichier de 256 caractères.

Version 2.0

  • Problème 1 : Changement de sys.exit en levée d'exception
  • Problème 2 : La double copie de fichiers. Nom complet et nom court.
  • Problème 3 : Ajout de la possibilité de copier récursivement un répertoire
  • Problème 4 : Ajout de la prise en charge des caractères génériques dans le chemin. Actuellement, seul * est pris en charge
  • Problème 5 : Suppression de la taille MFT codée en dur. La taille MFT est déterminée par le secteur de démarrage
  • Problème 6 : Conversion de la classe TScopy en singleton. Cela permet d'instancier la classe une seule fois et de réutiliser l'objet de métadonnées MFT actuel pour toutes les copies.
  • Problème 7 : Le type d'attribut ATTRIBUTE_LIST est désormais géré.
  • Problème 9 : Le type d'attribut ATTRIBUTE_LIST n'était pas géré pour les fichiers. Cela provoquait un échec silencieux pour des fichiers comme la ruche de registre SOFTWARE.
  • Modifications : Des commentaires généraux ont été ajoutés au code
  • Modifications : Les paramètres d'entrée ont changé. Les trois (3) options différentes --file, --list et --directory ont été réduites à --file.
  • Modifications : Restructuration du backend pour prendre en charge de nouvelles fonctionnalités.

À faire :

Télécharger l’outil