• XSS.stack #1 – первый литературный журнал от юзеров форума

[CVE-2023-29360] - обсуждение уязвимости в драйвере mskssrv.sys

Выглядит так как-будто оно. Накатил 10.17763, собрал, запустил:
Посмотреть вложение 66721

Проверил триггерит ли FsAllocAndLockMdl:
Посмотреть вложение 66722

Правда под отладчиком первый раз BSOD словил, жалуется на page fault:
Посмотреть вложение 66723

А в целом отрабатывает.

Тут кстати и автор объявился: https://xss.pro/threads/98819/
Vexer2k если это правда ты, то респект.
У эксплойта всегда есть вероятность BSOD, но в целом он довольно стабилен.
 
Глазами пробежался по коду, обратил внимание на то что token address считается не зависимо от версии.
Решил прогнать в Windows 11 22H2. Отработало:
Посмотреть вложение 66724
Да, смещение токена для структуры _SEP_TOKEN_PRIVILEGES всегда равно смещению 40h, начиная с Windows Vista. Если бы я сделал что-то вроде кражи токена, смещение обычно было бы разным для каждой ОС.
 
Сервер 2016 крашится ехе
Код:
[+] Successfully got a handle 1 => 0000000000000318
[+] Successfully got a handle 2 => 0000000000000334
[+] Successfully got a handle 3 => 0000000000000338
[+] Target process TOKEN address: ffffe802049b6980
[+] Target process _SEP_TOKEN_PRIVILEGES address: ffffe802049b69c0
[!] FSInitializeContextRendezvous failed with 0xC0000010
[!] FSInitializeStream failed with 0xC0000010
[!] FSRegisterStream failed with 0xC0000010
[!] PublishTx failed with 0xC0000010
[+] VirtualAlloc buffer => 000001D3D0A50000
[!] ConsumeTx failed with 0xC0000010
[+] Aligned VA Base Address => 0000000000000000
[+] VA Token Address => 0000000000000000

Сервер 2012 - ошибка при запуске


все проверялось в боевых условиях, а не в тестовых лабах, где идеальные условия.
 

Вложения

  • www.png
    www.png
    1.1 КБ · Просмотры: 42
Сервер 2016 крашится ехе
Код:
[+] Successfully got a handle 1 => 0000000000000318
[+] Successfully got a handle 2 => 0000000000000334
[+] Successfully got a handle 3 => 0000000000000338
[+] Target process TOKEN address: ffffe802049b6980
[+] Target process _SEP_TOKEN_PRIVILEGES address: ffffe802049b69c0
[!] FSInitializeContextRendezvous failed with 0xC0000010
[!] FSInitializeStream failed with 0xC0000010
[!] FSRegisterStream failed with 0xC0000010
[!] PublishTx failed with 0xC0000010
[+] VirtualAlloc buffer => 000001D3D0A50000
[!] ConsumeTx failed with 0xC0000010
[+] Aligned VA Base Address => 0000000000000000
[+] VA Token Address => 0000000000000000

Сервер 2012 - ошибка при запуске


все проверялось в боевых условиях, а не в тестовых лабах, где идеальные условия.
У меня помимо BSOD на него ещё и defender жаловаться, пришлось отключать.
До полноценного эксплойта там далеко, но в тепличных условиях отрабатывает, для PoC этого достаточно.
 
Если в код посмотреть, то помимо шеллкода из метасплойта, он ещё и всё привелегии для процесса эксплойта врубает. А такое сразу в динамике светиться.
Но в целом если напильничком пройтись и помучаться немного, то можно и в боевых условиях запускать.

На самом деле то что уязвимость позволяет по сути любой адрес мапить себе в виртуальное адресное пространство(Если я правильно понял из поста yar-eb), очень большой простор возможностей открывает.
Можно много интересного сделать.
 
Я мог бы просто включить SeDebugPrivilege и использовать API-интерфейсы Windows для создания оболочки, но я намеренно вставил шелл-код, чтобы предотвратить злоупотребление им дочерними скриптерами. Кроме того, я не рассматривал возможность его тестирования на серверах Windows, поэтому могут потребоваться некоторые настройки. Это далеко не идеальный эксплойт, это просто PoC для демонстрации.
 
У меня помимо BSOD на него ещё и defender жаловаться, пришлось отключать.
До полноценного эксплойта там далеко, но в тепличных условиях отрабатывает, для PoC этого достаточно.
часть АВ обходится полу-паблик софтом. будем думать как его заюзать тогда )
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Сервер 2016 крашится ехе
Код:
[+] Successfully got a handle 1 => 0000000000000318
[+] Successfully got a handle 2 => 0000000000000334
[+] Successfully got a handle 3 => 0000000000000338
[+] Target process TOKEN address: ffffe802049b6980
[+] Target process _SEP_TOKEN_PRIVILEGES address: ffffe802049b69c0
[!] FSInitializeContextRendezvous failed with 0xC0000010
[!] FSInitializeStream failed with 0xC0000010
[!] FSRegisterStream failed with 0xC0000010
[!] PublishTx failed with 0xC0000010
[+] VirtualAlloc buffer => 000001D3D0A50000
[!] ConsumeTx failed with 0xC0000010
[+] Aligned VA Base Address => 0000000000000000
[+] VA Token Address => 0000000000000000

Сервер 2012 - ошибка при запуске


все проверялось в боевых условиях, а не в тестовых лабах, где идеальные условия.

Судя по коду ошибки, дело не в идеальных условиях, а в том, что эта система не уязвима. Т.е. в драйвере нет обработчиков для нужных ioctl.
Хотя странно, что на msrc Windows Server 2016 находится в списке уязвимых. Для полной уверенности нужно посмотреть сам драйвер.
Error code: (NTSTATUS) 0xc0000010 (3221225488) - The specified request is not a valid operation for the target device.
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
Да, смещение токена для структуры _SEP_TOKEN_PRIVILEGES всегда равно смещению 40h, начиная с Windows Vista. Если бы я сделал что-то вроде кражи токена, смещение обычно было бы разным для каждой ОС.
20h2, 21h2, 22h2 смещение одно и то же будет для _EPROCESS.Token и _KTHREAD.PreviousMode, а если учесть ограниченный набор уязвимых версий, то это не плохая идея (плюсом PPL гасить проще). По крайней мере я никаких проблем не встретил при использовании этой техники.

А в целом, мое почтение.

meme.jpg
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Не буду создавать отдельную тему поскольку тут вскользь касались этой уязвимости (type confusion) и статья в целом дополняет тему.

Статья - https://securityintelligence.com/x-...xploiting-microsoft-kernel-streaming-service/
Сплоент - https://github.com/xforcered/Windows_MSKSSRV_LPE_CVE-2023-36802

Дополнение - https://googleprojectzero.github.io/0days-in-the-wild//0day-RCAs/2023/CVE-2023-36802.html
 
Последнее редактирование:


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх