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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/bcoles/kasld
РазведкаЭксплуатацияСбор информацииCTFТестирование на ПроникновениеЭксплуатация Бинарных Файлов
GitHubbcoles/kasld

kasld

KASLD устраняет рандомизацию виртуального и физического размещения памяти ядра Linux из локального процесса, используя все доступные ему возможности — привилегии, конфигурацию и ограничения изоляции.

Репозиторий
52151514 ч 25 мин назадПроверено Kitploit

Популярное

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

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

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

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

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

KASLD logo generated with Copilot (cropped)

Build Status CodeQL Platform: Linux Architectures C99 Release License: MIT

KASLD восстанавливает виртуальную и физическую раскладку памяти ядра Linux — прежде всего базовый адрес текста ядра — из локального процесса, используя всё, что позволяет точка обзора этого процесса: его привилегии и возможности, конфигурацию системы и любое ограничение контейнера. Там, где утечка или побочный канал позволяют, он восстанавливает базовый адрес текста ядра напрямую, а в остальных случаях сужает его до наименьшего набора размещений, которые подтверждаются доступными свидетельствами. Механизм вывода объединяет свидетельства от десятков независимых техник с известными инвариантами архитектуры, сужая размещение ядра до остаточного окна — сообщаемого как число выживших слотов и биты энтропии: верхняя граница защиты, которую KASLR сохраняет с этой точки обзора, а не гарантия того, что базовый адрес находится вне досягаемости атакующего (см. docs/limitations.md). На полностью пропатченном современном ядре — где побочные каналы x86-64 нейтрализованы и не сохраняется прямой утечки текста ядра — полное восстановление часто невозможно, но набор ограничений редко бывает пустым. На архитектурах без KASLR механизм определяет адрес загрузки, выбранный загрузчиком.

Поддерживает:

  • x86 (i386+, amd64)
  • ARM (armv6, armv7, armv8, aarch64)
  • MIPS (mipsbe, mipsel, mips64el)
  • PowerPC (ppc, ppcle, ppc64, ppc64le)
  • RISC-V (riscv32, riscv64)
  • LoongArch (loongarch64)
  • s390

Быстрый старт

root@kitploit:~
sudo apt install libc-dev make gcc binutils git
git clone https://github.com/bcoles/kasld
cd kasld
make
./build/<arch>/kasld

Каталог build/<arch>/ самодостаточен и может быть развёрнут на целевой системе:

root@kitploit:~
build/<arch>/
  kasld              <- run this
  components/        <- leak components

Усиленная конфигурация (kernel.dmesg_restrict=1, kernel.kptr_restrict=1, kernel.perf_event_paranoid=2 или выше, kernel.unprivileged_bpf_disabled=1) сужает путь через файловые оракулы, но это лишь одна ось точки обзора: техники побочных каналов, слабой энтропии и предоставленных возможностей не зависят от этих sysctl. Для тестирования скрипт extra/weaken-kernel-hardening может временно ослабить эти настройки (требуется root).

Пример вывода

Режим текстового вывода по умолчанию печатает обзор, начинающийся с ответа:

root@kitploit:~
KASLD 0.3.1-dev  --  Kernel Address Space Layout Derandomization
Target: x86_64 / 7.0.0

