Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
tscopy — Инструмент на Python, который анализирует NTFS $MFT для копирования заблокированных файлов во время реагирования на инциденты, обходя блокировки ОС путем чтения сырых дисковых расположений. Поддерживает рекурсивное, шаблонное и множественное копирование файлов с кэшированием для производительности. | Kitploit
Инструменты/GitHubGitHub/trustedsec/tscopy
Дисковая криминалистикаФорензикаВосстановление ДанныхЦифровая криминалистикаРеагирование на Инциденты
GitHubtrustedsec/tscopy

tscopy

Репозиторий
103234 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →

Описание

Инструмент на Python, который анализирует NTFS $MFT для копирования заблокированных файлов во время реагирования на инциденты, обходя блокировки ОС путем чтения сырых дисковых расположений. Поддерживает рекурсивное, шаблонное и множественное копирование файлов с кэшированием для производительности.

Поделиться

TScopy

TScopy Logo

Обновлено 2022-03-31

Введение в TScopy

Во время расследования инцидентов (IR) часто требуется возможность анализировать файлы в файловой системе. Иногда эти файлы заблокированы операционной системой (ОС), поскольку используются, что особенно раздражает в случае журналов событий и кустов реестра. TScopy позволяет пользователю, работающему с правами администратора, получать доступ к заблокированным файлам, извлекая их сырое расположение в файловой системе и копируя без обращения к ОС.

Существуют и другие инструменты, выполняющие аналогичные функции, например RawCopy, который мы использовали и который стал основой для этого инструмента. Однако у RawCopy есть некоторые недостатки, побудившие нас разработать TScopy, включая производительность, размер и возможность встраивания в другие инструменты.

Этот блог предназначен для знакомства с TScopy, но также и для просьбы о помощи. Как и в любой разработке ПО, чем больше инструмент используется, тем больше крайних случаев можно обнаружить. Мы просим людей опробовать инструмент и сообщать о любых ошибках.

Что такое TScopy?

TScopy — это скрипт на Python, используемый для парсинга файла $MFT файловой системы NTFS с целью поиска и копирования определённых файлов. Анализируя Master File Table (MFT), скрипт обходит блокировки операционной системы на файлы. Изначально скрипт был основан на работе RawCopy. RawCopy написан на AutoIT и его сложно модифицировать для наших целей. Решение портировать RawCopy на Python было принято из-за необходимости встроить эту функциональность нативно в наш набор инструментов.

TScopy предназначен для запуска как отдельная программа или для включения в качестве модуля Python. Реализация на Python использует инструменты python-ntfs, доступные по адресу https://github.com/williballenthin/python-ntfs. TScopy построен на базовой функциональности python-ntfs для изоляции расположения каждого файла с сырого диска.

Чем TScopy отличается?

TScopy написан на Python и организован в классы, что делает его более поддерживаемым и читаемым по сравнению с AutoIT. AutoIT может быть помечен антивирусом или детектирующим ПО как вредоносный, поскольку некоторые вредоносные программы использовали его возможности.

Основное различие между TScopy и RawCopy — это возможность копировать несколько файлов за один запуск и кэширование структуры файлов. Как показано на изображении ниже, TScopy имеет опции для загрузки одного файла, нескольких файлов, разделённых запятыми, содержимого каталога, путей с подстановочными знаками (отдельные файлы или каталоги) и рекурсивных каталогов.

TScopy кэширует расположение каждого каталога и файла по мере итерации полного пути целевого файла. Затем он использует этот кэш для оптимизации поиска других файлов, что обеспечивает гораздо более быстрое выполнение последующих копий. Это значительное преимущество перед RawCopy, который для каждого файла итерирует весь путь.

Параметры TScopy

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

