Google Saltando Restricciones de Proxies con UltraSurf | EL TIPO DE INFORMATICA

jueves, 5 de noviembre de 2009

Saltando Restricciones de Proxies con UltraSurf

Recientemente me encontré en el trabajo con el problema citado en el encabezado de este post. Nos dimos cuenta que un usuario se las había arreglado para saltarse las restricciones impuestas por el proxy, o sea, podía acceder a sitios bloqueados por la política de la compañía como Facebook, Hi5, Webmessenger, en fin, paginas de baraje. Al conectarme al equipo del usuario (usando VNC) pude comprobar que realmente el usuario se estaba saltando las restricciones porque estaba en sitios que él no tenia permitido acceder. Inmediatamente trate de averiguar cómo se las había arreglado para hacerlo y hacerlo en mis narices (eso fue lo que más me molesto). Genere entonces un reporte de acceso para ver si el proxy (usamos Squid 2.6) me mostraba las conexiones de ese usuario y así hacerme una idea de cómo lo había hecho, pero no me presento los sitios que él estaba accediendo en el momento, por lo que pensé que entonces él estaba pasando por encima del Proxy, pero como?? El Firewall (IPtables) tiene reglas que no permite el acceso directo hacia Internet, o sea, la única forma de salir hacia Internet es haciéndolo a través del Proxy, el cual él se estaba saltando.

Me sentí un poco frustrado, se está conectando a Internet en mis narices y no veo como!!?? Prácticamente lo veía riéndose de mi: "Ja, El Tipo de Informática cree que puede evitar que revise mi feisbuk" lo imaginaba pensando. Bueno, mientras sigo indagando entre IPTables y Squid continuo con su escritorio abierto en una ventana de VNC, entonces me fijo que cuando el cerro el navegador cerro también una aplicación la cual no pude ver bien en el momento. Convenientemente él iba saliendo a almorzar así que tendría su computadora disponible para buscar el programa sin que él se diera cuenta (no quería que el supiera que lo estaba investigando, quería que se diera cuenta cuando su método ya no le funcionara). Cuando busco en los programas instalados no veo nada sospechoso, así que pensé: bueno, si el pudo conseguir ese programa y ponerlo a correr sin que nos enterásemos, seguro que no lo va a tener tan obvio". Mire bien la barra de inicio para ver los últimos programas abiertos y encontré un shortcut a una carpeta llamada "New Folder" que me pareció sospechoso, pensé que quizás dentro de este se encontraría el programa, hice clic encima de él y abrió el "UltraSurf", el muy sabio había cambiado el icono del shortcut para que pareciera una inofensiva carpeta.

Ventana UltraSurf
El muy oidiado UltraSurf en plena accion

Una vez el programa carga inmediatamente abre el navegador y ya se puede entrar a cualquier sitio sin las restricciones del proxy. Ok, ya habia encontrado el programa pero todavía no sabía cómo hacia para conectarse al Internet. Lo primero que hice fue tumbar por un momento el Proxy (la mayoría de usuarios estaban almorzando así que nadie lo noto) para ver si todavía así se conectaba lo cual efectivamente hizo que el programa se desconectara. Esto me indico que el programa si utilizaba el proxy para conectarse a Internet. Luego de Googlear un poco sobre cómo funciona este programita me entere de que este utiliza túneles SSL para conectarse con servidores proxy en Internet y entonces entendí el porque mi proxy lo dejaba pasar. Otra cosa que hace UltraSurf es que abre en el equipo del usuario el puerto TCP 9666 y configura el Internet Explorer para que utilice como proxy la dirección 127.0.0.1:9666, o sea, se usaba así mismo como proxy y el a su vez utilizaba el proxy de la red para gestionar la conexión.