Running 117 of 120 components (3 experimental skipped; use -x to enable)...
[####################] 100%  117/117  40.9s
1 component timed out after 30s and was killed (prefetch_directmap)

  Quantity             Certainty   Window                                   Candidates      Grain
  -------------------  ----------  ---------------------------------------  --------------  -----
  Virtual Image Base   guaranteed  0xffffffff81000000 - 0xffffffffbd400000      483 of 505  2 MiB
  Virtual Image Base   likely      0xffffffff93400000 slide +0x12400000           1 of 483  2 MiB
  Physical Image Base  guaranteed           0x1000000 -         0x3d400000     474 of 8185  2 MiB
  Physical Image Base  likely               0x1000000 -         0x3c29d000      474 of 474  2 MiB
  Direct Map Base      guaranteed  0xffff800000000000 - 0xffffa4aa80000000           37547  1 GiB
  Vmalloc Base         guaranteed  0xffff898000000000 - 0xffffd6d580000000  79191 of 79191  1 GiB
  Vmemmap Base         guaranteed  0xffffa98040000000 - 0xfffffd0000000000           85504  1 GiB
  Module Region Base   guaranteed  0xffffffffa0000000 - 0xffffffffff000000          389121  4 KiB
  Module Region Base   likely      0xffffffffc0000000 - 0xffffffffc0400000  1025 of 389121  4 KiB
  Paging Level         guaranteed  48                                               1 of 2  -

  Note: physical and virtual text randomize independently

  Note: 1 sub-range excluded from the windows above; the counts
        already reflect them (-v lists the ranges).

Evidence  (1 finding, 2 components)
  Region             Position  Address             Sources
  -----------------  --------  ------------------  -------
  virt kernel image  base      0xffffffff93400000        2

[-v: detailed results, memory map, system info]  [-H: hardening assessment]

-v добавляет полный подробный вывод (баннер, блок конфигурации системы, журналы по компонентам, анализ KASLR, карты раскладки памяти). -j выдаёт машиночитаемый JSON — полное структурированное представление, всегда включающее записи по компонентам и оценку усиления защиты. -1 выдаёт одну строку, пригодную для конвейера оболочки. -m форматирует для трекеров задач. -H добавляет оценку усиления защиты к текстовым/markdown-отчётам.

Полный CLI, подробности режимов вывода, режим объяснения и оценку усиления защиты см. в docs/usage.md.

Точка обзора

То, что KASLD может восстановить, зависит от точки обзора запущенного процесса — не от одного уровня привилегий, а от сочетания трёх независимых вещей:

  • Привилегии, группы и возможности — непривилегированный uid, членство в группе вроде adm (которая даёт доступ к журналам ядра в /var/log/), задача контейнера, обладающая дополнительной возможностью, или root. Они не образуют единой лестницы, потому что права доступа файловой системы ограничивают каждый источник независимо: контейнер, получивший CAP_SYS_RAWIO, является root'ом init-пространства имён для этой проверки и может читать /proc/kcore — утечку, недоступную обычному пользователю — тогда как дистрибутивы различаются в том, является ли файл вроде /boot/System.map доступным для чтения всем вообще.
  • Конфигурация системы — kptr_restrict, dmesg_restrict, perf_event_paranoid, непривилегированный BPF, блокировка ядра. Конфигурация независима от привилегий: root не может читать /proc/kallsyms при kptr_restrict=2, тогда как ослабленный sysctl или непривилегированный BPF могут дать обычному пользователю утечку, в которой усиленная система отказала бы.
  • Ограничение — пространство имён или песочница seccomp, которая маскирует оракулы или блокирует системные вызовы, сужая то, что наблюдает любой уровень привилегий.

Эти три оси ограничивают каждый источник утечки независимо — поэтому больше привилегий не является надмножеством меньших: конфигурация может отказать в источнике root'у, а побочные каналы полностью обходят sysctl. docs/usage.md содержит матрицу «источник утечки — ограничитель», показывающую, какая ось управляет каждым источником.

KASLD по умолчанию предполагает мало привилегий и оппортунистически использует всё, что даёт точка обзора. Сообщаемое гарантированное окно никогда не зависит от привилегий: повышенный доступ или слабая конфигурация могут расширить то, что предпринимается, но никогда — обоснованную раскладку, которую доказывают свидетельства. Подробный (-v), JSON (-j) и Markdown (-m) выводы сообщают обнаруженную точку обзора — контейнер, ограничение, читаемые оракулы и утечки, ограниченные возможностями, достижимые из текущих возможностей.

Документация

Впервые в KASLD? Читайте по порядку: docs/kaslr.md (что такое KASLR и что он рандомизирует) → docs/architecture.md → A leak from end to end (как KASLD превращает одну утечку в ответ) → docs/limitations.md (что результат доказывает, а что нет) → CONTRIBUTING.md (добавление компонента утечки или правила вывода). Таблица ниже индексирует документацию по темам.

Сборка

Требуется компилятор, поддерживающий макрос _GNU_SOURCE, из-за использования непортируемого кода (MAP_ANONYMOUS, getline(), popen(), …).

root@kitploit:~
make              # build kasld + components
make run          # build and run
make test         # build and run unit tests
make cross        # cross-compile for all supported architectures
make install      # install to /usr/local (PREFIX=/usr/local)
make installcheck # smoke-test the installed bin/kasld + libexec/kasld/
make uninstall    # remove installed files
make clean        # remove build directory
make print-deps   # list build dependencies (libs + per-component flags)
make help         # show all targets and options

make print-deps сообщает требуемый инструментарий, две необязательные библиотеки (pthread, zlib) с результатом их автоопределения для текущего компилятора и исключения флагов компиляции/компоновки по компонентам — этого достаточно, чтобы заполнить control-файл пакета дистрибутива, не читая логику проверок в Makefile.

make installcheck запускает установленный bin/kasld и подтверждает, что он обнаруживает свои компоненты через путь FHS ../libexec/kasld — дымовой тест после установки для схемы раздельной установки, использующий те же PREFIX/DESTDIR, что и make install (поэтому он также работает против промежуточного корня DESTDIR в CI пакетов).

make install также устанавливает страницы руководства man1 для kasld и ksymoff в <prefix>/share/man/man1/, так что man kasld и man ksymoff работают после установки.

KASLD можно кросс-компилировать с помощью make, указав соответствующий компилятор (CC). При кросс-компиляции статическая компоновка применяется автоматически:

root@kitploit:~
make CC=aarch64-linux-musl-gcc

Собрать все поддерживаемые цели кросс-компиляции (инструментарии должны быть в PATH):

root@kitploit:~
make cross

Лицензия

KASLD распространяется под лицензией MIT (см. LICENSE). Некоторые компоненты утечек адаптируют сторонний код proof-of-concept или реализуют технику, впервые опубликованную другими; каждый такой файл указывает своего исходного автора и источник в заголовке, а THIRD-PARTY-NOTICES.md перечисляет каждый с его лицензией или основанием для повторного использования (лицензия upstream, разрешение автора или материал техники/воспроизведения, перереализованный здесь).

Цитирование KASLD

KASLD распространяется под лицензией MIT — указание авторства не требуется для использования, но цитирование или ссылка приветствуются везде, где на него ссылаются в исследованиях, инструментах, эксплойтах или текстах:

KASLD: Kernel Address Space Layout Derandomization, Brendan Coles, https://github.com/bcoles/kasld

BibTeX:

root@kitploit:~
@software{kasld,
  title   = {KASLD: Kernel Address Space Layout Derandomization},
  author  = {Coles, Brendan},
  url     = {https://github.com/bcoles/kasld},
  version = {0.3.0},
  year    = {2026}
}

GitHub также показывает кнопку "Cite this repository" из CITATION.cff. Для невыпущенной сборки из master цитируйте конкретный коммит и дату обращения — например, bcoles/kasld@<commit> (accessed YYYY-MM-DD) — поскольку строки версии -dev не уникальны для отдельного коммита.

Скачать инструмент
/proc
ТемаДокумент
Введение в KASLRdocs/kaslr.md — история KASLR по архитектурам, базовый адрес текста по умолчанию, vmsplit, FG-KASLR
Использование и CLIdocs/usage.md — CLI, режимы вывода, режим объяснения, оценка усиления защиты
Интерпретация результатовdocs/limitations.md — что означает отрицательный или частичный результат: обоснованно, но не полно, и почему неудача не является гарантией безопасности
Техники обходаdocs/bypass-techniques.md — утечки через файловую систему, побочные каналы, утечки через syscall / ioctl, слабая энтропия, пропатченные CVE, произвольное чтение
Эксплуатацияdocs/exploitation.md — где обход KASLR вписывается в эксплойт, control-flow против data-only, шаблон pwntools, ksymoff
След и обнаружениеdocs/footprint.md — как выглядит запуск на отслеживаемом хосте: поведенческая сигнатура для его обнаружения и цена OPSEC для оператора; громкий по замыслу
Утилитыextra/README.md — вспомогательные скрипты в extra/ (capture/replay, проверка обоснованности, posture-diff, ksymoff) и как они сочетаются
Архитектура и внутреннее устройствоdocs/architecture.md — механизм вывода, швы потоков данных, протокол тегированных строк, вывод между регионами
Участие в разработкеCONTRIBUTING.md — написание компонента или правила, API эмиттера, коды выхода, метаданные
Тестирование и CIdocs/testing.md — тесты на хосте, фикстуры воспроизведения, кросс-архитектуры под qemu-user, покрытие
Воспроизводимостьdocs/reproducibility.md — независимая проверка: на локальном ядре, вживую на разных архитектурах или на захваченном корпусе