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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/nccgroup/cachegrab
Безопасность встроенных системЭксплуатацияОбратная инженерияМобильная безопасностьАппаратная БезопасностьАнализ Бинарных Файлов
GitHubnccgroup/cachegrab

cachegrab

инструмент, предназначенный для выполнения и визуализации trace-управляемых атак на кэш-память против программного обеспечения в защищённом мире ядер ARMv8 с поддержкой TrustZone

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

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
Сайт

Cachegrab

Cachegrab — это инструмент, предназначенный для выполнения и визуализации trace-driven атак на кэш против программного обеспечения в защищённом мире TrustZone-совместимых ядер ARMv8. Обзор того, как Cachegrab работает «под капотом», см. в анонсе релиза Cachegrab.

Использование Cachegrab на Android

Использовать Cachegrab можно на устройстве Android. Поскольку современные версии Android запрещают модули ядра, параметры ядра CONFIG_MODULES и CONFIG_MODULE_UNLOAD должны быть включены, ядро пересобрано и прошито на устройство. Соберите модуль ядра Cachegrab из исходников ядра и используйте insmod для его загрузки в работающее ядро целевого устройства.

Затем соберите сервер Cachegrab и библиотеку-прослойку (shim) и скопируйте оба файла в /data/local/tmp. Запустите сервер. Наконец, используйте adb forward tcp:8000 tcp:8000, чтобы привязать локальный TCP-порт 8000 к порту устройства.

Предупреждение: Сервер позволяет атакующему задавать произвольные shell-команды для запуска кода жертвы. Эти команды передаются по HTTP и выполняются с root-привилегиями, поэтому крайне важно, чтобы тестовое устройство с Cachegrab находилось в доверенной сети.

Наконец, загрузите графический интерфейс Cachegrab и подключитесь к localhost:8000.

Понимание клиента Cachegrab

Клиент Cachegrab построен вокруг концепции конвейера (pipeline), который обрабатывает сэмплы, содержащие данные атаки. Конвейеры состоят из источника сэмплов, списка фильтров и анализатора. Источником сэмплов может быть расположение в файловой системе, устройство, на котором запущен сервер Cachegrab, или что-то своё. Конвейер собирает сэмплы из источника и пропускает каждый через фильтры конвейера, которые могут изменять данные в сэмпле. Наконец, отфильтрованные сэмплы передаются анализатору, который выполняет финальную обработку данных атаки.

Со значительной частью клиента можно взаимодействовать через графический интерфейс, который предоставляет простой способ управления парой полезных конвейеров. Первый конвейер собирает сэмплы с сервера Cachegrab, настроенного на панели «Scope». Он пропускает эти сэмплы через ряд фильтров и сохраняет полученные отфильтрованные сэмплы в наборе данных (dataset). Наборы данных можно импортировать или экспортировать через графический интерфейс, что упрощает передачу данных сэмплов. Второй конвейер берёт сэмплы из набора данных, прогоняет их через ещё один ряд фильтров и выводит отфильтрованные трассы на график в окне.

Cachegrab GUI

Модуль cachegrab для Python также можно использовать напрямую для создания скрипта сбора или анализа данных. Следующий скрипт берёт набор данных, экспортированный из графического интерфейса, выполняет некоторую обработку трасс в каждом сэмпле и выводит полученные данные.

root@kitploit:~
from cachegrab import Pipeline
from cachegrab.data import Dataset, Trace
from cachegrab.sources import DatasetSource
from cachegrab.filters import Filter
from cachegrab.sinks import AnalysisSink

class SampleFilter(Filter):
    def filter(self, sample):
        for t in sample.get_trace_names():
            data = sample.get_trace(t).data
            sample.set_trace(t, Trace(data - data.mean()))
        return sample

class SampleAnalysis(AnalysisSink):
    def analyze_once(self, sample):
        for t in sample.get_trace_names():
            print sample.get_trace(t).data

dataset = Dataset().load("exported_dataset_location")
pipeline = Pipeline(DatasetSource(dataset), SampleAnalysis())
pipeline.add_filter(SampleFilter())
pipeline.run()
Скачать инструмент