En construcción
He comprado recientemente una cámara IP de videovigilancia. No quería gastar demasiado (es de uso doméstico) y veía que había opciones bastante económicas. Después de rastrear internet, me decidí por una de la marca Sunluxy, modelo BT470, conocida también por Wanscam JW0004. La verdad es que (a pesar de lo que voy a contar en el post) no está nada mal: 720p, H.264, motorizada, WIFI, IR, microSD, detección de movimiento, alertas por smtp, compatible con FTP, ONVIF, etc. Vaya, bastante completita sobre el papel. Para quien le interese, la compré en amazon por 47EUR: http://www.amazon.es/gp/product/B00M6QO7S2
Bien, una vez recibida la empiezo a probar. Como dice la gente, las instrucciones son bastante pobres pero bueno, en un plis la echas a andar. Me instalo la app de Android que recomiendan: Netcam360 (https://play.google.com/store/apps/details?id=hsl.p2pipcam). La app funciona bien, la traducción a español es desastrosa pero bueno, bastante funcional, aunque yo uso otra app (tinyCam PRO: https://play.google.com/store/apps/details?id=com.alexvas.dvr.pro). En fin, sigo probando la app Netcam360 y funciona correctamente. Y aquí empieza la diversión. Me da por quitar la wifi, y para mi sorpresa sigo pudiendo acceder a la cámara con la app, desde fuera de casa, con datos. Oh vaya! mola! … o no? Pues no, no mola. No mola que por arte de magia sin haber configurado absolutamente nada, ni de la cámara ni de mi router ni nada, pueda acceder a la cámara desde fuera de mi LAN. ¿Y cómo hace esto? ¿Magia? Claro! En fin, que ya había leído por ahí que la cámara es UPNP, y que te intenta abrir un puerto en el router, para que puedas acceder desde fuera. Pues es eso (pensé) seguro. Mi router tendrá habilitado el upnp, la cámara ha abierto un puerto por la p*** cara para facilitarme la vida, y todos tan contentos. Entro en el router y no veo ningún puerto abierto por upnp (bueno, unos cuantos de skype). Tengo que decir que en otras pruebas que hice con la cámara, en otro entorno, sí que me abrió un puerto por upnp (no recuerdo cuál), pero en esta ocasión no había rastro. ¿Cómo es esto posible entonces? También tengo que decir que mi router es una castaña y que no me extrañaría que hubiera puertos abiertos y no me los muestra en su interfaz web, pero me extrañaba. No me quedé conforme. En teoría no había ningún puerto abierto (ni manualmente ni por upnp) que me facilitara la conexión a la cámara desde fuera de casa. Qué mosqueo. Aún así, lo primero que quise hacer es desactivar el upnp del router. Mi router es de Adamo (una castaña), y solo te dan un usuario genérico, no admin; y no se puede desactivar el upnp. Tuve que llamar a atención al cliente y la verdad que en poco tiempo ellos hicieron la gestión. Discutí un poco con ellos sobre por qué no dan derecho de admin, pero bueno, es una batalla perdida. Me desactivaron el upnp en un ratillo. Sí, y la cámara sigue funcionando desde fuera: no es el upnp definitivamente.
Bueno, me pongo a intentar averiguar cómo narices consigo ver la cámara desde fuera. Lo primero que se me ocurre es intentar ver todo el tráfico entre mi móvil (con la app Netcam360) y mi cámara. Intenté instalar distintos sniffers para Android, pero no me funcionaban. Finalmente, haciendo pruebas desde mi trabajo consigo ver todo el tráfico saliente y entrante de mi teléfono (básicamente haciendo un port mirror del AP donde estaba conectado el móvil). Cierro la app Netcam360 (force close) y dejo el móvil en reposo, para que genere el menor tráfico de red posible. Lanzo un tcpdump, arranco la app de netcam para capturar el tráfico que va a generar, y empiezo ya a ver cosas tela de guapas:
NOTA: la IP de mi teléfono es la 10.243.135.56
Bien, estoy bastante seguro que todo el tráfico (o la inmensa mayoría) capturado es generado por Netcam360 (he hecho bastantes pruebas). Ya el comienzo de la traza es bastante feo. ¿Conexiones UDP a 182.92.233.118? ¿perdón? ¿puerto 32100?
$ whois 182.92.233.118 [...] inetnum: 182.92.0.0 - 182.92.255.255 netname: ALISOFT descr: Aliyun Computing Co., LTD descr: 5F, Builing D, the West Lake International Plaza of S&T descr: No.391 Wen'er Road, Hangzhou, Zhejiang, China, 310099 country: CN admin-c: ZM1015-AP tech-c: ZM877-AP tech-c: ZM876-AP tech-c: ZM875-AP mnt-by: MAINT-CNNIC-AP mnt-irt: IRT-CNNIC-CN status: ALLOCATED PORTABLE changed: ipas@cnnic.cn 20140730 source: APNIC [...]
Aaahhh, qué bien, que la app se conecta a un server chino para sabe dios qué, aaahh. Y es lo primero que hace. He examinado el payload de todas las conexiones a ese server, pero no es legible. Son paquetes de entre 60 y 86 bytes. En total, he contado 1K aproximadamente de intercambio con esa ip, pero ni idea de lo que es.
Otra IP molona que aparece por ahí: 54.186.68.220, y al mismo puerto 32100 Veamos:
$ whois 54.186.68.220 [...] NetRange: 54.184.0.0 - 54.187.255.255 CIDR: 54.184.0.0/14 NetName: AMAZO-ZPDX7 NetHandle: NET-54-184-0-0-1 Parent: AMAZON-2011L (NET-54-176-0-0-1) NetType: Reallocated OriginAS: AS16509 Organization: Amazon.com, Inc. (AMAZO-47) RegDate: 2013-11-26 Updated: 2013-11-26 Ref: http://whois.arin.net/rest/net/NET-54-184-0-0-1 OrgName: Amazon.com, Inc. OrgId: AMAZO-47 Address: EC2, EC2 1200 12th Ave South City: Seattle StateProv: WA PostalCode: 98144 Country: US RegDate: 2011-05-10 Updated: 2014-10-17 Ref: http://whois.arin.net/rest/org/AMAZO-47 [...]
Anda mira, de Amazon. Seguramente sea una máquina virtual AWS. Qué es ese server y por qué esas conexiones, ni idea. De nuevo, 1K de intercambio UDP con esa IP. De hecho, el contenido de los paquetes se parecen a los otros. Sea lo que sea que esté destrás del puerto 32100, parace un software similar en ambos casos. Aparecen otras 2 ó 3 direcciones de Amazon, con contenido parecido. Parece que se conecta a varias máquinas AWS.
En la traza también aparece conexiones directas con mi router que van a parar a la cámara:
Sí, la 91.126.73.51 es mi ip. El paquete #58 es el primero que hace referencia a mi ip, y como se ve, es una conexión directa UDP al puerto 10712. Ese puerto por supuesto no lo tengo abierto en el router, así que mi sospecha es que la cámara mantiene una conexión abierta al server chino o a alguno de amazon y éstos le dicen a mi móvil que use ese puerto, que ya está abierto por la supesta conexión abierta con anterioridad. Creo que así funciona teamviewer por ejemplo. Esto solo es una sospecha, porque (por ahora) no tengo manera de ver qué trafico genera la cámara. Esto me queda pendiente.
Una vez establecida la conexión directa entre mi móvil y la cámara, hay bastantes paquetes udp de intercambio entre uno y otro, hasta que empieza la fiesta:
ahí se ve un paquete udp con una petición bastante clara. El script cgi check_user hará alguna comprobación de autenticación, porque se mandan las credenciales (user y pass), y en texto plano como no podría ser de otra forma. Esto lo hace varias veces, y también llamando a otros cgi. Seguimos:
y ahí está mandando, en texto plano como no podría ser de otra forma, toda la config de la cámara (son varios paquetes, solo pongo uno): user y pass de administrador, ssid de la wifi, clave de la wifi (sí, la de mi casa), etc. Me sorprende que se manden datos tan sensibles de esta manera, y sin conocimiento del usuario. Después del baile de usuarios, passwords, redes, etc., empieza el de streaming de video (JFIF) directo al teléfono.
Hasta donde he podido averiguar, toda esta info no parece que se comparta con ninguno de los servidores que he mencionado anteriormente, sino solo entre el móvil y la cámara, para que la app (Netcam360) sepa (y en su caso modifique) toda la configuración de la cámara.
Después, antes y durante todo esto, me puse a investigar por internet, y sí, hay entradas bastante preocupantes sobre esta cámara:
http://forums.whirlpool.net.au/archive/2270750
http://drolez.com/blog/?category=Hardware&post=jw0004-webcam
https://www.pentestpartners.com/blog/hacking-the-ip-camera-part-1/
https://www.pentestpartners.com/blog/hacking-the-aldi-ip-cctv-camera-part-2/
Me queda una cosa importante que me gustaría conseguir, y es la de acceder por telnet (sí, telnet) a la cámara y ver por ejemplo el tráfico que entra y sale directamente, si se puede. En muchos sitios se dice que para entrar por telnet las credenciales son root/123456, y otras combinaciones varias, pero a mi no me sirve ninguna. En los dos últimos enlaces que he puesto, se explica entre otras cosas que esta cámara tiene una vulnerabilidad (bueno, unas cuantas) de «command injection», que básicamente consiste en poder ejecutar determinados comandos (a través de la interfaz web) y ver la salida. En resumen, en el formulario donde se configura el servidor ftp que usa la cámara, se mete el comando a ejecutar, y en el log del servidor ftp que hemos puesto (tenemos que tener acceso evidentemente) vemos el resultado de esa ejecución:
…y en el log del demonio ftp nuestro server (192.168.1.200):
Thu Nov 5 14:10:15 2015 [pid 14248] CONNECT: Client "192.168.1.110" Thu Nov 5 14:10:15 2015 [pid 14248] FTP response: Client "192.168.1.110", "220 (vsFTPd 3.0.2)" Thu Nov 5 14:10:15 2015 [pid 14248] FTP command: Client "192.168.1.110", "SYST" Thu Nov 5 14:10:15 2015 [pid 14248] FTP response: Client "192.168.1.110", "530 Please login with USER and PASS." Thu Nov 5 14:10:15 2015 [pid 14248] FTP command: Client "192.168.1.110", "USER root:XXXXXXXXXXXXXX:0:0::/root:/bin/sh" Thu Nov 5 14:10:15 2015 [pid 14248] [root:XXXXXXXXXXXXXX:0:0::/root:/bin/sh] FTP response: Client "192.168.1.110", "331 Please specify the password." Thu Nov 5 14:10:15 2015 [pid 14248] [root:XXXXXXXXXXXXXX:0:0::/root:/bin/sh] FTP command: Client "192.168.1.110", "PASS <password>" Thu Nov 5 14:10:17 2015 [pid 14246] [root:XXXXXXXXXXXXXX:0:0::/root:/bin/sh] FAIL LOGIN: Client "192.168.1.110" Thu Nov 5 14:10:18 2015 [pid 14248] [root:XXXXXXXXXXXXXX:0:0::/root:/bin/sh] FTP response: Client "192.168.1.110", "530 Login incorrect." Thu Nov 5 14:10:18 2015 [pid 14248] FTP command: Client "192.168.1.110", "PORT 192,168,1,110,142,192" Thu Nov 5 14:10:18 2015 [pid 14248] FTP response: Client "192.168.1.110", "530 Please login with USER and PASS." Thu Nov 5 14:10:18 2015 [pid 14248] FTP command: Client "192.168.1.110", "QUIT" Thu Nov 5 14:10:18 2015 [pid 14248] FTP response: Client "192.168.1.110", "221 Goodbye."
ahí está; el password de root, cifrado claro. Y en eso estoy ahora, intentando reventarlo con el amigo john the ripper. De verdad, si tenéis curiosidad leed los dos últimos links que he puesto. No tienen desperdicio.
¿Qué he hecho por ahora? Pues nada, lo que quería era dejar mi cámara completamente aislada del exterior. Si quiero verla desde fuera me conectaría a mi vpn y listo. Para evitar enredos de configuración de firewall y demás historias, lo que he hecho simplemente es quitarle el dhcp a la cámara, ponerle una ip fija y de gateway 0.0.0.0. Listo. Ahora ni me funciona Netcam360 desde fuera, como era de esperar; ni la cámara se puede conectar a ningún sitio fuera de mi LAN.
Conclusión: realmente creo (o quiero pensar) que los servidores a los que se conecta la cámara es simplemente para facilitar la conexión desde el exterior. No he visto que se intercambie información sensible con ellos. Sí que se intercambia con la app de Netcam360, y en texto plano; bastante feo. No hay manera de deshabilitar el upnp de la cámara. Eso es otro punto negativo. Es evidente que la programación del firmware deja muchísimo que desear, pero bueno, por menos de 50EUR tienes una cámara IP bastante funcional y con buenas características, pero con estos riesgos que ya uno si quiere y está dispuesto, puede asumir.
Tips & tricks
Poco a poco voy descubriendo cosillas nuevas sobre la cámara. Por ejemplo, los puertos y servicios de la cámara:
Starting Nmap 6.40 ( http://nmap.org ) at 2015-11-16 11:43 CET Nmap scan report for 192.168.1.110 Host is up (0.063s latency). PORT STATE SERVICE 23/tcp open telnet 81/tcp open hosts2-ns 9600/tcp open micromuse-ncpw 10080/tcp open unknown 10554/tcp open unknown
El 81 se usa para la interfaz web y streaming H264. El 10080 es el puerto ONVIF y el 10554 el RTSP. El 9600 todavía no sé qué es.
La URL para acceder al stream H264 es:
http://$IP:81/livestream.cgi?user=$USER&pwd=$PASSWORD&streamid=0&audio=0&filename=
Sin embargo, el codec H264 usado es propietario. FFmpeg o mplayer son capaces de reproducirlos, pero a veces pasan cosas raras. Ambos programas imprimen muchos mensajes de warning y/o error, que no sé muy bien qué significan; sin embargo, normalmente reproducen el stream. Digo normalmente porque a veces el video se queda completamente gris, y aplicaciones como Tinycam Pro (la que uso en el móvil) sigue reproduciendo el stream correctamente. Sunpongo que es debido a que la app de android tiene bien implementado el codec propietario y ffmpeg o mplayer no lo entienden bien. En cualquier caso, un reboot de la cámara arregla el problema y se vuelve a ver el video correctamente. Por cierto, para reiniciar la cámara basta con un wget:
wget -O - "http://$IP:81/reboot.cgi?loginuse=$USER&loginpas=$PWD"
yo lo tengo en una tarea de cron para reiniciarla todos los días. Yep, vaya ñapa.
La URI para el stream RTSP es:
rtsp://$USER:$PASSWORD@$IP:10554/tcp/av0_0
Con vlc por ejemplo se puede reproducir. Sí, a veces también se le va la pinza y no pilla el stream. Hay que reiniciar la cámara. No he encontrado otra solución.
Para el protocolo ONVIF, el programa Onfiv Device Manager me ha funcionado correctamente






Buenas
Tengo la misma cámara y me gustaría aportar al juego 🙂
No la tengo desde hace mucho tiempo pero ahora mismo y gracias a tu ayuda, ando crackeando la password de root a una velocidad de 14781 passwords/segundo.
Lo que mas me fastidia de la cámara es que el Stream RTSP se corte cuando le venga en gana, estoy seguro que es un fallo de programación y me gustaría solventarlo
Si quieres contactar conmigo no dudes en mandarme algún correo.
Saludos.
BUenas a los dos, hace tambien poco tiempo que tengo una camara de estas y me pasa lo mismo,,,mis conocimientos de programacion e internet son minimos y buscando por los foros he dado con vosotros….me pregunto si has podido solucionar el tema que comentas. Si es que si te agradeceria que te puesieras en contacto conmigo y asin preguntarte la solucion, si la hay….jejje
te dejo mi correo.
xaica36@gmail.com
Hasta pronto.
Jose
Pues sigo procesando la clave a ver si sale, pero de momento no hay resultado.
La tengo un poco abandonada y no he jugado mucho con ella, pero en breve intentaré retomarla.
De momento ahí tengo mi instancia procesando la contraseña que nos abra las puertas 🙂
Yo también la tengo un poco abandonada. Bueno, la uso a diario, pero para lo que fue concebida 🙂 Me gustaría remotar el tema de la contraseña y eso, pero no tengo mucho tiempo. A ver si saco un rato. Un saludo
hola, yo tambien la tengo però soy incapaz de conectarme desde el PC, vosotros podeis?
si es que si, cómo?
Hola,
¿Cuál es tu problema exactamente? ¿No puedes acceder a través de http://IP_CAMARA:81/index.html?
correcto, yo pongo en el internet explorer 192.168.0.53:81 enter y letrerito de servidor no respondre.
Supongo que la habrás reseteado varias veces no? Has hecho algún cambio? Nunca has podido entrar? Has probado con la app de Android netcam? Seguro que es esa la ip? Responde al ping?
si, la he reseteado alguna vez tanto en modo corto (que restablece la conex), como en modo largo dejandola de fabrica.
nunca he podido entrar de otro modo que no sea utilizando la app SUNLUXY, disponible para android y aple.
no, no he probado netcam.
IP ok y si responde ping.
En el mismo link de amazon que tienes en tu entrada, he visto que la gente se queja de lo mismo, dicen que han cambiado el modelo y que solo funciona en los telefonos, si eso es así, mal voy…
Pues desconozco eso, pero si es así, vaya pedazo de pu****. Has visto qué puertos tiene abiertos la cámara? Por si puedes acceder al stream rtsp por ejemplo…
yo el problema que tengo es que cuando esta conectada por cable al router funciona super bien, pero cuando la conecto por wifi es cuando empieza todo…..super lenta…tarda mucho en conectar…. y lo que me pasa hace tiempo es que con la app en sistema android, siempre tengo que cerrar la aplicacion forzando el cierre y las alertas nunca me llegan…
Alguien me puede hechar una mano?
Mil gracias
Hola,
Yo he tenido algún que otro problema, y la tengo que reiniciar de vez en cuando.
Por Wifi me suele ir bien, pero es verdad que a veces el video me va a saltos y no me queda más remedio que reiniciarla. No uso la app de netcam, sino una que se llama tinycam monitor. La uso también mucho desde el Pc que tengo conectado a la tele. Reproduzco el streaming de vídeo con ffplay, y bueno suele funcionar aunque como digo tengo que reiniciar de vez en cuando. Antes tenía una tarea de cron que la reiniciaba todos los días, pero tampoco lo veo demasiado necesario. Tengo en el móvil instalada una app que se llama Remote Launcher, para lanzar scripts del ordenador desde el móvil. Tengo uno para reiniciar la cámara, así cuando me hace falta reinicio con un par de clicks en el móvil lo consigo.
La cámara no es de lo más estable del mundo, pero bueno, tiene un precio contenido.
Saludos
Hola,
Me parece superinteresante todo lo que habeis aportado de la cámara. Y la verdad que lo he puesto en práctica con la mía, lo primero que hice fue evitar que se vea desde el exterior de mi red ya que la utilizo como vigilabebé y claro eso de que vaya a servidores chinos no me hace ninguna gracia. Mi opinión sobre la cámara es bastante buena, para el uso que yo le doy… La única pega que le pongo es que a veces cuando mi bebé ya está dormida y la enciendo (yo no la tengo todo el dia enchufada) tiene que hacer todo el recorrido hacia ambos lados y hacia arriba y abajo hasta que se posiciona en la última posición. Hay dias que mi niña se ha despertado de nuevo con el ruido de la cámara. Por eso me gustaría saber si sabéis si se puede evitar que haga estos movimientos cada vez que la enciendo. Gracias
Hola,
La verdad es que no tengo ese problema. Nunca me ha pasado. ¿Qué programa usas? Yo uso wificam (hay disponible una versión gratuita en google play). Échale un ojo que va bastante bien. Yo la que viene con la cámara la usé dos veces y a la tercera la desinstalé.
Saludos
Uso tinyCam monitor en version Pro también probé NetCam y la desinstalé al día siguiente. Pero también me hacía lo mismo, de todas formas probaré otras.
Vaya torta que tengo. Efectivamente la que uso es tinycam. Wificam es el nombre del acceso directo que tengo ☺️
La verdad es que no he tenido el problema que explicas. Qué versión de firmware tienes?
La versión es la 6.6.1. Pienso que es problema de la configuración interna porque nada mas enchufarla se pone a girar, antes de conectarse a la aplicación.
Vale vale, no te había leído bien. Lo que dices es completamente normal (al menos a mi me pasa también). Cuando la enchufas (pensaba que decías cuando abrías la app) se mueve en todas direcciones hasta que se queda justo en la posición en la que estaba antes. Creo que es normal y lo que hace es ajustar los sensores y ejes de la cámara, algo así creo vaya. No creo que sea un fallo.
Ok, entonces supongo que no hay forma de evitar que haga eso. Otra pregunta, a mi en netcam si me funciona el sonido en ambos sentidos pero en tinycam no, solo escucho, hablar al micro del movil y que se escuche en la cámara no me funciona.
No, lo del sonido tampoco me funciona. Supongo que la aplicación no implementa todas las funcionalidades de esta cámara en concreto. La verdad es que tampoco lo he echado de menos porque rara vez me ha hecho falta.
Saludos
Vale, muchas gracias
Hola,
Quiero usar esta cámara por wifi sin conexión a Internet y lo que desde pc me funciona perfectamente no consigo que funcione desee el móvil. La uso como vigilabebes y uso un antiguo móvil como monitor pero si la wifi no tiene salida a Internet no se conecta. Alguna idea?
Hola Rubén,
No te entiendo muy bien. ¿Estás conectado a la misma wifi que la cámara? ¿Por qué dices que la cámara no tiene internet? Si no tocas nada de config, debería tenerla en cuanto se conecta a tu wifi.
Saludos.