Random IRC quote :      <garbanzosf> es una hijodeputada ser un plugin de ocr

Acerca del BSOD de srv2.sys

Hola qué tal.
Bueno hoy nos hemos levantado con la noticia del BSOD que Laurent Gaffié ha publicado.

Tras analizar el código vulnerable y probarlo, tengo que avisaros que al contrario de lo que dice el autor y se está reproduciendo en otras páginas, esta vulnerabilidad SÍ PERMITE la ejecución de código remótamente, al igual que abre la posibilidad para escalar privilegios en local. Hay que aclarar que por el momento la ejecución de código dista mucho de ser reliable al igual que la escalada de privilegios. Pero no hay que considerar como un mero DoS esta vulnerabilidad porque tiene el potencial de convertirse en ejecución de código controlado.

Y ahora os explicaré el porqué basándonos en razones técnicas, en esto de las vulnerabilidades el publicar un advisory méramente empírico no es de recibo, teniendo en cuenta que es un 0day

Veamos dónde se produce el fallo.
módulo: srv2.sys

; int __stdcall Smb2ValidateProviderCallback(PVOID DestinationBuffer)
_Smb2ValidateProviderCallback@4 proc near


.text:000156B3 loc_156B3:                              ; CODE XREF: Smb2ValidateProviderCallback(x)+4D5j
.text:000156B3                                         ; Smb2ValidateProviderCallback(x)+4DEj
.text:000156B3                 movzx   eax, word ptr [esi+0Ch]; packet->SBM_Header->Process_ID_High
.text:000156B7                 mov     eax, _ValidateRoutines[eax*4]; FALLO – out-of-bounds dereference.
.text:000156BE                 test    eax, eax
.text:000156C0                 jnz     short loc_156C9
.text:000156C2                 mov     eax, 0C0000002h
.text:000156C7                 jmp     short loc_156CC
.text:000156C9 ; —————————————————————————
.text:000156C9
.text:000156C9 loc_156C9:  ; CODE XREF: Smb2ValidateProviderCallback(x)+4F3j
.text:000156C9                 push    ebx
.text:000156CA                 call    eax ; Smb2ValidateNegotiate(x) ; Smb2ValidateNegotiate(x) – KABOOOM!!
 

Como véis lo que está haciendo es usar el campo de 16 bits de la cabecera SMB 2.0 ProcessIDHigh como indice en una tabla de funciones sin comprobar previamente el tamaño de la tabla. Cagada de libro. De esta manera podemos dereferenciar un puntero arbitrario que si no es nulo nos dará la direccion a la que saltará la ejecución.

Empíricamente el exploit que ha liberado el fulano puede funcionar o no, ya que lo que produce el BSOD es que el indice es demasiado alto y apunta una página no paginada. Pero en algunos sistemas podría darse el caso que sí estuviera paginada y no fallara o fallara en otro punto, de hecho lo he comprobado en varios sistemas Vista x86.

Por lo tanto, la ejecución de codigo remoto es posible ya que ESI apunta a nuestro paquete de datos. [ESI+C] que es el indice es un campo que nosotros controlamos de 16 bits. Lo que hace falta es encontrar un puntero adecuado que nos permita controlar la ejecución en base a estos datos. Dado que la sección PAGE del driver esta en direcciones más altas que la sección .DATA donde está la tabla de funciones, esto mejora la situación.

La ejecución de código a nivel local para elevar privilegios, vendría dada por el mismo tipo de explotación, lo único es que todas las rutinas del srv2.sys en este tipo de peticiones se manejan en el contexto del SYSTEM no del proceso que envía el socket, si no la elevación de privilegios sería trivial ( ver valores fixed al final de la table de funciones , a partir del indice 0×13 tendríamos user-mode addresses ).

Los sistemas vulnerables son Vista, Windows 7 RC y Server 2008.

Pues eso, a filtrar paquetes en el 445 y 139 etc… ojito ahí fuera.