Los Web Proxys trabajan capturando las solicitudes de sitios Web de los usuarios y conectándose ellos al Web server requerido en lugar del usuario, luego entrega al usuario la pagina solicitada. El usuario nunca hace una conexión directa con el sitio, quien hace la conexión al sitio web es el proxy. Es decir, el proxy es un intermediario entre el usuario interno de la red y un servidor web externo. Al estar en medio de la conexión entre el usuario y el servidor web, el proxy puede ver el contenido de los paquetes, como origen, dominio de destino, usuario que hace la solicitud, contenido del sitio web, etc., y en base a esto aplicar las restricciones especificadas. Esto aplica para el protocolo HTTP y otras aplicaciones, pero no para el protocolo HTTPS que no es más que HTTP sobre SSL. Al utilizar SSL el proxy no puede modificar el paquete, o sea, no puede ponerse en medio de la conexión, y debe dejar que el usuario negocie una conexión segura con el servidor de destino (utilizando el método http "CONNECT"). Así que al establecerse la conexión (o túnel) entre el usuario y el servidor el proxy no puede intervenir ni ver el contenido de los paquetes ya que estos son encriptados. Por esta razón el UltraSurf podía conectarse a Internet porque hace conexiones SSL con servidores en Internet.
Bloqueando UltraSurf con Squid
Para evitar estas conexiones lo que hice fue limitar los sitios en los que se pueden establecer conexiones SSL, podría también buscar el listado de servidores que utiliza UltraSurf y bloquearlos pero este no sería un método muy efectivo, ya que en tal caso bloquearía solo al UltraSurf y otro programa similar podría funcionar utilizando el mismo método. Generalmente HTTPS solo se utiliza para Internet Banking y algunas otras aplicaciones Web, afortunadamente ya tenía una lista con estos sitios creada, una especie de "Whitelist", así que lo que hice fue permitir conexiones HTTPS solo a los sitios de este listado. Para hacer esto en Squid, se hace lo siguiente:

#Creacion del ACL para el metodo CONNECT
acl CONNECT method CONNECT
# ACL que contiene los sitios Web permitidos para HTTPS
acl sitios-https url_regex "/ruta-al-listado-de-sitios.txt"
# Regla que permitira conexiones HTTPS solo a los sitios del listado creado arriba
http_access allow CONNECT sitios-https
http_access deny CONNECT all

Luego de insertar estas líneas y refrescar la configuración del squid (/etc/init.d/squid reload) UltraSurf ya no podía conectarse a sus servidores en Internet, y por ende el usuario ya no podría saltarse las restricciones (adiós feisbuk!). Pero todavía tenía pendiente el asunto de que este programa modificaba la configuración de Proxy que por GPO habíamos configurado en las computadoras. Tenemos una política de grupo (GPO) que configura el Internet Explorer para utilizar nuestro Proxy y no permite que los usuarios cambien esta opción, pero aparentemente esta política solo esconde la opción de "Connection" en las opciones del Internet explorer, pero estas podrían ser modificadas por el usuario utilizando algún script, como lo hace el UltraSurf. Así que pensé en modificar los permisos de la clave del registro de Windows que maneja la configuración de proxy del Internet Explorer, esta se encuentra en:

HKEY_USERS\SID-DEL-USUARIO\Software\Microsoft\CurrentVersion\Internet Settings

Para modificar los permisos de esta clave solo tenemos que abrir el Editor del Registro (start-->run-->regedit.exe), movernos hasta la clave especificada, hacer clic derecho encima y seleccionar "Permissions". Por defecto el usuario tendrá "Full Control" sobre esta clave, si le cambiamos este y solo le dejamos el permiso "Read" el UltraSurf no podrá modificar la configuración de proxy de Internet explorer, por lo que tendrá obligatoriamente que utilizar el proxy Interno. Así que aunque el programa llegue a conectarse a sus proxies en Internet, el usuario no podrá utilizarlo porque el Internet Explorer continuara siempre viendo solo a nuestro Proxy interno. Bueno, hasta aqui el post de hoy. Espero que este les haya servido de ayuda, mas a administradores de sistemas que a usuarios queriendo violar las politicas de su compañia o universidad (nada bueno sale de eso, creanme). Como siempre espero no haberles hecho perder su tiempo leyendome, habiendo tantos buenos blogs en la red para leer, pero nada, gracias por pasar por aquí.

