
Explorar o Win10Pcap Driver para habilitar alguns privilégios no token do nosso processo ( escalonamento local de privilégios )
créditos para
https://twitter.com/R00tkitSMM ([email protected]) nome de usuário do Telegram: https://telegram.me/firozi
alguns dias atrás encontrei uma vulnerabilidade no driver win10pcap que pode levar à escalada de privilégios. Reportei a vulnerabilidade e agora o bug está corrigido:
então decidi publicar um exploit de exemplo
Win10Pcap é uma nova biblioteca de captura de pacotes Ethernet baseada em WinPcap. Diferente do WinPcap original, o Win10Pcap é compatível com o modelo de driver NDIS 6.x para funcionar de forma estável com o Windows 10. O Win10Pcap também suporta a captura de tags VLAN IEEE802.1Q.
então, se você instalar o Wireshark no Windows 10, você precisa dessa merda :)
O driver em modo kernel do Win10Pcap não verificava os endereços virtuais passados do modo usuário; o IOCTL usa Neither Buffered Nor Direct I/O sem ProbeForWrite para validar o endereço passado
você precisa encontrar o nome exato do dispositivo em tempo de execução para enviar o IOCTL; um nome de dispositivo fixo (hardcoded) não leva ao código vulnerável
O manipulador de IOCTL escreve uma string no endereço passado; a string é algo como "Global\WTCAP_EVENT_3889023063_1"
havia muitas maneiras de explorar essa vulnerabilidade; decidi definir privilégio no TOKEN do processo sobrescrevendo _SEP_TOKEN_PRIVILEGES
Sobrescrever o token no endereço 0x034 com a string "Global\WTCAP_EVENT" pode definir SeDebugPrivilege sem corromper campos sensíveis
81687cf8 cc int 3
2: kd> dt nt!_TOken
+0x000 TokenSource : _TOKEN_SOURCE
+0x010 TokenId : _LUID
+0x018 AuthenticationId : _LUID
+0x020 ParentTokenId : _LUID
+0x028 ExpirationTime : _LARGE_INTEGER
+0x030 TokenLock : Ptr32 _ERESOURCE
+0x034 ModifiedId : _LUID
+0x040 Privileges : _SEP_TOKEN_PRIVILEGES
+0x058 AuditPolicy : _SEP_AUDIT_POLICY