47 Comentarios para “Acerca del BSOD de srv2.sys” »»

  1. Comment por Mario Ballano | 09/08/09 at 6:47 am

    Metedura de pata bien gorda… a ver que pasa en las proximas horas/dias …

  2. Comment por antonio | 09/08/09 at 7:00 am

    Por favor Ruben, de me a donde ce dice que no ejecución de código es possible en la advisoria

  3. Comment por ruben | 09/08/09 at 7:05 am

    Antonio
    —————————
    V. BUSINESS IMPACT
    ————————-
    An attacker can remotly crash any Vista/Windows 7 machine with SMB enable.
    Windows Xp, 2k, are NOT affected as they dont have this driver.

    III. DESCRIPTION
    ————————-
    SRV2.SYS fails to handle malformed SMB headers for the NEGOTIATE PROTOCOL REQUEST functionnality.
    The NEGOTIATE PROTOCOL REQUEST is the first SMB query a client send to a SMB server, and it’s used to identify the SMB dialect that will be used for futher communication.

    I. VULNERABILITY
    ————————-
    Windows Vista/7 : SMB2.0 NEGOTIATE PROTOCOL REQUEST Remote B.S.O.D.
    ———

    ¿Dónde dice que es posible? Que yo sepa el business impact es lo que se usa para caracterizar una vulnerabilidad…

  4. Comment por Mario Ballano | 09/08/09 at 7:48 am

    El advisory no refleja en ningún lado la posibilidad de ejecución de código, con lo cual se da a pensar que solamente es un remote BSOD, que de hecho es de lo que se habla en el advisory. Lo más seguro es que el autor no fuera consciente de esto.

  5. Comment por Miguel | 09/08/09 at 7:55 am

    Un tabla overflow, que clasico :o )
    Buen post, Ruben.

  6. Comment por Amian | 09/08/09 at 9:51 am

    al pinche le quemo el bug en las manoplas sin darse cuenta de que valia su buena plata!

  7. Comment por sha0 | 09/08/09 at 1:06 pm

    Ahora podeis lanzar el exploit desde vuestro android :)

    http://www.badchecksum.net/code/exploits/VistaDoS.apk

    Si alguien quiere el code que lo pida.

    salu2

  8. Comment por anomino | 09/08/09 at 3:35 pm

    Perdona, Ruben, tu lo ves muy claro pero te agradeceria una pequeña explicacion.

    Gracias de antemano.

    Mi duda es:

    movzx eax, word ptr [esi+0Ch]; packet->SBM_Header->Process_ID_High
    mov eax, _ValidateRoutines[eax*4]; FALLO -u

    Ok puedo meter un valor en esi que tenga un valor que luego use como indice en esa tabla, entonces que deberia pisar? controlo el indice, pero como llego a controlar EIP ???

    Perdona, a lo mejr es muy trivial pero no lo veo ..

    Gracias por todo.

  9. Comment por Shaddy | 09/08/09 at 4:21 pm

    Desde luego que es una cagada, aunque no es muy común encontrarte con los archivos compartidos en un Home PC, si se encuentran en la gran mayoría de las empresas y lo peor es que muchos tardarán en darse cuenta de ésto. Menudos días nos esperan..

    Gracias Rubén!

  10. Comment por ruben | 09/08/09 at 4:21 pm

    No es trivial no, tranquilo. A ver si te lo consigo aclarar un poco.

    Digamos que tenemos que buscar una porcion de código que nos permita controlar la ejecución a través de ESI. Y a su vez tenemos que encontrar una dirección que apunte ese código. Y que este este alineado además…

    Supongamos que en cierta partel de .PAGE en srv2.sys tenemos

    loquesea_alineado_a_4, offset pirubirubi

    pirubirubi
    call dword ptr [ esi + 0x10 ]

    tenemos que

    movzx eax, word ptr [esi + 0xc]
    mov eax, _ValidateFuntions[eax*4] = >> siendo eax == lo que tenga que ser para pillar offset pirubirubi

    entonces cuando se haga el

    call eax

    iriamos a pirubirubi y como [esi+0x10] apunta a nuestro paquete y lo controlamos tendría la ejecución bajo nuestro control. Saltaríamos a la dirección que nosotros quisieramos… Espero que haya quedado más claro.

  11. Comment por anomino | 09/08/09 at 5:23 pm

    Ruben, perfecta explicaion, lo que me pasaba es que no veia el call eax no hice scroll down, XDD

    De todas formas totalmente aclarado.

    Gracias.

  12. Comment por Juan Quijano | 09/08/09 at 6:15 pm

    Interesante, pero… alguno lo ha probado?

    Porque hoy mi administrador de sistemas, un auténtico taliban de linux, lo intentó un par de decenas de veces y mi windows7 siguió funcionando sin problema alguno y sin ningún pantallazo azul…

    Si alguien lo ha conseguido, que hable de primera mano y no de oidas, que me suena que todo esto es un cuento más contra los malos malísimos de redmon. :(

  13. Comment por matalaz | 09/09/09 at 2:26 am

    Pues por ejemplo Rubén, y yo, y otros tantos que andamos por aquí lo hemos probado también. Además, si no petara, ¿Cómo iba a saber Rubén cuál es el código vulnerable?

  14. Comment por Zohiartze Herce | 09/09/09 at 3:30 am

    matalaz, todos sabemos que ruben trabaja para la sección rusa de microsoft, por eso sabía lo del fallo aún sin haberlo mirado :-P

  15. Comment por ruben | 09/09/09 at 4:30 am

    que puto jefe! Juan Quijano for president!! Como diria patricia conde, Juan Quijano…ME LA AGARRAS CON LA MANO!

  16. IaM
    Comment por IaM | 09/09/09 at 5:35 am

    Hola a todos,

    Sha0 y yo hemos estado haciendo pruebas ayer, y mi maquina hizo de conejillo de indias. El caso es que cambiando cualquier otro byte de los de arriba y dejando el process ID a 0, que es como debía ser tb produce un DoS.

    Si teneis tiempo y ganas podeis probarlo.

    “\x00\x00\x00\x90″ # Begin SMB header: Session message
    “\xff\x53\x4d\x42″ # Server Component: SMB
    “\x72\x00\x00\x00″ # Negociate Protocol
    “\x00\x18\x53\xc8″ # Operation 0×18 & sub 0xc853

    Cambiad cualquier byte de estos. Es más podeis hacer un fuzzer simple, recorriendo byte a byte la shellcode y poniendo todas las combinaciones posibles de cada byte de 1 a 256. Total hace solo una conexión y envia el churro no es dificil programar un fuzzer para obtener nuevas vulnerabilidades a partir de esta.

    Bueno.. si teneis tiempo y ganas probadlo.

    Saludos,

  17. Comment por Jose M. | 09/09/09 at 5:41 am

    Tela, verificado con un colega en el trabajo.

    Y veo que Sha0 la está liando parda ya con el Android.

    Buen post, gracias.

    P.D.: anti-spam word “ratatui”

  18. IaM
    Comment por IaM | 09/09/09 at 5:48 am

    Y bueno.. ya que estamos hablando del tema, alguien sabe algo acerca del nuevo DoS que se ha publicado hoy? http://securityvulns.com/news/TCP/DoS.html

    Fyodor saco hace tiempo una herramienta que se llamaba ndos. http://insecure.org/stf/tcp-dos-attack-explained.html pero la pagina ha sido eliminada. Alguien sabe algo de dicha herramienta?. Aqui es donde se habla de ella:

    http://lists.immunitysec.com/pipermail/dailydave/2008-October/005360.html

    Saludos,

  19. Comment por Mario Ballano | 09/09/09 at 6:37 am

    Bueno, menos verificar, y a ver quien consigue programar un exploit que permita ejecucion de codigo :)

  20. Comment por n13z | 09/09/09 at 11:23 am

    La gente de Metasploit ya han metido el DoS en el snapshot del SVN. Ayer estaba cuando leí este post hdmoore estaba comentando cosas del mismo estilo en twitter.

    # $Id: smb2_negotiate_pidhigh.rb 7017 2009-09-09 13:41:14Z hdm $

    Os dejo un “efugio” sobre como deshabilitar SMB2:

    http://www.petri.co.il/how-to-disable-smb-2-on-windows-vista-or-server-2008.htm

  21. Comment por Jose Selvi | 09/10/09 at 2:33 am

    Quizá no lo declaran como “posible ejecución de código” por las protecciones internas de Windows como el DEP. Aunque mirando el código sea posible efectivamente hacerlo, igual al querer saltar a ejecutar código en una zona de datos salta la protección y se cierra el proceso, con el consiguiente DoS de nuevo.

    Muy buen análisis!

  22. Comment por Ruben | 09/10/09 at 4:22 am

    preparaos porque el exploit está al caer…liada.

  23. Comment por Juhan Quijano | 09/10/09 at 11:11 am

    Pues yo no me lo creo. Lo has probado o hablas solo de oídas?

  24. Comment por ruben | 09/10/09 at 12:13 pm

    HOYGA LLO SOLO HAVLO DE HOYDAS.

  25. Comment por Mario | 09/11/09 at 6:44 am

    HOYGA HA NOSOTROS DE LO QE NOS GUSTA ABLAR HES DE LO QE NO SAVEMOS, QUE SINO SE ASE MUY HAVURRIDO, NO LE PARESE???

    POR FAVOR SI RESIVE MAS HINFORMASION HASERCA DEL HEXPLOIS HENBIENOSLA AL VLOG,

    GRASIAS DE HANTEMUSLO

  26. Comment por svch0st | 09/14/09 at 4:06 am

    Juhan, me han copiao todo a mi.
    Esta gente no tiene ni idea como tu y como yo…

  27. Comment por Juan A Naranjo | 09/21/09 at 8:22 am

    El pasado Jueves 17 de Septiembre Immunity anunció que ya tenia un exploit funcional para Windows Vista y 2008. Podeis ver un video del exploit en accion aqui: https://www.immunityinc.com/documentation/smbv2.html por supuesto que no han hecho publico el exploit y solo esta disponible para los clientes de Canvas. Por otro lado, hay rumores de que los del Metasploit lo tienen a punto.

    El exploit funciona en 2008 SP0 que tiene SafeSEH chain validation habilitado por defecto. No creo que hayan usado SEH para explotarlo, habran tenido que pasar GS o DEP? Estoy deseando ver el exploit…

    Referencias:

    http://www.immunitysec.com/news-latest.shtml
    http://www.theregister.co.uk/2009/09/16/windows_vista_exploit_released/

  28. Comment por Ruben | 09/23/09 at 4:59 am

    Lo que se tenía que evitar es NX pero eso no ha sido un problema.

  29. Comment por Juan A Naranjo | 09/28/09 at 5:54 pm

    Esta mañana Stephen Fewer ha hecho publico un módulo para el Metasploit de ejecución de codigo remota para la vulnerabilidad smb2. Podéis ver el módulo en esta dirección:

    http://trac.metasploit.com/browser/framework3/trunk/modules/exploits/windows/smb/smb2_negotiate_func_index.rb

    Referencia:

    http://blog.metasploit.com/2009/09/metasploit-33-development-updates.html

    En dos palabras: Impre-zionante!!!

  30. Comment por mybook | 03/16/10 at 4:36 am

    Amulet of the Darkmoon:
    +10 Strength
    +19 Agility
    +10 wow power leveling Stamina
    The second is Caster based (Maga, Priest, Paladins…)
    Orb of the Darkmoon:
    +11 Stamina
    +8 Spirit
    Equip: Increases wow power leveling damage and healing done by magical spells and effects by up to 22.
    I counted best wow gold a little, and it comet out, That it can be “gathered” from 1 Gold 20 Silver – To ~190 Gold PLUS”How To”
    When Darkmoon Fiery event is wow gold uk active, you can complete Q-ts to obtain tickets. And that is what we need. The Q-ts are repeatable, and that’s our luck! down till cheapest wow gold you have the 1200 ticket is Thorium Widget! Is an Engineering “component”.
    1200 tickets = Epic Neck (one from above)
    The Q-ts are Profession gold for wow based, but this can be tricked out!
    You will need a “Schematic: Thorium Widget” (Limited supply: 1G 20S by Vendors, 3G-10G+ at AH) If he knows it, world of warcraft power leveling even better for us
    First: You need to find someone who has Engineering around lvl 260 (needed to create Thorium Widget-s) world of warcraft power leveling
    and tell him that you “pay” his Engineering skill to 300 if he helps you.

  31. Comment por Internet Hosting | 05/13/10 at 1:40 pm

    Digamos que tenemos que buscar una porcion de código que nos permita controlar la ejecución a través de ESI. Y a su vez tenemos que encontrar una dirección que apunte ese código. Y que este este alineado además…

  32. Comment por Büyü | 08/10/10 at 7:24 am

    Digamos que tenemos que buscar una porcion de código que nos permita controlar la ejecución a través de ESI. Y a su vez tenemos que encontrar una dirección que apunte ese código. Y que este este alineado además…

  33. Comment por estetik | 01/30/13 at 1:21 pm

    Site’s character and a great color match .. I will recommend your site to the other platforms.

  34. Comment por payday loans uk | 03/01/13 at 4:30 pm

    Personal loans in this type will be adjusted to your
    monetary prerequisites of people with an adverse credit history http:
    //www.paydayloansunique.co.uk/ Your banking institutions will not
    be lending money as easily as they get in the past as a result of the issues which
    have been recently skilled

  35. Comment por short term loans | 03/02/13 at 4:56 pm

    The application styles are free to everyone by the funds lending internet websites www.
    shorttermloansfrt.co.uk A viable and good plan for success plays a key role inside you getting grants or loans for many small business owners

  36. Comment por http://www.paydayloansnocreditcheckuyt.co.uk/ | 03/02/13 at 4:58 pm

    Credit ratings became limited, and as a result
    with the Tax Reform Act involving 1986, personal curiosity was
    no for a longer period deductible payday loans no credit check Among the first
    things that people today think to accomplish when hard cash strapped is always
    to start his or her business

  37. Comment por www.textloanskjt.co.uk | 03/02/13 at 4:59 pm

    The challenge of regardless of whether these primary lenders are better
    option compared to brokers in fact comes down to your individual issue,
    and what types of fees they are ready to fork
    out text loans fresh Seeing that you’re way up known upon twelve-monthly percentage crank out calculator and also the way that operates, just go get the best APY online car loan calculator available on the market

  38. Comment por http://www.hostingsuper.co.uk/ | 03/04/13 at 11:35 am

    They are always support at ADDR is just. website hosting He told us
    and I quote “You would have had no chance at for ecumenical troubleshooting, a upright horde will have an exigency proficient physical contact for midnight mishaps.

  39. Comment por payday loan | 03/10/13 at 2:16 pm

    For the employees, this is convenient they do not need to funds it out or perhaps go to the bank but for the companies payday loans so that they do not face almost any financial crisis to meet up with
    their vital needs but one can get into severe scenarios at any
    time

  40. Comment por payday loans | 03/10/13 at 4:33 pm

    We must coerce investors that this bonds proposed by
    our Treasury Unit promise genuine future worthy of,
    so that the money maintains credibility and we keep sell includes payday loans Oftentimes, whether a student seriously isn’t approved for one traditional scholar bank loan, a bad credit score student loan professional will offer the resources to a single on one this student to the proper individual lenders who is able to and will offer you loans to help scholars using bad credit report

  41. Comment por car rental londoncar hire uk | 03/21/13 at 3:19 pm

    All in all, the Start cover is practically some feelings around them, and neither will be passed, in this lifetime.

    car rental uk Real men discuss cars and sports and Arse transmission line testament thank you.

  42. Comment por e cigs uk | 03/27/13 at 7:32 pm

    If you always Hold to ask yourself the interrogation, ‘why the actual thing, I Launch myself disappointed and pickings a harder tangle to see if I could get more than steam. e cigs uk And, the Holy place Church building of the anti-smoker tends to drop off malfunction and effort dangerous injuries in users.

  43. Comment por e cigs | 03/27/13 at 7:33 pm

    In that location is a definite impairment reduction worsened that the fume you First of all inhaled.
    electronic cigarette uk finding a check smoking claims were shoddy and could not be substantiated.

  44. Comment por http://www.electroniccigarettehealth.co.uk/ | 03/27/13 at 7:34 pm

    With the e-cigarette products they are quiet goes on and it is up to the smoking consumers to
    make up one’s mind whether to patronise it or not. electronic cigarette Or, The 510 kit with the 3 has a lifespan on average 1 to 2 months.

  45. Comment por e cigs | 03/27/13 at 7:34 pm

    What is more, it violates some identical basic honorable cigarettes for a smorgasbord of reasons.
    electronic cigarette uk The urge, as common, pays fiddling attention to cigarettes can trail to the excess
    heating plant of the spray.

  46. Comment por sports | 04/09/13 at 1:58 am

    This excellent website really has all of the information and facts I wanted about this
    subject and didn’t know who to ask.

  47. Comment por same day loans | 04/11/13 at 5:09 pm

    So what can I add without a win at the end of Net time of year with Seven-spot more than to start this one.

    samedayloansfish.co.uk/ lending services usually ask
    for proof bad credit are planned to deal with your exigent fiscal crisis.

Dejar un comentario »»