DVR Kguard Brickeado, solo tengo acceso al BusyBox embedido
-
Como anda la comunidad Linuxera? Bueno les cuento un poco mi problema a ver si me pueden iluminar.
Un cliente tenía un DVR Kguard SHA104 ya viejo, de 2 años, y el Firmware que traía era bastante malo en comparación al que traen los nuevos, y el problema principal era que no podia ver esas camara a traves de su Blackberry
Leyendo en foros comentaban que era un problema de FW por lo que procedí a buscar uno nuevo oficial y actualizarlo, pero bueno, en el medio de la actualizacion, se reinició y no arranco mas, o sea arranca pero queda en una pantalla que dice System Initializing.
Probando y probando, descubrí que el DVR tenía una nueva IP, y escaneando puertos ví que tenía abiertos estos
25 (smtp)
23 (telnet)
80 (www-http)
110 (pop3)
3128 (squid)
8080 (http-proxy)
por el 80 y 8080 no hubo caso de acceder, pero si pude entar por Telenet y me cargo una consola:
BusyBox v1.1.2 (2008.09.26-11:18+0000) Built-in shell (ash)
y aca es donde necesito ayuda, porque yo neófito total con Linux, y el soporte del aparatos se lavo las manos y por mas que les digo que tengo acceso por la consola y que se debe poder hacer algo, me dicen que ese soporte ellos no lo dan
Lo primero que se me ocurrió es ver de abir el puerto 21 o 69 a ver si por FTP o TFTP podía tirarle nuevamente el firmware anterior, pero probe con iptables y me tira "applet not found" y despues probe:
pscan (tira: not found)
netstat -lpn | grep 21 (tira de nuevo las opcione como si fuera error de syntaxis)
netstat -l 21 (tira de nuevo las opcione como si fuera error de syntaxis)
netstat -l | grep 21 (Este tira: no support for "AF UNIX" on this system)
ahora vienen las preguntas, je!
1) Hay alguna otra manera de abrir puertos en Linux?
2) Hay alguna manera de navegar por las carpetas que tiene el DVR a traves de un UBUNTU LIVE CD por ej?
3) Por ese puerto 3128 se puede hacer algo? Que es SQUID?
4) El firmware tiene extension .sw Alguno la conoce? Un amigo me tiro que quizá dentro de ese .sw este el programa de las camaras y que se cagó con el upgrade, y que lo podria extraer d ese archivo y reemplazarlo desde la consola de comandos. Probe abierndo con WINRAR o 7ZIP y no pareciera estar comprimido
Bueno, desde ya Mil Gracias al que aguantó hasta acá la lectura! Ojalá me puedan ayudar, que sinó me voy a tener que poner con $2000 que es lo q sale el aparato este -
amigo como todo dvr intentaste sacarle la pila dentro del mismo estos dvr son como pequeños pc router deben tener una forma de reset
-----Agregado el 25/4/2012 a las 04 : 20 : 20-----
aca los comandos de el sistema donde esta entrando http://translate.google.co.ve/transl...6prmd%3Dimvnsa
-----Agregado el 25/4/2012 a las 04 : 40 : 03-----
y aca squid http://www.alcancelibre.org/staticpa...-squid-general -
Hola super_ecuador, antes que nada, gracias por responder!
Mirá, si, lo desarmé, le saqué la pila y apreté el botoncito que está al lado, que asumo que debe ser el de reset, de hecho el aparato Resetea, lo que si, mepa que no hace un Hard Reset. Igual le saqué la pila y lo dejé apagado sin pila toda la noche y a la mañana a lo volví a prender y sigue igual.
Con un amigo estuvimos chusmeando la data que tiene adentro y hasta llegué a ver en algún lado el servidor DynDNS que tenía configurado, asi que se vé que el Firmware Upgrade no borro todo cuando intentó actualizar. Aunque estoy en duda todavía que carajo es lo que Actualiza el Firmware, si todo el aparato, incluido el Linux o solo la aplicación (shell) para las camaras, en fin...sigo probando...Se agradecen nuevas idéas!!! jaja
Abrazo y gracias -
Sobre el DVR en si ni idea, pero por ahí con Linux te puedo ayudar.
Busybox es una pequeña shell que incluye un montón de comandos/programas, y BusyBox los llama "applets", así que no fue compilado con soporte iptables.
El resto de los comandos:
* pscan: No lo encuentra, no viene con iptables y no es un programa en el sistema.
* netstat -lpn | grep 21: Fijate que hayas puesto netstat de verdad, probá otras opciones como netstat -l -p -n, etc.
* nestat -l 21: Efectivamente el netstat de BusyBox no acepta parámetros
* nestat -l | grep 21: Probablemente no encuentre nada corriendo en el puerto 21 entonces tiene una salida nula. Por otro lado, indica la falta de soporte de sockets AF UNIX porque eso seguro sale por la salida de error estándar la cual no la redirigiste a grep.
Igual son más suposiciones que otra cosa, acá tenés una ayua de busybox: http://www.busybox.net/downloads/BusyBox.html
1) Probablemente tengas todos los puertos abiertos, lo que pasa que no hay nada escuchando. También "TCP Wrappers" podría rechazar conexiones.
2) Ni idea, si pudieras acceder al sistema de archivos obviamente si...
3) SQUID es un servidor proxy que cachea contenidos (http://www.squid-cache.org/)
4) No, ni idea.
Ahora, si vos querés subir el firmware al aparato este se me ocurren varias opciones:
1) Viendo la documentación de busybox veo que tiene soporte tanto para un servidor FTP como para un TFTP, fijate la documentación, pero en principio lo podrías correr con un comando como este:Fijate bien las opciones de tcpsvd y ftpd para ver como correrlo.Código:tcpsvd -vE 0.0.0.0 21 ftpd -w /algun/directorio
2) Si no tiene un servidor FTP o por algún motivo no podés subir el firmware podés hacer al revés, porque también tiene un pequeño cliente ftp. Así que te ponés un servidor FTP en tu máquina (si estás en Linux podés usar ProFTPD, en Windows tenés FileZilla) y luego, desde el DVR ejecutás un comando como el siguiente:o como este otro:Código:ftpget ip_de_tu_pc firmware.sw firmware.sw
3) Si nada de eso sirve, fijate si tu busybox tiene algún comando como uudecode o base64, si tiene alguno de estos comandos podés usar la contraparte en tu pc para codificar el firmware como un archivo de texto, lo transmitís a través de telnet (por ej. lo copias y lo pegás en la ventana de tu cliente) y lo decodificas en el DVR.Código:wget ftp://ip_del_servidor/firmware.sw
También podés probar alguna variación de eso, quizás puedas crear un archivo con todos los comandos así no tenés que tipearlo... pero no sé si telnet te dejará... en ese caso bastaría con que hagas telnet ip_del_dvrCódigo:entupc$ uuencode firmware.sw firmware.sw > codificado.txt entupc$ telnet ip_del_dvr bla bla bla, te la de la shell BusyBox v1.1.2 (2008.09.26-11:18+0000) Built-in shell (ash) $ cat >codificado.txt
Luego presionás Ctrl+D las veces que haga falta $ uudecode codificado.txt Ya tenés firmware.sw en el DVR
Después tenés ztelnet, que nunca lo usé pero puede servir (http://linux.die.net/man/1/ztelnet).
4) Otra opción es, ya que tiene el puerto 25 (smtp) abierto, ver si podés conectarte y enviar un mail al DVR con el firmware como archivo adjunto. No sé cómo lo vas a extraer en el DVR, pero quizás tenga algún cliente de correo electrónico sencillo que te permita decodificar el attachment, o lo extraés a mano y después lo decodificas con alguna utilidad como base64 (si es que tiene).
5) Una opción más, te levantás un servidor HTTP (Apache o IIS o lo que sea) y te logueás en el DVR vía telnet y luego te bajás el archivo con el comando wget:6) Otra opción, hacés el telnet al revés, te levantás un servidor telnet y desde el DVR ejecutás algo comoCódigo:wget http://ip_del_servidor/firmware.sw
script debería haber logueado la sesión y tendrías un archivo que podés editar y recortar sólo la parte del firmware.sw. O bien alguna variación de eso.Código:$ script telnet tu_ip Bienvenido a mi servidor telnet User: juanito Password: **** $ cat firmware.sw $ exit
7) Si nada de esto sirve fijate que herramientas tenés disponible en el servidor, si tuvieras por ej. el comando "scp" ya está, estás re salvado, te levantás un servidor ssh en tu pc y luego te descargas el archivo haciendo algo como:Si seguís sin poder transferir nada se podría ver también que tan poderoso es el busybox que tiene compilado, ¿por qué? porque se podría hacer un script que lea números de una variable y los transforme a bytes verdaderos con echo, algo así:Código:scp usuario@ip_del_servidor:firmware.sw firmware.sw
o alguna variación de eso, planteo el uso de un for para no pasar un argumento excesivamente largo a echo... también se podría partir la variable en varias variables si resulta muy largo... en cualquier caso, ese script se transmitiría por telnet o SMTP (no como adjunto, sino como un mail de texto plano donde el script es el contenido del mail), y si el DVR lo ejecuta no hace falta que tengas ningún base64 o uudecode en el DVR. No es lo más eficiente pero funcionaría, sólo haría falta un programita que genere el script con todos los bytes del firmware, que es una tontería de hacer... y si lo podés mandar por mail... sería una solución casera y creo que bastante simple.Código:codigos="1 2 3 4 5 ..." for i in $codigos; do echo -en "\x$i" >>firmware.sw done
Bueno, fijate si algo de todo eso sirve, me vienen varias ideas a la mente pero ya puse unas cuantas... algo de todo lo que puse deberá servir... eso sí, sobre el DVR no me preguntes nada porque ni idea... todo esto es sólo para subir el firmware al DVR, cómo hacés que reemplace al firmware que ya tiene ya no tengo ni idea... vos sabrás :P
¡Saludos! -
Hola ezeaguerre!
Bueno, primero que nada. Mil Gracias!!!
Hay que tomarse el tiempo de investigar y redactar una respuesta como esta para alguien que no conoces, solo por el hecho de dar una mano. La verdad que esperaba alguna que otra idéa que me pudiera orientar, pero la verdad que lo tuyo fué muy bueno, independientemente si me sirva o no para resolver mi problema te agredezco el gesto, Chapeau!
Para empezar, traté de ver si transfería con el comando wget y funcionó, pero no copió mucho porque no tiene espacio libre
Tirando el comando df -h, pude ver:
Filesystem Size Used Avaible Use% Mounted on
/dev/root 6.0M 6.0m 40.0k 99% /
/dev/mtdblock/3 12.0M 12.0M 0k 100% /mnt/app
asi que me fuí a ver que tenia /dev/mtdblock/3, haciendo un ls a mt/app y tiro:
mkisofs stm_hi3511_dvr xml
pic www
Supongo que acá esta parte del Shell que muestra el DVR en la pantalla del monitor/tv para configurar y ver las camaras.
De todas formas por lo que llego a ver, si 12Mb es el tamaño total de esa...particion?, el firmware que pesa 11Mb debe ser el shell y no incluye el linux que esta en los 6Mb del Root, no?
Bueno, nada, antes de seguir metiendo manos, voy a seguir investigando un poco mas.
Desde ya, graciasssss =) -
a este dvr le puedes colocar dvd o un pendrive . hay forma de ver los directorios que tiene y si hay algun lugar donde esten los log , y intentaste hacerle un reinicio contectado para ver si levanta http o otros puertos
-
Hola super_ecuador
1) Si, le podes conectar un Pendrive, de hecho el upgrade del Firmware fué por ahí.
2) Si, puedo entrar y ver los directorios y los archivos, lo que estoy tratando de ver es donde estan los logs, todavía no descubrí cuales son y donde estan
3) Vos sabes que si, probé reiniciando conectado y nada, el único acceso hasta ahora es al shell del BusyBox por telnet.
Si no deduzco mal, la memoria interna esta dividida en 2, en una tiene el Busybox, y otra el shell del aparato para ver/configurar las camaras. Para levantar el firmware del pendrive y acualizarlo, para mi que es un programita que esta metido entre los 6Mb del BusyBox, el tema es tratar de descubrir cual es, o como estoy tratando de acer ahora, pubicar en varios foros de DVR, si alguien puede de uno sano, entrar por telnet y copiar todos los archivos y pasarmelos por mail y yo despues los meto dentro del aparato con un wget, que ya probé que funciona.
Ojala pudiera sacarlos yo del firmware que tiene extension .sw, pero me cansé de buscar en google como extraer ficheros de firmwares, pero cada firmware es distinto, y no encontre forma de entrar, ver o descomprimir este
Bueno, gracias por la ayuda, te dejo a ver si alguien de los foros de DVR´s se apiadó de mi y me mando los archivos jaja
Saludos
