================================= Abuso de los proxy's para windows ================================= -------------- [Introduccion] -------------- Desde hace mucho tiempo vengo avisando en distintas foros de conversacion en internet el peligro del gran numero de proxys para windows mal configurados que hay en la red. Incluso pense en escribir un texto sobre el tema, pero me parecio algo que se iria corrigiendo con el tiempo. Y al contrario de lo que pensaba, la cosa no parece que haya mejorado en gran parte... Siguen existiendo multitud de estos proxys abusables, de distintos fabricantes de soft, y todavia nadie se ha planteado en serio avisar a los ingenuos administradores que instalan este tipo de software. Y aqui esta la clave, este tipo de programas no es vulnerable por si solo, sino que su mayor debilidad se basa en la poca experiencia de muchos administradores a la hora de configurar sus proxys, lo que deja libre el camino a su abuso desde el exterior. Asi que por fin, me he decidido a escribir un pequeño texto, que sin entrar en muchos detalles tecnicos, describe la forma de encontrar, detectar y usar los distintos modelos de proxys vulnerables que hay en el mercado. Tambien incluire en los casos en los que conozca la solucion, la manera de configurar correctamente el proxy para evitar ataques externos. --------------------------------- [Breve introduccion a los proxys] --------------------------------- Un proxy es un programa o maquina que permite a un grupo de maquinas clientes conectar a traves de el a otro conjunto de maquinas. Normalmente el proxy se usa para conectar a las maquinas de una red local con internet. Una pasarela es una de las alternativas que usa un servidor proxy para dar acceso al exterior a la maquinas a las que sirve. Como la misma palabra dice una pasarela permite unir la maquina de destino con la maquina que quiere conectar. Lo unico que tiene que hacer la maquina cliente es conectar al puerto del proxy donde se encuentra la pasarela y a tarves de ella conectar al ordenador de destino. Los proxys mas populares para entorno windows (95 y NT) son estos: -NetProxy -Netscape Proxy Server -Microsoft Proxy Server -Open Sesame Proxy Server -Simedia S-Proxy -Ositis WinProxy -Wingate No todos ellos son vulnerables en su configuracion por defecto pero algunos de ellos si, otros no son vulnerables por defecto pero un pequeño descuido o exceso de confianza de su administrador pueden abrir las puertas a ataques externos. No voy a hacer una comparativa entre ellos, he probado algunos y en general son bastantes buenos en redes pequeñas y si son configurados con cuidado no hay que porque tener problemas de seguridad. Y una vez que nos hemos introducido en el mundo de los proxys pasamos a su uso (o abuso :) practico... ----------------------------------- [Utilidades de un proxy vulnerable] ----------------------------------- Bueno, todavia habra alguien que se pregunte que utilidad puede tener un servidor proxy utilizable desde el exterior... La respuesta es simple, para lo que sirve cualquier proxy, para saltar, para conectarse a algun sitio a traves de el... Parece algo de poca utilidad, pero implica muchos usos... El anonimato en internet es algo mas escaso de lo que la gente piensa y cualquier medio de permanecer en el es algo muy valioso, no solo para hackers sino tambien para spammers, piratas, traficantes, etc... Cualquier hacker que se precie, nunca ataca directamente sus objetivos, sino que siempre interpone entre su verdadera ip y la de su objetivo un numero variable de maquinas a traves de las que va saltando. (En la jerga bounceando) Ademas no hay que olvidar que igual que el proxy permite a las maquinas de la red interna salir al exterior tambien permite (si esta mal configurado) a las maquinas de la red externa acceder a las en teoria inaccesibles maquinas de la red interna, con los riesgo que esto implica. Tambien los spammers, los que se dedican a intercambiar soft pirateado, los que intentan mantener su anonimato a la hora de visitar una pagina web con contenidos escabrosos, todos abusan con asiduidad de este tipo de recursos para permanecer en el anonimato. Tal vez la amenaza mas importante sean los hackers, ya que disponen de mas medios y de mayores conocimientos para encontrar proxys vulnerables, pero no hay que despreciar el daño que pueden hacer el resto de posibles agresores. Los usos de un proxy vulnerable son casi ilimitados y aumentan cuanto mas servicios ofrezca, es paradojico... cuanto mejor sea un proxy mas atractivo sera para los atacantes. -------------------------------- [Explotando un proxy vulnerable] -------------------------------- Hay multitud de posibles ataques, todo depende de las intenciones del atacante: La pasarela mas versatil suele ser la de telnet, ya que en la mayoria de los casos puede ser redireccionada hacia cualquier puerto de la maquina elegida como destino, permitiendo ataques a todos los servicios que se basan en una conexion telnet. (Que son mas de los que a primera vista parecen) La pasarela de ftp tambien puede ser util para traficar con software pirata, o con documentos comprometedores. Las pasarelas de correo, facilitan mucho el trabajo a los spammers. Luego esta la pasarela socks que permite el salto a aquellas aplicaciones que aceptan este estandar, como son la mayoria de los clientes de irc, algunos navegadores web, etc... Y tampoco olvidemos la pasarela web o la pasarela irc, dos servicios donde el anonimato es tambien muy apreciado. El uso de estas pasarelas desde el exteior es muy sencillo, simplemente hay que seguir el mismo proceso que siguen las maquinas de la red interna, solo que esta vez desde el exterior. No puedo dar unas pautas concretas, ya que cada proxy es diferente, pero voy a dar unas tecnicas generales del uso de un proxy. * Pasarela telnet: Al conectar aparecera el prompt del proxy, en algunos casos en el propio prompt se indica la forma de proceder, pero normalmente no lo hace, incluso la mayoria de las veces ni siquiera identifica el tipo de proxy que es. (Luego dare datos para identificar distintos tipos de proxy) El uso mas comun es indicar la direccion a la que se quiere conectar, y de forma optativa un puerto de destino, normalmente separado por un espacio o por 2 puntos ':'. Si no se indica puerto de destino se hara una conexion telnet estandar al puerto 23. Despues de introducir esto, el proxy normalmente dara algunos mensajes informativos sobre la evolucion de la conexion, o en caso de error un pequeño mensaje de aviso. * Pasarela ftp: La sintaxis varia, pero normalmente se indica la direccion a conectar de la forma, normbre_de_usuario@nombre_de_la_maquina En caso de ser ftp anonimo el nombre de usuario sera anonymous o ftp. * Pasarela socks: Puerto 1080, aqui se encuntra el proxy multiservicio compatible socks. Simplemente habra que configurar la aplicacion que estemos usando como cliente socks indicando la maquina donde se encuentra el proxy. --> No confundir socks con sockets o winsockets... * Pasarela web: Habra que configurar nuestro navegador web para que use como proxy esta psarela web. * Resto de pasarelas: De forma similar, conectando con ellas como si fuesen el host de destino y indicando cuando sea necesario el nombre de la maquina y el puerto de destino. --------------------------------------- [Configurando el proxy de forma segura] --------------------------------------- Estas pequeñas pautas de configuracion que voy a dar a continuacion son muy genericas, ya que no voy a entrar a tratar cada modelo de servidor proxy por separado, aunque supongo que bastaran para comprender los puntos clave de la seguridad de un proxy. 1) Cerrar todas las pasarelas que no se usen: Normalmente en pequeñas redes solo se usan servicios como web, irc o ftp, el resto de servicios nunca se usan y por tanto no es mala idea eliminar las pasarelas de estos servicios. 2) Limitar el acceso solo a ips que se encuentren dentro de la red: Si el proxy dispone de opciones de filtrado de acceso, habra que configurarlas para denegar el acceso a maquinas no autorizadas. Las reglas mas simples de filtrado son casi siempre las mismas, aunque dependen de software que usemos: -Primero se prohibe el acceso a TODAS la ips. -Luego se autoriza el acceso SOLO a las ips que queramos que usen el proxy. De esta manera garantizaremos en la mayor parte de los casos, que nuestro proxy solo sera usado, por las maquinas autorizadas. De esta forma incluso podemos autorizar a las ips exteriores que deseemos, el uso del proxy. * Otra medida de seguridad bastante habitual es limitar el acceso al proxy dependiendo del interfaz del que procedan las peticiones. El uso de estos filtros es muy simple, solo tenemos que prohibir el acceso al proxy desde el interfaz exterior y autorizarlo desde el interfaz interior. Por ejemplo, si tenemos una pequeña red con 3 maquinas conectadas en red. 2 de ellas son los clientes autorizados del proxy y la tercera es el servidor proxy en si, que se conecta a internet a traves de una tarjeta RDSI. Un filtro de interfaz en nuestro proxy deberia aceptar peticiones desde el interfaz interior, que en este caso seria la tarjeta de red que une el proxy a la red local y a las otras 2 maquinas y denegar el acceso desde el interfaz exterior, el que conecta con internet, que en este caso seria la tarjeta RDSI. 3) Activar los logs: Algo poco habitual y que sin embargo es muy util, no solo por razones de seguridad sino por razones de simple mantenimiento del proxy. Ademas el tiempo de proceso y el espacio en disco usado por los logs suele ser poco significativo, comparado con las ventajas que reporta. 4) En el caso de buscar una seguridad realmente completa, lo mas recomendable es instalar un linux :-) actuara como proxy, como firewall, es mas eficiente, mas barato y mas estable... Sin duda la mejor alternativa. (Otro tema es encontrar a alguien con conocimientos para hacerlo...:) ---------- [WinProxy] ---------- Empezamos con uno de los menos conocidos, en realidad nunca he visto ninguna informacion que hablase sobre el abuso de este proxy, y sin embargo es vulnerable. La forma mas sencilla de reconocer un WinProxy es hacerle un telnet a la maquina donde suponemos que se encuentra. Y si es vulnerable aparecera algo similar a esto: [Telnet]--------------------------------------------------- Trying 195.76.206.157... Connected to 195.76.206.157. Escape character is '^]'. Enter : [port] : ----------------------------------------------------------- Y un pequeño truco para comprobar que realmente es un WinProxy, hacemos una conexion a su puerto de ftp, el puerto numero 21. [FTP]------------------------------------------------------ Connected to 195.76.206.157. 220 WinProxy FTP Gateway ready, enter username@host[:port] ----------------------------------------------------------- Sin duda es un WinProxy. --------- [WinGate] --------- Sin duda el rey de reyes, extendido mundialemente con miles de usuarios, con una version shareware, sencillo de manejar, potente, etc... Y ademas por suerte (O desgracia) las ultimas versiones vienen ya configuradas por defecto para no permitir conexiones exteriores, corrigiendo el enorme error que habian cometido en las anterirores permitiendo por defecto el acceso a cualquier maquina desde el exterior. Aun asi a pesar de estar configurado de forma segura en las ultimas versiones, aun siguen funcionando miles de wingates antiguos mal configurados. Por eso el wingate ha sido y sigue siendo el proxy mas abusado, y el primero para el que aparecieron escaneadores, scripts, etc... Su uso, abuso, y configuracion segura estan ampliamente documentados, asi que no voy a meterme en profundidad con el. Para localizar uno simplemente hacemos un telnet a la presunta maquina vulnerable y si lo es ella misma se indentificara con su caracteristico prompt: [TELNET]--------------------------------------------------- Trying 195.76.206.62... Connected to 195.76.206.62. Escape character is '^]'. WinGate> ----------------------------------------------------------- Para comprobarlo: [FTP]------------------------------------------------------ Connected to 195.76.206.62. 220 WinGate V1.3 FTP Gateway ready, enter user@host[:port] ----------------------------------------------------------- Las posibilidades son practicamente ilimitadas... --------- [S-Proxy] --------- La alternativa nacional, realizado por Simedia. Practicamente desconocido fuera de nuestras fronteras, el s-proxy de simedia es una buena alternativa a los otros proxys... y como tal es usada habitualemente por administradores de pequeñas redes en españa. [TELNET]---------------------------------------------------- Trying 194.75.196.77... Connected to 194.75.196.77. Escape character is '^]'. Host: ------------------------------------------------------------ Y como siempre para comprobar que realmente es un s-proxy hacemos una conexion a su puerto ftp. [FTP]------------------------------------------------------- Connected to 194.75.196.77. 220 S-Proxy preparado para recibir. ------------------------------------------------------------ El proxy telnet del s-proxy, tiene un pequeño inconveniente con respecto a los dos anteriores y es que no permite elegir el puerto de destino, y por lo tanto solo permite realizar conexiones telnet al puerto 23. Esto aunque no evita el abuso, limita en gran parte las posibilidades de abuso desde el exterior, aunque sigue siendo muy util para bouncear. ------------ [Conclusion] ------------ El software para entornos windows nunca se ha caracterizado por su seguridad (ya que normalmente no esta programado para ello) por eso al manejarlo hay que andarse con mucho cuidado, ya que no solo nos jugamos nuestra seguridad sino que podemos facilitar con nuestra poca experiencia la actividad de los mas avispados. Por eso antes de instalar algun soft de este tipo, es muy recomendable leerse en profundidad el manual y documentarse sobre el tema. Aunque comprendo que en muchos casos no es posible por falta de tiempo o ganas... cosa que pasa muy a menudo... :) Saludos The Dark Raver // KTD