4.15.2015

Seguridad WiFi en el HUCA (II)

Disclaimer: Esta información es dada con fines meramente didácticos y lúdicos. No pretende ser ninguna guía de hacking ni cracking. Cada persona es responsable de lo que hace y deja de hacer.


En esta entrada voy a seguir con mi estudio sobre la seguridad en el sistema de registro del WiFi para invitados en el Hospital Universitario Central de Asturias, HUCA.
Resumimos los resultados que obtuvimos en la primera entrada, Seguridad WiFi en el HUCA (I):

  1. Observamos que existe una red sin cifrado llamada Invitados.
  2. Si intentamos navegar, se nos re-dirige siempre a la página de login para usuarios autorizados.
  3. Haciendo ping recibimos respuesta desde servidores de Internet.
  4. Hemos intentado cambiar las direcciones DNS por las de Google en un primer intento de poder saltarse este re-direccionamiento. No funciona.


Conclusiones:


  • Nos encontramos ante un portal cautivo, redirigiendo todo el tráfico HTTP que generemos a una página de login.
  • Tenemos salida a servidores externos mediante del Hospital mediante el comando ping, como los de Google, lo que nos lleva a dos conclusiones más:
  1. Se resuelven bien los dominios DNS aunque no estemos registrados como usuarios en el sistema.
  2. El único impedimento que tenemos para navegar libremente es el re-direccionamiento que nos hace el portal cautivo para obligarnos a identificarnos como usuarios autorizados


Como ya avancé en el primer post, una solución que se me ocurrió fue hacer un túnel de DNS o DNS tunneling, ya que el sistema DNS del Hospital resuelve los nombres sin distinguir si estan autorizados o no, o si han hecho login o no. A grosso modo y sin entrar en detalles, esta técnica encapsula todo el tráfico que generemos a través del puerto 53 que como ya habréis adivinado, es el que usa el protocolo DNS.


En este momento, dejamos de lado nuestro móvil Android y utilizamos un ordenador. Aunque utilizo Windows7, el concepto es el mismo para otros SO y no debería tener mayor dificultad.


Opté por la solución más sencilla para mí y quizás menos elegante, pero más segura de cara a esta investigación al estar todas las comunicaciones encriptadas.


La solución es utilizar un servicio de VPN que me permita usar el puerto 53 y a poder ser con conexión cifrada.. Tenemos dos alternativas gratuitas: nos lo montamos nosotros en nuestra casa con un servidor y conexión a Internet, o confiamos esta tarea a algún VPN público de Internet.


Examinando varias opciones, encontré el servicio gratuito de VPNBOOK bastante atractivo. Ofrece posibilidad de utilizar openVPN como cliente, no hace falta registro, y algunos servidores hasta ofrecen posibilidad de P2P. ¡Perfecto!


Su página web tiene un tutorial para instalar OpenVPN y configurarlo con VPNBOOK, aunque esta desactualizado y tuve que improvisar para configurarlo correctamente.

Tiene tutoriales para Windows, Mac, Linux, Android...


Uno de los problemas que encontré siguiendo su tutorial para Windows 7 fue encontrar el propio software openVPN. Aquí os lo podéis descargar:


Una vez instalado, y agregamos los certificados a sus servidores. En su tutorial los agrega directamente desde la aplicación openVPN. Yo no encontré esa opción en la versión que descargué así que los copie directamente en esta ruta:


C:\Program Files\OpenVPN\config\


Copiamos los certificados descargados en la carpeta correspondiente de openVPN


Una vez copiados los certificados, arrancamos la GUI de openVPN y nos quedará un icono de color gris con un candado en la barra de tareas.



Precaución: Desconozco el motivo pero en mi Windows7 por defecto openVPN se ejecuta en modo usuario en vez de administrador. Ni siquiera me salta el popup pidiendo permiso para ejecutarse como administrador.


Al ejecutarse en modo usuario el programa fallará al realizar comandos como route para configurar el DNS tunneling. 

Si comprobamos que nos conectamos bien al servidor de VPNBOOK pero seguimos sin poder saltarnos el portal cautivo, este es el problema. Revisando el log de conexión encontraremos fallos de este tipo cuando se crea el túnel DNS.


ROUTE: route addition failed using CreateIpForwardEntry: Access is denied.
Route addition via IPAPI failed [adaptive]
Route addition fallback to route.exe



La solución es obligar a Windows a que ejecute openVPN con derechos de administrador, por ejemplo haciendo clic con el botón derecho encima del acceso directo y eligiendo Ejecutar como administrador:

Ejecutando openVPN como administrador
Si hacemos clic con el botón derecho en el icono de la barra de tareas, nos saldrán los diferentes servidores y puertos disponibles de openVPN:

Elegimos alguno que nos permita usar el puerto 53, por ejemplo el de Canadá:

Lista de servidores y puertos disponibles en VPNBOOK


Nos aparece un pop-up pidiendo el nombre de usuario y contraseña. Se actualizan más o menos cada semana. Para ello nos dirigimos con nuestro móvil a la página de VPNBOOK o a su twitter.

Apuntamos el username y el password
Introducimos el username y password en openVPN


Introducimos nuestra contraseña y si todo va bien el icono se volverá de color verde y nos saldrá este mensaje:

Conexión correcta con servidor de Canadá por UDP puerto 53


Para comprobar que funciona, arrancamos nuestro navegador y cargamos cualquier página. ¡Funciona! Nos hemos saltado el portal cautivo de login del Hospital.


