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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2021-38304-PoC — CVE-2021-38304 Proof of Concept | Kitploit
Инструменты/GitHubGitHub/philsajdak/cve-2021-38304-poc
Memory ForensicsVulnerability AnalysisExploitationLearning & EducationBinary Exploitation
GitHubphilsajdak/cve-2021-38304-poc

CVE-2021-38304-PoC

CVE-2021-38304 Proof of Concept

Репозиторий
1 год назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2021-38304 Доказательство концепции

Обзор

Этот репозиторий содержит доказательство концепции критической уязвимости безопасности в старых версиях драйвера nipalk.sys от National Instruments. Уязвимость позволяет выполнять произвольный код и раскрывать память в режиме ядра. Он предназначен исключительно для личных исследований.

Описание

Драйвер nipalk.sys неправильно обрабатывает указатели, предоставленные пользователем, при обработке конкретного запроса IOCTL. Этот недостаток позволяет злоумышленнику предоставить указатель на функцию, которую драйвер вызовет в контексте ядра с контролируемыми параметрами.

Ключевые моменты

  • Контроль указателя на функцию: Драйвер вызывает предоставленный пользователем указатель на функцию без надлежащей проверки.
  • Контроль параметров: Злоумышленник может контролировать регистры RCX и RDX во время вызова функции.
  • Раскрытие памяти: Вызывая такие функции, как RtlCopyMemory, злоумышленник может читать произвольную память ядра.
  • Отказ в обслуживании (DoS): Передача недопустимого указателя на функцию вызывает сбой системы из-за отсутствия проверки входных данных в драйвере.

Первопричина

Уязвимость возникает из-за того, что драйвер не проверяет указатели, предоставленные пользовательскими приложениями. При обработке IOCTL 0xABCD03C4 драйвер извлекает указатель на функцию из управляемой пользователем структуры и вызывает его без надлежащих проверок:

root@kitploit:~
0045561e 48 8b 01        MOV        RAX,qword ptr [param_1]
00455621 49 8b 52 18     MOV        irp,qword ptr [R10 + 0x18]
00455625 ff 50 08        CALL       qword ptr [RAX + 0x8]
  • Указатель на функцию по адресу [RAX + 8] выполняется в контексте ядра.
  • Параметры RCX и RDX контролируются пользователем.

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

  • Успешная утечка памяти:
root@kitploit:~
[+] Starting exploit
[+] Memory allocated
[+] Values before IOCTL:
   exploit->dummy: 00000000001b0000
   exploit->function_pointer: fffff8017ea21300
[+] Device opened successfully
[+] Sending IOCTL
[+] Values after IOCTL:
   exploit->dummy: 7208f88349c18b48
   exploit->function_pointer: ffff7710f8834937
[+] DeviceIoControl succeeded. Bytes returned: 8
[+] Buffer Output: 1769472
[!] WARNING: exploit->dummy has changed!
[!] WARNING: exploit->function_pointer has changed!
[+] Exploit finished

Отказ от ответственности

Этот PoC предназначен только для образовательных целей.

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