usage: 
    TScopy_x64.exe -r -o c:\test -f c:\users\tscopy\ntuser.dat 
        Description: Copies only the ntuser.dat file to the c:\test directory 
    TScopy_x64.exe -o c:\test -f c:\Windows\system32\config 
        Description: Copies all files in the config directory but does not copy the directories under it.  
    TScopy_x64.exe -r -o c:\test -f c:\Windows\system32\config 
        Description: Copies all files and subdirectories in the config directory.  
    TScopy_x64.exe -r -o c:\test -f c:\users\*\ntuser*,c:\Windows\system32\config 
        Description: Uses Wildcards and listings to copy any file beginning with ntuser under users accounts and recursively copies the registry hives.
    

Copy protected files by parsing the MFT. Must be run with Administrator privileges

optional arguments:
  -h, --help            show this help message and exit
  -f FILE, --file FILE  Full path of the file or directory to be copied.
                        Filenames can be grouped in a comma ',' seperated
                        list. Wildcard '*' is accepted.
  -o OUTPUTDIR, --outputdir OUTPUTDIR
                        Directory to copy files too. Copy will keep paths
  -i, --ignore_saved_ref_nums
                        Script stores the Reference numbers and path info to
                        speed up internal run. This option will ignore and not
                        save the stored MFT reference numbers and path
  -r, --recursive       Recursively copies directory. Note this only works with
                        directories.

Существует скрытая опция --debug, которая включает отладочный вывод.

Примеры

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

Копирует куст реестра SYSTEM в e:\outputdir Новый файл будет расположен по адресу e:\outputdir\windows\system32\config\SYSTEM

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

Копирует куст реестра SYSTEM в e:\outputdir, но игнорирует все предыдущие кэшированные файлы и не сохраняет текущий кэш на диск

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

Копирует кусты реестра SYSTEM и SOFTWARE в e:\outputdir

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

Копирует содержимое каталога config в e:\outputdir

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

Рекурсивно копирует содержимое каталога config в e:\outputdir

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

Копирует файл NTUSER.DAT каждого пользователя в e:\outputdir

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

Для каждого пользователя копирует все файлы, начинающиеся с NTUSER.DAT, в 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

Для каждого пользователя копирует все jumplists, кусты реестра и историю команд PowerShell в e:\outputdir

Информация о сообщении об ошибках

Пожалуйста, сообщайте об ошибках в разделе Issues на странице GitHub.

Исправления ошибок и улучшения

Версия 4.0

  • Исправлено копирование файлов, содержащих разреженные данные. Issue #13 (Ошибка копирования c:$extend$usnjrnl$j)
  • Файлы больше не считываются в память перед записью на диск. Запись теперь выполняется по мере чтения Data Run. Это должно снизить использование памяти для больших файлов.

Версия 3.0

  • Добавлена поддержка альтернативных потоков данных. Запрашивается корневой файл, и потоки ADS копируются
  • Подстановочный знак для буквы диска. Только фиксированные диски. Пример "*:$MFT" найдёт $MFT для всех локальных дисков
  • Проблемы с ведением журнала. Неудачные копии снова сообщаются как неудачные.
  • Удалено ограничение длины пути файла в 256 символов.

Версия 2.0

  • Issue 1: Изменён sys.exit на генерацию исключения
  • Issue 2: Двойное копирование файлов. Полное имя и короткое имя.
  • Issue 3: Добавлена возможность рекурсивного копирования каталога
  • Issue 4: Добавлена поддержка подстановочных знаков в пути. В настоящее время поддерживается только *
  • Issue 5: Убран жёстко заданный размер MFT. Размер MFT определяется загрузочным сектором
  • Issue 6: Класс TScopy преобразован в синглтон. Это позволяет создать экземпляр класса один раз и повторно использовать текущий объект метаданных MFT для всех копий.
  • Issue 7: Теперь обрабатывается тип атрибута ATTRIBUTE_LIST.
  • Issue 9: Тип атрибута ATTRIBUTE_LIST не обрабатывался для файлов. Это приводило к тихому сбою для таких файлов, как куст реестра SOFTWARE.
  • Изменения: В код добавлены общие комментарии
  • Изменения: Изменены входные параметры. Три различных опции --file, --list и --directory объединены в --file.
  • Изменения: Реструктуризация бэкенда для поддержки новых функций.

TODO:

Скачать инструмент