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

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

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

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

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

Категории

Все категории
Loading categories
rustproofing-linux — Учебные примеры портирования уязвимостей ядра Linux на Rust, содержащие намеренно уязвимый код и эксплойты для изучения безопасности ядра и гарантий безопасности Rust. | Kitploit
Инструменты/GitHubGitHub/nccgroup/rustproofing-linux
Статический анализАнализ уязвимостейАнализ КодаОбучение и ОбразованиеПодобранные РесурсыЭксплуатация Бинарных ФайловЛаборатории и Практика
GitHubnccgroup/rustproofing-linux

rustproofing-linux

Учебные примеры портирования уязвимостей ядра Linux на Rust, содержащие намеренно уязвимый код и эксплойты для изучения безопасности ядра и гарантий безопасности Rust.

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

Популярное

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

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

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

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

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

Защита Linux с помощью Rust (Перенос ошибок ядра Linux в Rust)

Этот репозиторий с исходным кодом содержит набор примеров, сопутствующих сообщению в блоге https://research.nccgroup.com/?p=18577.

НЕ ИСПОЛЬЗУЙТЕ эти примеры ни для чего, кроме как для сопровождения сообщения в блоге. Они намеренно содержат уязвимости, и даже «исправленные» версии могут содержать ошибки.

Если вы хотите запустить примеры из сообщения в блоге, следующие рекомендации, надеюсь, упростят это.

Получение зависимостей

Получите исходный код Rust for Linux. Возможно, вам потребуется установить некоторые зависимости, перечисленные на [https://github.com/Rust-for-Linux/linux/blob/rust/Documentation/rust/quick-start.rst](странице быстрого старта) .

root@kitploit:~
git clone https://github.com/Rust-for-Linux/linux rust-for-linux
cd rust-for-linux
git checkout bd123471269354fdd504b65b1f1fe5167cb555fc  # latest commit at the point of writing

Получите virtme. Возможно, вам также потребуется установить QEMU и некоторые другие зависимости.

root@kitploit:~
git clone https://github.com/amluto/virtme

Я считаю virtme очень полезным для быстрой проверки изменений как в ядре, так и в модуле ядра.

Сборка ядер

Соберите базовое ядро, на котором будут запускаться большинство примеров:

root@kitploit:~
cd rust-for-linux
mkdir `pwd`.out
cp ../rustproofing-linux/configs/config-base `pwd`.out/.config
KBUILD_OUTPUT=`pwd`.out make -j$(nproc) LLVM=1

И варианты с несколько иными параметрами конфигурации:

root@kitploit:~
mkdir `pwd`.out.ovf
cp `pwd`.out/.config `pwd`.out.ovf
scripts/config --file `pwd`.out.ovf/.config -d CONFIG_RUST_OVERFLOW_CHECKS
KBUILD_OUTPUT=`pwd`.out.ovf make -j$(nproc) LLVM=1

mkdir `pwd`.out.stackinit
cp `pwd`.out/.config `pwd`.out.stackinit
scripts/config --file `pwd`.out.stackinit/.config -e CONFIG_INIT_STACK_ALL_ZERO
KBUILD_OUTPUT=`pwd`.out.stackinit make -j$(nproc) LLVM=1

Запуск собранного ядра

Используйте следующую команду для запуска собранного ядра в QEMU:

root@kitploit:~
../virtme/virtme-run --kdir `pwd`.out --show-command --show-boot-console --mods=auto -a "kasan_multi_shot" --qemu-opts -cpu core2duo -m 1G -smp 2

Измените параметр --kdir, когда вам нужно запустить два других ядра.

Затем модули компилируются следующей командой. Обратите внимание, что KDIR должен указывать на каталог с скомпилированным ядром, и что вам потребуется перекомпилировать для ../rust-for-linux.out.stackinit и ../rust-for-linux.out.ovf при тестировании примеров, требующих ядер, собранных с другими параметрами.

root@kitploit:~
cd ../rustproofing-linux
make LLVM=1 KDIR=../rust-for-linux.out

Модули загружаются, а proof-of-concept эксплойты запускаются с помощью скрипта test.sh. Примеры приведены в сообщении в блоге.

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