Vulnerabilidad 0Day SMB3
Buenos días, bloggeros.
En esta publicación quiero compartirles la PoC para explotar una vulnerabilidad en SMB3 de Microsoft Windows.
Ya fue reportada y estamos esperando que prontamente se publique el parche correspondiente.
¿Qué es SMB y cómo funciona?
El Server Message Block (SMB) Protocol es un
protocolo de uso compartido de archivos de red. El conjunto de paquetes
de mensajes que define una determinada versión del protocolo se llama un
dialecto. El Common Internet File System (CIFS) Protocolo es un
dialecto de SMB. Tanto SMB y CIFS también están disponibles en VMS,
varias versiones de Unix, y otros sistemas operativos.
Para tener en cuenta con las distintas versiones que hay en el mercado de acuerdo a nuestro sistema operativo:
- CIFS – La versión antigua de SMB que era parte de Microsoft Windows NT 4.0 en 1996. SMB1 reemplaza esta versión.
- SMB 1.0 (o SMB1) – La versión utilizada en Windows 2000, Windows XP, Windows Server 2003 y Windows Server 2003 R2
- SMB 2.0 (o SMB2) – La versión utilizada en Windows Vista (SP1 o posterior) y Windows Server 2008
- SMB 2.1 (o SMB2.1) – La versión utilizada en Windows 7 y Windows Server 2008 R2 SMB 3.0 (o SMB3) – La versión utilizada en Windows 8 y Windows Server 2012
- SMB 3.02 (o SMB3) – La versión utilizada en Windows 8.1 y Windows Server 2012 R2
Una conexión simple con un servidor SMB consta de:
- Establecer una conexión virtual.
- Negociar el protocolo.
- Definir parámetros de sesión.
- Iniciar el Tree Connection hacia el recurso.
El problema surge luego de del mensaje Tree Connect Request, donde el servidor responde con un mensaje Tree Connect Response que aparentemente está bien, pero que en realidad tiene un tamaño excesivo, donde la cabecera NetBios del paquete tiene fijados (intencionalmente) 1580B, los 64B del SMB2 header y, finalmente, el Three Connect Response Message de 8B.
Haciendo uso del script en Python publicado en https://github.com/lgandx/PoC , podemos montar un fake SMB server, hacer que un cliente con versiones de Windows 8 o superiores se conecten y generar una BSOD.
Lo he probado con Windows10 y no pude explotarlo, pero sin con Windows Server 2012R2.
A divertirse!
Saludos... y happy config!
Interesantes sus viajes por la galaxia, sysdamin. Son territorios donde no practico la aventura, así que le agradezco que comparta su bitácora ;-)
ResponderBorrar