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

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

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

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

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

Категории

Все категории
Loading categories
meltdown — Демонстрации proof-of-concept и библиотека libkdump, демонстрирующие микропроцессорную атаку Meltdown, приводящую к утечке памяти ядра и физической памяти на уязвимых процессорах Intel. | Kitploit
Инструменты/GitHubGitHub/isec-tugraz/meltdown
Криминалистика памятиАнализ уязвимостейЭксплуатацияЭксфильтрация данныхКриптографияАппаратная БезопасностьСтатьи и ИсследованияЭксплуатация Бинарных ФайловArchived
GitHubisec-tugraz/meltdown

meltdown

Демонстрации proof-of-concept и библиотека libkdump, демонстрирующие микропроцессорную атаку Meltdown, приводящую к утечке памяти ядра и физической памяти на уязвимых процессорах Intel.

4.2k520194 лет назадЕщё не проверено

Популярное

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

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

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

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

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

Proof-of-Concept Meltdown

Этот репозиторий содержит несколько приложений, демонстрирующих уязвимость Meltdown. Техническую информацию об уязвимости см. в статье:

  • Meltdown авторов Lipp, Schwarz, Gruss, Prescher, Haas, Mangard, Kocher, Genkin, Yarom и Hamburg

Приложения в этом репозитории собраны с использованием libkdump — библиотеки, разработанной нами для статьи. Эта библиотека упрощает эксплуатацию уязвимости за счёт автоматической адаптации к определённым свойствам окружения.

Видео

Этот репозиторий содержит несколько видео, демонстрирующих Meltdown

  • Видео №1 показывает, как Meltdown можно использовать для слежки в реальном времени за вводом пароля.
  • Видео №2 показывает, как Meltdown утекает содержимое физической памяти.
  • Видео №3 показывает, как Meltdown восстанавливает фотографию из памяти.
  • Видео №4 показывает, как Meltdown восстанавливает фотографию из памяти, закодированную в формате FLIF.
  • Видео №5 показывает, как Meltdown утекает некэшированную память.

Демонстрации

Этот репозиторий содержит пять демонстраций, показывающих различные варианты использования. Все демонстрации протестированы на Ubuntu 16.04 с Intel Core i7-6700K, но должны работать на любой системе Linux с любым современным процессором Intel, выпущенным после 2010 года.

Для наилучших результатов мы рекомендуем быстрый процессор с поддержкой Intel TSX (например, любой Intel Core i7-5xxx, i7-6xxx или i7-7xxx). Кроме того, каждую демонстрацию следует привязать к одному ядру CPU, например, с помощью taskset.

Зависимость для сборки демонстраций

В качестве предварительного условия необходимо установить glibc-static на вашей машине.

Для систем на основе RPM:

sudo yum install -y glibc-static

Демонстрация №1: Первый тест (test)

Это самая базовая демонстрация. Она использует Meltdown для чтения доступных адресов из собственного адресного пространства, не нарушая никаких механизмов изоляции.

Если эта демонстрация не работает у вас, остальные, скорее всего, тоже не будут работать. Причины могут быть разными, например: процессор может быть слишком медленным, не поддерживать внеочередное исполнение, таймер высокого разрешения может быть недостаточно точным (особенно в виртуальных машинах), операционная система может не поддерживать пользовательские обработчики сигналов и т. д.

Сборка и запуск

make
taskset 0x1 ./test

Если вы увидите вывод, похожий на этот

Expect: Welcome to the wonderful world of microarchitectural attacks
   Got: Welcome to the wonderful world of microarchitectural attacks

значит, базовая демонстрация работает.

Демонстрация №2: Обход KASLR (kaslr)

Начиная с ядра Linux 4.12, KASLR (Kernel Address Space Layout Randomization — рандомизация размещения адресного пространства ядра) активна по умолчанию. Это означает, что расположение ядра (а также прямой физической карты, которая отображает всю физическую память) меняется при каждой перезагрузке.

Эта демонстрация использует Meltdown для утечки (секретной) рандомизации прямой физической карты. Для ускорения процесса этой демонстрации требуются права root. В статье описан вариант, не требующий прав root.

Сборка и запуск

make
sudo taskset 0x1 ./kaslr

Через несколько секунд вы должны увидеть что-то похожее на это

[+] Direct physical map offset: 0xffff880000000000

Демонстрация №3: Тест надёжности (reliability)

Эта демонстрация проверяет, насколько надёжно можно читать физическую память. Для этой демонстрации вам либо нужно смещение прямой физической карты (например, из демонстрации №2), либо необходимо отключить KASLR, указав nokaslr в командной строке ядра.

Сборка и запуск

Соберите и запустите reliability. Если у вас включён KASLR, первый параметр — это смещение прямой физической карты. В противном случае программа не требует параметров.

make
sudo taskset 0x1 ./reliability 0xffff880000000000

Через несколько секунд вы должны получить вывод, похожий на этот:

[-] Success rate: 99.93% (read 1354 values)

Демонстрация №4: Чтение физической памяти (physical_reader)

Эта демонстрация читает память другого процесса, напрямую считывая физическую память. Для этой демонстрации вам либо нужно смещение прямой физической карты (например, из демонстрации №2), либо необходимо отключить KASLR, указав nokaslr в командной строке ядра.

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

Сборка и запуск

Для демонстрации сначала запустите secret (от имени root), чтобы получить физический адрес читаемой человеком строки:

make
sudo ./secret

Он должен вывести что-то вроде этого:

[+] Secret: If you can read this, this is really bad
[+] Physical address of secret: 0x390fff400
[+] Exit with Ctrl+C if you are done reading the secret

Пока программа secret работает, запустите physical_reader. Первый параметр — это физический адрес, выведенный secret. Если у вас не отключён KASLR, второй параметр — это смещение прямой физической карты.

taskset 0x1 ./physical_reader 0x390fff400 0xffff880000000000

Через несколько секунд вы должны получить вывод, похожий на этот:

[+] Physical address       : 0x390fff400
[+] Physical offset        : 0xffff880000000000
[+] Reading virtual address: 0xffff880390fff400

If you can read this, this is really bad

Демонстрация №5: Дамп памяти (memdump)

Эта демонстрация выгружает содержимое памяти. Как и демонстрации №3 и №4, она использует прямую физическую карту для выгрузки содержимого физической памяти в формате, подобном hexdump.

Опять же, поскольку физическая память содержит много нечитаемых человеком данных, мы предоставляем тестовый инструмент для заполнения больших объёмов физической памяти читаемыми человеком строками.

Сборка и запуск

Для демонстрации сначала запустите memory_filler, чтобы заполнить память читаемыми человеком строками. Первый аргумент — это объём памяти (в гигабайтах) для заполнения.

make
./memory_filler 9

Затем запустите инструмент memdump для выгрузки содержимого памяти. Если вы до этого запускали memory_filler, вы должны увидеть некоторые фрагменты строк. Если у вас запущены Firefox или Chrome с несколькими вкладками, вы также можете увидеть части открытых или недавно закрытых веб-сайтов.

Первый параметр — это физический адрес, с которого должен начаться дамп (оставьте пустым, чтобы начать с первого гигабайта). Второй параметр — это количество байтов, которое вы хотите прочитать; чтобы прочитать всё, укажите -1. Если у вас не отключён KASLR, третий параметр — это смещение прямой физической карты.

taskset 0x1 ./memdump 0x240000000 -1 0xffff880000000000 # start at 9 GB

Вы должны получить hexdump частей памяти (возможно, даже содержащий секреты, такие как пароли, см. пример в статье), например:

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