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

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

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

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

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

Категории

Все категории
Loading categories
Kernel-exploitation — Заметки и скрипты по разработке эксплойтов для ядра Linux для заданий CTF, охватывающие извлечение initramfs, эксплуатацию msg_msg/ldt_struct и практические техники эксплуатации для повышения привилегий. | Kitploit
Инструменты/GitHubGitHub/ameetsaahu/kernel-exploitation
Повышение привилегийЭксплуатацияCTFОбучение и ОбразованиеПодобранные РесурсыЭксплуатация Бинарных Файлов
GitHubameetsaahu/kernel-exploitation

Kernel-exploitation

Заметки и скрипты по разработке эксплойтов для ядра Linux для заданий CTF, охватывающие извлечение initramfs, эксплуатацию msg_msg/ldt_struct и практические техники эксплуатации для повышения привилегий.

Популярное

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

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

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

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

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

Эксплуатация ядра

decompress.sh

Извлечение файла из CPIO-архива

root@kitploit:~
#!/bin/sh
mkdir fs
cd fs
cp ../initramfs.cpio.gz ./initramfs.cpio.gz
gunzip ./initramfs.cpio.gz
cpio -idm < ./initramfs.cpio
rm initramfs.cpio
cd ..

compress.sh

Скомпилируйте эксплойт, добавьте его в fs и запустите.

root@kitploit:~
#!/bin/sh
gcc -w -o exploit -static exploit.c -pthread -lrt &&\
# musl-gcc -w -s -static -o3 exploit.c -o exploit -masm=intel &&\
mv exploit ./fs/ &&\
cd fs &&\
find . -print0 | cpio --owner root --null -ov --format=newc | gzip -9 > ../initramfs.cpio.gz &&\
cd .. &&\
# gunzip -f initramfs.cpio.gz &&\
./run.sh

В случае архива с файловой системой ext4

root@kitploit:~
mount ./initramfs.cpio.gz ./fs/

extract-image.sh

Полезные структуры

ldt_struct - системный вызов modify_ldt

Структура размером 0x20, не содержит проверок для вызова copy_to_user

  • https://elixir.bootlin.com/linux/v4.19.98/source/arch/x86/kernel/ldt.c#L553
  • https://github.com/ameetsaahu/Kernel-exploitation/tree/main/0ctffinal2021-kernote

msg_msg

root@kitploit:~
struct msg_msg {
    struct list_head m_list;
    long m_type;
    size_t m_ts;        /* message text size */
    struct msg_msgseg *next;
    void *security;
    /* the actual message follows immediately */
};

Пользовательское сообщение хранится сразу после структуры msg_msg вплоть до 0x1000 - 0x30; после этого идёт односвязный список блоков, хранящийся в struct msg_msgseg *next, с размером каждого выделения до 0x1000. Список завершается (и должен завершаться) значением NULL.

Для произвольного чтения: перезапишите next и m_ts так, чтобы данные читались из перезаписанного указателя next.

Для произвольной записи:

root@kitploit:~
msgsnd()        // Userland
    do_msgsnd() // Kernel land
        load_msg()  
            alloc_msg()         // Allocate all the necessary chunks
            copy_from_user()    // Race here to replace `struct msg_msgseg *next` before its used to copy userdata. Maybe use userfaultfd ;)

msg_msg do_msgsnd load_msg copy_msg

  • https://github.com/ameetsaahu/Kernel-exploitation/tree/main/corctf2021-fire_of_salvation
  • https://syst3mfailure.io/wall-of-perdition

Разное

Ограничение запуска процесса на конкретном CPU

root@kitploit:~
cpu_set_t cpu_set;
CPU_ZERO(&cpu_set);
CPU_SET(0,&cpu_set);
ret=sched_setaffinity(0,sizeof(cpu_set),&cpu_set);

Ссылки

  • https://github.com/xairy/linux-kernel-exploitation от @andreyknvl
  • Подборка структур, полезных для kernel-exp от @ptr-yudai
  • https://blog.hacktivesecurity.com/index.php/2022/06/13/linux-kernel-exploit-development-1day-case-study
  • https://duasynt.com/blog/linux-kernel-heap-feng-shui-2022
  • https://googleprojectzero.blogspot.com/2019/11/bad-binder-android-in-wild-exploit.html
  • https://cloudfuzz.github.io/android-kernel-exploitation
Скачать инструмент