
Многоцелевой инструмент для подтверждения концепции на основе CPU-Z CVE-2017-15303
Пример:
Примечание: Stryker ожидает, что оба файла cpuz141.sys и procexp152.sys находятся в том же каталоге, что и сама программа.
Вы используете его на свой страх и риск. Некоторые ленивые антивирусы могут пометить этот инструмент как хак-инструмент/вредоносное ПО.
Он использует внутренний драйвер CPU-Z (https://www.cpuid.com/softwares/cpu-z.html) (версия 1.41 согласно CVE-2017-15303) для чтения/записи в физическую память и чтения управляющих регистров ЦП.
В зависимости от команды Stryker будет работать либо как DSEFix/TDL, либо модифицировать объекты процессов режима ядра (EPROCESS).
В режиме -load Stryker использует сторонний подписанный драйвер из программного обеспечения SysInternals Process Explorer (версия драйвера 1.52) для размещения небольшого загрузочного шеллкода внутри его обработчика IRP_MJ_DEVICE_CONTROL/IRP_MJ_CREATE/IRP_MJ_CLOSE. Это делается путем перезаписи физической памяти, где расположен диспетчерский обработчик Process Explorer, и его запуска вызовом драйвера IRP_MJ_CREATE (вызов CreateFile). Запущенный шеллкод отобразит входной драйвер как буфер кода в режиме ядра и выполнит его, текущий IRQL будет PASSIVE_LEVEL.
Также с небольшими модификациями шеллкод может использоваться для простого выполнения небольшого фрагмента вашего кода в режиме ядра (не реализовано в этом инструменте).
Stryker поставляется с полным исходным кодом. Для сборки из исходников вам потребуется Microsoft Visual Studio 2015 U1 и более поздние версии. Для сборки драйверов вам потребуется Microsoft Windows Driver Kit 8.1 и/или выше.
Поддержка отсутствует, за исключением критических исправлений ошибок для самого Stryker. Абсолютно НИКАКИХ гарантий его работы. Использование этой программы может привести к синему экрану смерти вашего компьютера. Скомпилированный двоичный файл и исходный код предоставляются КАК ЕСТЬ в надежде, что они будут полезны, БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.
ЛЮБОЕ ИСПОЛЬЗОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ОСУЩЕСТВЛЯЕТСЯ ИСКЛЮЧИТЕЛЬНО НА ВАШ СОБСТВЕННЫЙ РИСК.
В: Можно ли использовать что-либо кроме драйвера Process Explorer для выполнения шеллкода?
О: Да, но вам нужно тщательно проверить кандидата, чтобы убедиться, что он может хранить и выполнять шеллкод.
В: А как насчет новейших версий CPU-Z? Можно ли их использовать для чтения/записи физической памяти и управляющих регистров ЦП?
О: Драйвер CPU-Z был переработан для устранения CVE-2017-15303, и некоторые функции больше недоступны. Однако старые версии CPU-Z могут иметь ту же функциональность.
В: Есть ли другие подобные драйверы с той же функциональностью, что и CPU-Z?
О: Да, их много, например WinIO.sys, AsIO64.sys, Asmmap64.sys. Все они, как правило, предоставляют доступ на чтение/запись к физической памяти разными способами (\Device\PhysicalMemory).
В: Работает ли это на всех версиях Windows? Включая еще не выпущенные?
О: Он был протестирован на Windows 7 / 8.1 / 10 до RS3. Работа в будущих версиях маловероятна.
В: Будет ли добавлена поддержка Windows 10 NEXT или Windows XX NEXT?
О: Маловероятно.
(c) 2018 Stryker Project