Por último, hacemos una comprobación de cuál es nuestra dirección IP:

Entramos en http://www.geoiptool.com/ y efectivamente, estamos saliendo a Internet desde el otro lado del charco.


Localizando nuestra nueva IP en los EEUU


En el siguiente post comentaré la utilidad del DNS tunneling aunque seamos usuarios autorizados en la red del Hospital o incluso en otra red de tipo empresarial. 


Pista: tiene que ver con los bloqueos a ciertas páginas web como YouTube, TV online, etc.

Enlaces:

VPNBOOK - Servicio VPN gratuito con soporte para openVPN y DNS tunneling.
Tutorial para configurar VPNBOOK
openVPN - Herramienta para poder crear una conexión VPN.
Descarga directa de openVPN
Twitter de VPNBOOK - Aquí estan  los username y passwords actualizados.
 

3.05.2015

¡Socorro! ¡Mi raspberry se cuelga!

¿Alguna vez te ha pasado alguna de estas cosas con tu raspberry Pi?
  • Se reinicia aleatoriamente
  • Se cuelga aleatoriamente
  • Cuando enchufas un disco duro USB o adaptador WiFi se reinicia
  • El puerto ethernet deja de funcionar después de unas horas o menos
  • Tu adaptador de corriente se calienta más de lo normal
Sí es así, te interesa este artículo.

Últimamente estoy un poco liado con el proyecto fin de carrera. En el necesito utilizar una raspberry Pi.

Mi modelo es la versión B; ya sabéis la que tiene 512 MB de RAM y puerto de red. 

Anteriormente la tenía funcionando con éxito como media center con Raspbmc con un cargador de móvil de un Sony Xperia P original que según marca en su carcasa proporciona 1500 mA. Más información aquí.



Cargador Sony Quick Charger EP851
Es un cargador que proporciona un cable de alimentación de más calibre que el que estamos habituados en estos cargadores. Un indicador de que de verdad podría alcanzar el ampere y medio que marca.

Los únicos problemas que he tenido con el son al conectar un disco duro externo USB de 2.5''. En el momento que lo enchufo, produce un transitorio en la tensión estabilizada de 5V haciendo que las raspberry se reinicie por falta de tensión suficiente. Esto es debido al incremento de las necesidades de corriente por parte de la raspberry Pi hacia al cargador al tener que alimentar el disco duro externo.


También he comprobado este problema al enchufar un adaptador WiFi USB. En general con cualquier dispositivo que sea un poco tragón


Pues bien, este problema lo he solventado de una manera muy sencilla. Simplemente hay que enchufar todos los dispositivos que necesitemos en la raspberry Pi antes de conectar el cargador a la red eléctrica.


Obviamente esto funciona en mi caso con un cargador que proporciona 1500mA. Si el tuyo proporciona por ejemplo 500mA (bastante común en cargadores antiguos o de los chinos aunque marquen 1000mA)  no va a funcionar aunque hagas lo mismo. Aquí rige un principio universal de la electricidad:

'' Las gallinas que entran por las que salen ''

Esto es, si nuestro cargador nos proporciona una corriente de 1000 mA nominales (funcionamiento estable, sin picos de consumo) por mucho que hagamos no vamos a poder generar una corriente sustancialmente mayor  de por ejemplo, 1500 mA estables si nuestra raspberry Pi los necesitara. Caso típico de tener un adaptador WiFi USB (suelen consumir bastante), discos duros externos, etc. Lamentablemente mi cargador con el uso, el tiempo y seguramente por los golpes que se ha llevado hace mal contacto el puerto USB.


He probado con otro cargador USB de Sony que proporciona unos 750 mA nominales y aunque la raspberry Pi funciona aparentemente bien (con el truco que comenté antes si queremos usar un HDD externo o WiFi) al cabo del tiempo acaba colgándose o incluso reiniciándose. He comprobado como en estos casos el cargador se caliente excesivamente, síntoma de que ha estado sobrecargado durante todo este tiempo.


Así que estoy buscando un nuevo adaptador de corriente USB y estoy buscando uno que me de al menos 2000 - 2500 mA estables. He estado buscando cargadores de móvil que me den esta potencia pero no me convencen la mayoría ya que pienso que el dato no es del todo fiable por su reducido tamaño. 

Entonces he pensado en las famosas tablets y sus generosas pantallas y baterías. ¿Alguna tendrá que tener un cargador potente si quieren cargarse rápido no? Comparando el tamaño de los adaptadores, para una misma potencia los de las tablets son más grandes.


Y ahora quería comentar otra experiencia con todo este tema de los cargadores: Ojo con los cables chinos y de mala calidad (y poco calibre). De nada sirve tener un adaptador de 2000mA si usamos  un cable fino tipo por ejemplo el que nos viene para cargar nuestro pequeño ebook. Si además le añadimos a esto la longitud del cable, a más largo más resistencia, al final del cable no obtendremos los 5V ni incluyendo las tolerancias permitidas ni de broma cuando se requiere un pico de consumo de corriente como por ejemplo durante el boot de la raspberry o el ya comentado caso de enchufar un HDD USB.



Os recomiendo leeros el artículo de element14 en el cual analizan el comportamiento de varios cables USB de distintos calibres junto con la raspberry Pi. Las fotos con el osciloscopio son muy ilustrativas.



Más info:
 Raspberry PI:- USB power cables, crashing and other problems