53 comentarios:

  1. Muy bueno el post, me parece fascinante la forma en la que se conecta el programita, y ademas su forma de operacion, excelente saludos! voy a probar la config...

    ResponderEliminar
  2. excelente explicación de como funciona el programa, a pesar de no ser informatico (estudio medicina) lo he entendido! (o por lo menos eso creo xD)

    muy buen blog! gracias!

    ResponderEliminar
  3. Saludos:

    Muy buena forma en que estas haciendo tu labor de Administrador de Sistemas, en hora buena.

    Quisiera pedirte de favor 2 cosas, si me pudieras facilitar tu whitelist de sitios https, en los cuales solo he pensado actualmente sitios de bancos, pero quiza se me pase otro.

    La otra es ver que ya que creste dicha ACL para permitir el acceso, esta como la puedo aplicar a una ACL o si asi como esta, aplicaria a todas mis ACL creadas.

    Agradezco de antemano tu apoyo para esta tarea, y recibe un saludo desde México.

    ResponderEliminar
  4. Gracias por sus comentarios, que bueno q les haya parecido interesante.
    @Happy Almsx, mi whitelist puede ser muy diferente a tu whitelist. En mi lista basicamente tengo bancos, algunas universidades y algunas aplicaciones web de sites de clientes en la que trabajan algunos usuarios.
    En relacion a las ACL, con esas 2 basta para que tu proxy bloque el metodo "CONNECT" utilizado por http, y las aplicacas con "http_access allow" y "http_access deny".

    ResponderEliminar
  5. excelente articulo, la verdad tambien estoy fascinado con el funcionamiento de ultrasurf.
    en mi caso me dispongo a implementar squid trasparente en mi red.
    pero justo antes de lanzarlo a produccion me salto la duda de como saltar el filtro de squid y justo he dado con tu blog jajajaja y ha sido de gran ayuda.
    saludos ;)

    ResponderEliminar
  6. Interesante artículo, gracias !!

    ResponderEliminar
  7. Hola tu articulo esta muy bien explicado, yo tengo el mismo problema, hice las reglas en mi squid y no funciono, solo se deja de conectar cuando cierro el puerto 443 con el iptables pero tampoco se conecta a ningun sitio https (xD logico).

    ResponderEliminar
  8. Grande amigo, muchas gracias por tomarte el tiempo de ayudarnos con un problema para los administradores, voy a probar la configuracion a ver que tal jala

    ResponderEliminar
  9. que buena informacion...

    ResponderEliminar
  10. Amigo muy bueno tu post, pero tengo una duda... como se haría para permitir las paginas de hotmail por ejemplo o un webmail "X"

    Gracias

    ResponderEliminar
  11. Te felicito por este articulo muy interesante, me estoy dando cuenta que también me están violando la seguridad del proxy de mi red. Encontré el mismo programa UltraSoft un programa que saltaba el proxy, por eso que llegué este artículo y a la vez aprender de usted la solución, muchas gracias. Saludos.

    ResponderEliminar
  12. Me fue de gran ayuda el articulo para configurar las maquinas y no se brinque el firewall en lo que nuestro proveedor resuelve esto ya que hay maquinas personales de "jefes" q no podemos aplicar bien esto. Muy duda fue con el SID encontre un programa para confirmar el SID del usuario a restringir y funciono de Lujo, graxias

    ResponderEliminar
  13. Buena esa men pero no deberias meter a todos en un mismo sacos hay gente responsable q desee jugar o entrar al msn un rato porque como ya sabe el estudio es primero porque yace ahi el futuro de su vida.. pero para los irresponsables que se lo chanquen se lo merecen.. en fin.. interesante forma de saltarc el proxy intentare hacerlo ya que en ocaciones tengo que cuidar el lab de computo y me aburro un poco con mi laptop sin mucha entrada .a todo caso desearia saber que otras cosas mas son las que incomodan ya q soy informatico me encanta todo este mundo :D(odracir_1999@hot), en fin.. grand post sigue asi men te pondria un 10 si supiera XD jeje

    ResponderEliminar
  14. ke pasen el programa para confirmar el SID

    ResponderEliminar
  15. Muy buena informacion, una consulta al momento de ingresar al regedit para forzar que nadie cambie la configuracion del proxy, como se yo cual es el SID de mi computador.

    ResponderEliminar
  16. Me parece una tarea denigrante la tuya, siempre abrá alguien más pilas que vos y se volverá a poder navegar en tus narices

    ResponderEliminar
  17. Denigrante??. Tu debes ser de esos que usan el ultrasurf para ponerse a jugar a juegos en red en el trabajo verdad??. Y a los que nos toca "cortar las alas" a los administradores porque le joden el ancho de banda al resto de compañeros.. Mejor calla tu bocaza y vete a casa a jugar y deja un puesto de trabajo libre para quien de verdad quiera trabajar...

    ResponderEliminar
  18. jajajajaja... en mi universidad han hecho de todo eso y mas para intentar bloquear el adorado ultrasurf... pero como tengo el FIREFOX PORTABLE y no uso el fiasco de internet explorer, no hay restricción que valga...
    BUAAJAJAJAJAJAJAAAAAAAAAAAAAAA

    el que tanga algo que decirme, mi correo es: carlosa2426@hotmail.com

    ResponderEliminar
  19. yo quiero trabajar y no jugar.

    ResponderEliminar
  20. Me parece muy buena la opcion del bloqueo, la voy a probar, yo utilizo IPCOP con ADVPROXY+URLFILTER+BOT, y por si acaso +BANISH, con, con el BOT he logrado bloquear todos los P2P y fue uno de los dias mas felices...jejejeje. Los que insistan en esas pendejadas como dijo el anterio comentario que se vayan a jugar pero sentados en la punta de un cuerno......jajajajajaajjajajajajajajajaja

    ResponderEliminar
  21. jajaja... nunk esta de mas fastidiar a los admistradores de las empresas.. pero es q es divertido se los juro.. y se de vez en vez no esta de mas jugar un rato.. pero chicos no abusen.. para todo bloqueo hay un desbloqueo.. y viceversa el chiste esta quien es mejor.. Muajajaj xD

    ResponderEliminar
  22. hola que tal,

    Estoy usando Squid 3.0 compilado para centos 5.4 x86_64 no se como bloquear el programa ya que tengo usuario sobre messeger live y por lo que se squid no trabaja con https con messenger live como puedo bloquear ultrasuft permitiendo utilizar msn live saludos

    ResponderEliminar
  23. ¿No aprenden verdad?
    Squid, Fortinet/FortiGate/FortiGuard, WatchGuard y programas similares son basura y son programados por simios.

    Mi consejo es que desistan y se rindan ante el usuario. Si te encuentras a un usuario como yo, te encontraras con que puedo dejar toda la red de la empresa in-operativa solo porque se me pega la regalada gana hacerlo, encontraran sus bases de datos borradas y no solo eso, sino problemas legales. Además de que desde tu casa puedes programar ataques a la empresa y con un buen grupo de amigos como los ANONYMOUS de 4chan te pueden ayudar a mantener a la empresa varias semanas fuera.

    Me reí cuando accedí al root, les bloquee el bios para que no pudieran botear con usb o cd. No sabían ni que hacer xD

    Más tardaban ellos en arreglar eso, que yo en acceder de nuevo y joderles todo.

    Ubuntu seguro? Debian seguro? Freedora seguro? LinuxMint seguro? Mac OS/X seguro? nah. Son tan seguros como Windows 98 navegando con Internet Explorer 6.0 para mi. xD

    ResponderEliminar
  24. esta muy bueno el post, mi estimado quisiera preguntar si sabes como restringuir el messenger por diferentes formas que puede accesar el usuario, ya pude desactivar el messenger con squid en la sesion de hotmail, pero he visto que los mendigos usuarios le buscan un filtro para poder chatear, o algun snnifer que me indique en que pagina accesan....

    ResponderEliminar
  25. Como se puede hacer para bloquear el ultrasurf si cuento con un proxy en modo transparente?

    ResponderEliminar
  26. el internet debe ser libre, para su buen manejo y buen uso, ultrasurf conbinado con firefox es lo mejor arriba el hacking

    ResponderEliminar
  27. buen post, yo tengo un inconveniente: realize los cambios indicados pero el detalle esq tampoco me deja acceder a otras paginas https a pesar q ya implemente el archivo de paginas seguras permitidas y le cree su regla de acceso en el squid... quisiera q me ayudasen en el tema

    ResponderEliminar
  28. Quien probo y le funciono????????????

    ResponderEliminar
  29. todos dice "buen post, buen post" pero nadie dice que haya probado y que funcionó, yo si lo probe y NO funciona.

    ResponderEliminar
  30. @ Anónimo, si no te funciona, es posible que estes permitiendo la salida de trafico HTTPS a traves de IPtables. Debes bloquear el trafico saliente HTTPS y HTTP y que las conexiones hacia Internet se hagan únicamente a través de Squid.

    ResponderEliminar
  31. Hola, esta buenisimo tu blog, me deleito mucho leyendolo. Hay algo q no entinedo muy bien de este post, no se si me puedas ayudar, tengo ese mismo problema en donde trabajo y soy algo navato en esto; del ultimo comentario que pones, como le haces para que el trafico https salga por squid al mismo tiempo que lo hace por el puerto 80, se puede eso????? o como, jeje disculpa pero hay cosas que no entiendo todavia y me gustaria que alguien me asesorara sin burlas y comentarios ofensivos. De antemano gracias y saludos.

    ResponderEliminar
  32. LA VERDAD ESTE FUE UNO DE LOS ARTICULOS QUE AS ME A GUSTADO YA QUE LO TERMINE DE LEER.
    ME ENCANTO LA FORMA DE TRABAJAR DE ESTE PROGRAMITA Y MAS LA FORMA EN QUE TE HACE DESESPERAR. SOY ESTUDIANTE DE TECNOLOGIAS Y PARTE DE SISTEMAS Y VOY A PROBAR ESTE PROGRAMITA PARA SABER COMO FUNCIONA Y ASI PODER BLOQUEARLO.
    BUENO SALUDOS Y GRACIAS.

    ResponderEliminar
  33. Hola, oye una pregunta como se hace lo urlimo que mencionas,

    "es posible que estes permitiendo la salida de trafico HTTPS a traves de IPtables. Debes bloquear el trafico saliente HTTPS y HTTP y que las conexiones hacia Internet se hagan únicamente a través de Squid"

    Me podrias explicar porfas. Saludos y gracias exelente blog.

    ResponderEliminar
  34. Amigo, eso te funcionó?. Lo implementé y siguen pasando. Primero bloquee mediante iptables el puerto 443 (ahí si bloquee todo y ya no andaba), luego cargue las acl y las restricciones pero no las toma. Cuando intento navegar (configurando el proxy en el navegador) pasa igual. No bloquea. Escribis https:// y la pagina sale con fritas.

    ResponderEliminar
  35. Hola Jeremias,
    me funciono y todavia lo sigo utilizando. Lo que creo que quizas te pasa es que colocaste la regla "http_access allow CONNECT sitios_https" debajo de alguna regla que permite el acceso a navegar y se esta aplicando antes de la que creaste para controlar el acceso HTTPS. Revisa que la regla para controlar el metodo "CONNECT" esta por encima de que controla el acceso a Internet.

    ResponderEliminar
  36. En micaso lo unico que hago es tomar la evidencia del usuario que esta saltando las restricciones con ultrasurf, desde logs de navegacion de isa server, y log s de firewall, pantallazos del equipo etc.. para enviarlo a descargos proceso disciplinario y hasta despido, la verdad no me interesa si pueden o no saltarse la s restricicones, es mejor cuando lo hacen con eso, los echan.....

    ResponderEliminar
  37. Gracias a tu post, me diste una idea mas de como violar la seguridad de mi empresa que tiene todo bloqueado y ya he intentado de mil formas, pero la seguridad que tiene implementada es muy buena. Pero como siempre pasa , siempre hay alguien que encuentre una vulnerabilidad y pueda explotarla.

    ResponderEliminar
  38. Yo estos males de software que vulnera proxy, los voy a solucionar con restriccion de software desde la GPO, Que solamente puedan ejecutar programas que este alojados en el path de archivos de programa, y que en el escritorio solo puedan ejecutar accesos directos.

    ResponderEliminar
  39. amigo fijate que leei tu blog y en efectos todos los comentarios y esto me ayuda a saltarme mas facil las restrincciones puesto que ya se que modificaciones usas muchas gracias actualmente navego sin restriccion en mi trabajo en efecto con ultra surf y por si las dudas tengo parios servidores y proxy y como 30 programitas que hacen la misma funcion que ultra surf pueste que este programa no te deja ver porno pero algnos de los que tengo no hay ningun problema xD

    ResponderEliminar
  40. hola, alguien me puede decir sii despues de cerrar el programa, los administradores pueden ver el registro de las paginas visitadas?? en la empresa lo usabamos y se dieron cuenta del programa. No sabemos es si pueden ver estos registros. alguien que nos pueda contestar. Gracias.

    ResponderEliminar
  41. Felicidades, excelente articulo y de muy buena ayuda

    ResponderEliminar
  42. Buen articulo, yo uso TMG pero lo logre bloquear a través del antivirus. En las directivas de McAfee protección de acceso y es bloqueado el puerto. Prueben con su antivirus a ver que tal les va.

    ResponderEliminar
  43. El tipo. Cómo te diste cuenta que este usuario accesaba a Internet, si supuestamente el programita cubre la identidad del usuario? alguien pasó a un lado de él y vio el Feis abierto acaso?

    ResponderEliminar
  44. Buen articulo, yo te recomiendo programas terceros los mejores son:

    1- anti-ultrasuft
    2- anti-execute
    3- Blumentals.iNet.Protector.4.3

    con cualquiera de estos programas no te pasa ultrasuft

    ResponderEliminar
  45. Jajaja, bien el articulo para los administradores, pero para los que hemos dedicado nuestro tiempo a saltarnos los proxys (y sabemos de informatica), es solo una manera, existen muchas otras. Pero mi favorita es tomar la misma cuenta del administrador (es ovio que el no se restringe nada), con su propia configuración y crearle un clon en modo Background, esta se enlaza a su maquina, y es su maquina la que me provee internet y vuala, la magia esta hecha.

    ResponderEliminar
  46. Sugerencia para los administradores: Los controles se hacen por algo, no son caprichos (lo de los países es otra cosa no me refiero a eso), pero si el o los administradores, además de poner estas herramientas, las acompañan en la empresa, institución o corporativo donde trabajan, de una política informática soportada con elementos jurídico-laborales, y la publican asegurándose que los usuarios la conocen, donde se indique a que tienen y no tienen derecho los usuarios, ademas de las sanciones que se pueden hacer acreedores si la violentan, los tipos (como muchos que comentaron en esta y otras páginas burlándose del administrador) que se quieren pasar de listos, buscando satisfacer sus vicios de navegación en el trabajo, pueden ser sancionados y despedidos sin problema, incluso previendo una denuncia penal si reciben ataques a sus paginas corporativas en un periodo razonable de tiempo posterior al despido. Si quieren navegar que lo hagan en su casa, o en su tiempo libre, y que le dejen el trabajo a alguien que si le interesa tenerlo. ¿Parece aburrido hacer esto?, les comento que no todo se puede resolver con Tecnología, en ocasiones hay que apoyarse en procesos y políticas. Saludos.

    ResponderEliminar
  47. Hola
    Soy un ADM *** BLACK SKULL ***como tu te apoyo con tu politica y me gusto tu blog sigue asi no hagas caso de las estupideses que estos simios ignorantes (usuarios de la lan) hacen

    ResponderEliminar
  48. Soy tambien ADM, si puedo a portar algo es usar SQUID con SQUIDGUARD, y crear politicas por grupos, en el grupo creado en SQUIDGUARD que quiero que no use ULTRASURF simplemente coloco: "!in-addr" . Ejemplo:
    internet_bajo {
    pass !in-addr......

    ResponderEliminar
  49. Excelente explicación, me sirvió de mucho.

    ResponderEliminar
  50. Dictador, chupa culo de los explotadores. ¿Que tiene de malo durante el almuerzo o cada dos horas de trabajo ininterrumpido chequear FB o Twitter? Eres un pequeño fascista frustrado, anda a ofrecer tus servicios a china.

    ResponderEliminar