01 marzo 2011

Hacking LG TV for fun and profit!

Aprovechando uno de los días sin IVA de Mediamarkt, y teniendo en mente un cambio de TV (la anterior no tenía ni TDT integrada), volvimos a casa con una LG más moderna. Ya puestos, esta es algo más grande que la anterior, y como le confesé a Chema Alonso en la entrevista que me hizo, este año estará genial seguir la temporada de Fórmula 1 en el salón!

Según miraba la TV en Mediamarkt, me preguntaba a mí mismo para qué valdría el conector RJ-45 que se le veía detrás, y ya me picaban los dedos por conectarla en casa a ver qué habían dejado los ingenieros de LG a disposición de todo el mundo

Así, después de ver que todo funcionaba, configuré la red cableada de la TV con la IP 192.168.52.50 y con default gateway y DNS 192.168.52.254 (la máquina de casa que hace de UTM). Os doy estos datos para poneros en situación de lo que veréis que ocurre después.

Así pues… siguiendo el capítulo 0 del "Manual del buen auditor" el primer sencillo nmap lanzado (nmap -v -sT -sV -A -O -p1-65535 -P0 192.168.52.50) devuelve que no hay puertos abiertos. Leyendo el manual (esta vez el de la TV), se dice que puede reproducir contenidos digitales compatibles con DLNA (Digital Living Network Alliance) que estén en la misma red. DLNA funciona como UPnP, es decir, que los dispositivos "se anuncian" que existen en la red mediante el puerto 1900 UDP a una IP de Multicast… Curioso es que al buscar contenidos por la red desde el menú de la TV, al lanzar el siguiente nmap apareciera lo siguiente:

[root@Carmen ~]# nmap -v -sT -sV -A -O -p1-65535 -P0 192.168.52.50
Interesting ports on 192.168.52.50:
Not shown: 65534 closed ports
PORT      STATE SERVICE VERSION
33255/tcp open  unknown
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at http://www.insecure.org/cgi-bin/servicefp-submit.cgi :
SF-Port33255-TCP:V=4.20%I=7%D=2/19%Time=4D5EFE64%P=i686-redhat-linux-gnu%r
SF:(GetRequest,F4,"HTTP/1\.1\x20500\x20Internal\x20Server\x20Error\r\nSERV
SF:ER:\x20Linux/2\.6\.31-1\.0\x20UPnP/1\.0\x20DLNADOC/1\.50\x20INTEL_NMPR/
SF:2\.0\x20LGE_DLNA_SDK/1\.5\.0\r\nCONNECTION:\x20close\r\nCONTENT-LENGTH:
SF:\x2060\r\nCONTENT-TYPE:\x20text/html\r\n\r\n
500\x20Internal\x20Server\x20Error)(HTTPOptions,E8,"HTTP/1\.
SF:1\x20501\x20Not\x20Implemented\r\nSERVER:\x20Linux/2\.6\.31-1\.0\x20UPn
SF:P/1\.0\x20DLNADOC/1\.50\x20INTEL_NMPR/2\.0\x20LGE_DLNA_SDK/1\.5\.0\r\nC
SF:ONNECTION:\x20close\r\nCONTENT-LENGTH:\x2054\r\nCONTENT-TYPE:\x20text/h
SF:tml\r\n\r\n

501\x20Not\x20Implemented

MAC Address: 00:E0:91:VV:XX:ZZ (LG Electronics)
No exact OS matches for host (If you know what OS is running on it, see http://insecure.org/nmap/submit/ ).
TCP/IP fingerprint:
OS:SCAN(V=4.20%D=2/19%OT=33255%CT=1%CU=38930%PV=Y%DS=1%G=Y%M=00E091%TM=4D5E
OS:FECD%P=i686-redhat-linux-gnu)SEQ(SP=BB%GCD=1%ISR=C4%TI=Z%II=I%TS=A)SEQ(S
OS:P=BB%GCD=1%ISR=C5%TI=Z%II=I%TS=A)OPS(O1=M5B4ST11NW5%O2=M5B4ST11NW5%O3=M5
OS:B4NNT11NW5%O4=M5B4ST11NW5%O5=M5B4ST11NW5%O6=M5B4ST11)WIN(W1=16A0%W2=16A0
OS:%W3=16A0%W4=16A0%W5=16A0%W6=16A0)ECN(R=Y%DF=Y%T=40%W=16D0%O=M5B4NNSNW5%C
OS:C=Y%Q=)T1(R=Y%DF=Y%T=40%S=O%A=S+%F=AS%RD=0%Q=)T2(R=N)T3(R=N)T4(R=Y%DF=Y%
OS:T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T5(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD
OS:=0%Q=)T6(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T7(R=N)U1(R=Y%DF=N%T=4
OS:0%TOS=C0%IPL=164%UN=0%RIPL=G%RID=G%RIPCK=G%RUCK=G%RUL=G%RUD=G)IE(R=Y%DFI
OS:=N%T=40%TOSI=S%CD=S%SI=S%DLI=S)

Uptime: 0.117 days (since Fri Feb 18 21:32:27 2011)
Network Distance: 1 hop
TCP Sequence Prediction: Difficulty=187 (Good luck!)
IPID Sequence Generation: All zeros

OS and Service detection performed. Please report any incorrect results at http://insecure.org/nmap/submit/ .
Nmap finished: 1 IP address (1 host up) scanned in 119.277 seconds
               Raw packets sent: 126 (9832B) | Rcvd: 66 (6092B)

Ahora sí que tienes un puerto abierto TCP??? ¿Qué correrá en él?

[root@Carmen ~]# telnet 192.168.52.50 33031
Trying 192.168.52.50...
Connected to 192.168.52.50 (192.168.52.50).
Escape character is '^]'.
GET / HTTP/1.1

HTTP/1.1 400 Bad Request
SERVER: Linux/2.6.31-1.0 UPnP/1.0 DLNADOC/1.50 INTEL_NMPR/2.0 LGE_DLNA_SDK/1.5.0
CONNECTION: close
CONTENT-LENGTH: 50
CONTENT-TYPE: text/html


400 Bad Request 

GET / HTTP/1.0

HTTP/1.1 500 Internal Server Error
SERVER: Linux/2.6.31-1.0 UPnP/1.0 DLNADOC/1.50 INTEL_NMPR/2.0 LGE_DLNA_SDK/1.5.0
CONNECTION: close
CONTENT-LENGTH: 60
CONTENT-TYPE: text/html


500 Internal Server Error 

GET / HTTP/0.9

HTTP/1.1 500 Internal Server Error
SERVER: Linux/2.6.31-1.0 UPnP/1.0 DLNADOC/1.50 INTEL_NMPR/2.0 LGE_DLNA_SDK/1.5.0
CONNECTION: close
CONTENT-LENGTH: 60
CONTENT-TYPE: text/html


500 Internal Server Error
^[^]
telnet> quit
Connection closed.


Un servidor web?! Se comporta diferente dependiendo de la versión HTTP que usemos (0.9, 1.0 ó 1.1). Por la respuesta, sólo soporta peticiones HTTP 1.1, pero no permite ni una simple petición GET. ¿Tendrá vulnerabilidades? Googleando aparecen entradas sobre las capacidades DLNA (el plugin DLNADOC/1.50 que aparece en la cabecera). He de decir también que en sucesivas pruebas, el puerto abierto detectado cambiaba, en general a 33031 TCP. Aquí referenciaré siempre 33255 para mantener la coherencia.

El sentido común dice que un servidor web, si tiene alguna vulnerabilidad, la fantástica herramienta Nikto, lo sabrá. [DISCLAIMER] Esta prueba fue lanzada mientras mi novia veía la tele, por lo que, el comportamiento que vais a leer/ver ahora lo detecté por casualidad, pero mi cara fue algo así :O [/DISCLAIMER]

Ejecutando perl nikto.pl -host http://192.168.52.50:33255 -C all, el programa empieza a probar vulnerabilidades conocidas indicándonos si ha tenido éxito o no en cada una de ellas.

Mientras se ejecutaba esta herramienta, mi novia, muy aficionada a hacer zapping con el mando, llegó un momento en el que, al cambiar de canal, la TV mostraba durante unos 2 segundos la imagen, y se quedaba sin señal. He reproducido varias veces la situación y la podéis ver bajo estas líneas:



Aunque se pare la ejecución de la herramienta, hasta que no se reinicia la TV, no volverá a su comportamiento normal. Es decir, ¿el funcionamiento de la TV puede verse afectado dependiendo de lo que le hagas a su interfaz de red? Por ello, quise probar si era capaz de hacer algún otro tipo de denegación de servicio basado en estresar la tarjeta de red. ¿Qué pasaría si por ejemplo utilizara las capacidades de Flooding de Hping? Si no os acordáis de todas las opciones que tiene hping, podéis echar un vistazo al cheatsheet que comentamos aquí.

Una vez lanzado a ejecución la línea "hping -p 33255 --flood -a 192.168.52.254 -S 192.168.52.50"  la TV empezará a recibir una inundación de paquetes por su interfaz de red que la estresará tanto que seará incapaz de reproducir correctamente el video!! El audio se oye bien, pero el video no se decodifica como tiene que ser. Lo podéis ver en el siguiente video:



En este caso, si paramos la ejecución de Hping, la TV hará su trabajo correctamente, sin perder fotogramas, sin necesidad de reinicios.

Buscando otros vectores de ataque

Netcast es la aplicación de LG que nos presenta el portal de acceso a los contenidos digitales desde la TV permitiéndonos ver videos Youtube, conectarnos a Facebook, Twitter, el informe meteorológico con Accuweather, Google Maps, etc,… Dicho portal ofrece la posibilidad de hacer que, en su momento de carga, presente la temperatura de una ciudad y la hora de la medición. Podéis ver un ejemplo de esto en la siguiente imagen:





La idea ahora es analizar el funcionamiento y personalizar aún más ese portal. Siguiendo el "manual del buen juanker" nuevamente, procedemos a analizar el tráfico de red que efectúa la TV desde que la encendemos y accedemos al menú Netcast. Para ello, utilizando la herramienta Tshark (la utilidad de línea de comandos de Wireshark) analizamos el tráfico de red que intercambia la TV con el exterior para obtener la información meteorológica.. Mediante la línea: "tshark -i eth1 host 192.168.52.50 -V -w /tmp/tsharklg" obtendremos un fichero pcap que luego podremos analizar cómodamente con Wireshark (si alguien quiere que le envíe el pcap, que me lo pida).

Os cuento las conclusiones obtenidas de ese análisis:
  1. Lo primero que hace la TV es intentar resolver por DNS la dirección www.lge.com
  2. Una vez que resuelve, se conecta a esa IP al puerto TCP 80 y si obtiene una respuesta satisfactoria "detecta que tiene conexión a Internet".
  3. Una vez que entramos en el menú Netcast con el mando, se conecta a http://lgtv.accu-weather.com/widget/lgtv/weather-data.asp… con un montón de parámetros que devuelve un XML que posteriormente la TV parseará y mostrará en pantalla.

Bueno, pues ya tenemos las condiciones necesarias para el caldo de cultivo de una bonita inyección que genere un panel diferente.

Es increible que la TV necesite conectarse periódicamente a www.lge.com para saber si tiene o no Internet. Hice la prueba a nivel de firewall saliente (en 192.168.52.254) y bloqueé la IP a la que intenta conectarse la TV. Efectivamente, la LG se queja en un mensaje de error que no hay acceso a Internet y que verifique la conexión. El día que el servidor web de lge.com no esté accesible, para todos los dispositivos LG mundiales que ejecuten NetCast, no habrá Internet!

Analizando la petición web que hace a accu-weather.com y la respuesta en un XML, para llevar a cabo la inyección tendremos que disponer de un servidor web accesible por la TV y modificar la resolución DNS de accu-weather.com por la del servidor web propio. Si nuestro servidor DNS nos permite añadir entradas (no hace simplemente de relay/caché de DNS) lo haremos así. Para ello deshabilité en la máquina 192.168.52.254 el servicio DNS caché y utilicé una implementación de servidor DNS hecha en Perl muy sencillita que permite añadir manualmente qué queremos que se resuelva:

En mi caso, quedó así:

[root@Carmen ~]# more /tmp/dns.pl 
 #!/usr/bin/perl 

 use Net::DNS::Nameserver;
 use strict;
 use warnings;

 sub reply_handler {
         my ($qname, $qclass, $qtype, $peerhost,$query,$conn) = @_;
         my ($rcode, @ans, @auth, @add);

         print "Received query from $peerhost to ". $conn->{"sockhost"}. "\n";
         $query->print;

        
         if ($qtype eq "A" && $qname eq "lgtv.accu-weather.com" ) {
                 my ($ttl, $rdata) = (3600, "192.168.52.17"); #SI ALGUIEN NOS PIDE RESOLUCION DE LGTV.ACCU-WEATHER.COM DEVOLVEMOS LA IP DEL WEBSERVER
                 push @ans, Net::DNS::RR->new("$qname $ttl $qclass $qtype $rdata");
                 $rcode = "NOERROR";
         }elsif( $qname eq "www.lge.com" ) {
                 my ($ttl, $rdata) = (3600, "93.188.132.129"); #Importante añadir la resolución de www.lge.com porque si no dirá que no hay acceso a Internet!!!!
                 push @ans, Net::DNS::RR->new("$qname $ttl $qclass $qtype $rdata");
                 $rcode = "NOERROR";

         }else{
                  $rcode = "NXDOMAIN";
         }
        

         # mark the answer as authoritive (by setting the 'aa' flag
         return ($rcode, \@ans, \@auth, \@add, { aa => 1 });
 }

 my $ns = Net::DNS::Nameserver->new(
     LocalPort    => 53,
     ReplyHandler => \&reply_handler,
     Verbose      => 1,
 ) || die "couldn't create nameserver object\n";

 $ns->main_loop;

Así pues en la IP 192.168.52.17 levanté un servidor web, que devolvería en /widget/lgtv/weather-data.asp el siguiente XML:

[root@Test ~]# more /var/www/html/widget/lgtv/weather-data.asp


C
KM
KPH
kPa
MM

FailLand
Spain
40.4
-3.68

01:00
1
False


http://www.accuweather.com/m/en-us/EUR/ES/SP013/Madrid/current.aspx?p=lgtv
SecurityByDefault tenemos 2858 Followers en Twitter
21
20
30%
Sunny
01
4
4
SW
0.0
Low
…..
SNIP

De esta manera, la siguiente vez que entráramos en el menú Netcast de la TV, nos sorprendería de la siguiente manera:



Conclusiones

  • La TV LG es increible en cuanto a capacidades y prestaciones. Se ve y oye genial y estoy seguro que disfrutaré como un vikingo de las carreras de Fórmula 1!
  • Los ingenieros de LG han hecho un buen trabajo en la securización de la misma, al menos "de serie", puesto que hay que dedicarle un buen rato para encontrarle "cosillas"
  • Quizá sería interesante no haber incluido procesadores autónomos para la decodificación de la señal de TDT y el procesamiento del tráfico de red, a fin de evitar que una inundación de paquetes influyera en la decodificación o el refresco de pantalla.
  • Una pista falsa que seguí fue el intentar meterle mano a la funcionalidad DLNA. Desde un PC con un servidor DLNA, detecta que la TV está en la red, pero no permite ejecución de comandos ese dispositivo DLNA.
  • Para conseguir inyectar el texto deseado en el portal de entrada de Netcast hay que tomarse unas cuantas molestias, aunque oye siempre es divertido el tener un servidor que te genere un XML con información personalizada y acutalizada en el campo "observationtime" y enterarte en la TV cuando quieras.
  • Ahora ya sé qué medidas tomar cuando mi novia monopolice el mando a distancia de la TV y no compartamos el gusto por lo que estén dando en ese canal. Hping es mi amigo!
  • He visto las etiquetas de "Warranty void if this seal is broken", sin embargo, en ningún sitio pone que se invalide la garantía por darle un poco de caña al interfaz de red, ¿verdad?
  • Después de que sustituyeran CNN+ en español por Canal Gran Hermano pensé que la tele sería un coñazo… ¿Quién dijo ahora que la TV es aburrida?

60 comments :

Luis dijo...

Muy interesante!
Yo siempre he querido echarle un vistazo al sistema de actualización de software de las televisiones... Si se le pudiera meter mano y engañarla, entonces la podrias liar pero bien :)!

seifreed.com dijo...

Hola

Desde luego Lorenzo te admiro por estas cosas que haces, demuestras que YO no estoy tan loco cuando cosas que me compro las analizo XDD

Un saludo y me ha encantado la entrada

Jordi Prats dijo...

Que novia tan comprensiva tienes. Yo si le hago el flood y empieza a hacer el tonto la tele, me parece que dormiría en el sofá

Newlog dijo...

Buenísima entrada, hacking en estado puro ;)

Gracias por explicar todo el proceso llevado a cabo, siempre es una ayuda e inspiración para futuras situaciones.

P.D.: En la Nova o la Nitro o alguna de estas se pasan toda la tarde hasta las 22:00 haciendo buenas series.

maty dijo...

Te diviertes muchos, pero no comentas sobre la calidad de imagen.

Todavía estás a tiempo para devolverla, así que te aconsejo encarecidamente que indagues sobre las televisiones de plasma Panasonic (las míticas Kuro de Pioneer pasaron a mejor vida, por suerte para el bolsillo).

Por unos 450€ puedes tener una estupenda de 42" (resolución 720p, suficiente a no ser que mires la pantalla a menos de uno/dos metros, es decir, como monitor -donde sí interesa 1080p).

Ahora que nadie nos lee, no sé si te dejaría entrar en mi casa, eres un peligro público :P

- Saludos -

Gadix dijo...

Otro hack interesante es desbloquear el capado que metió LG a modelos de gama baja para que no reprodujeran video, música y fotos desde el puerto USB

http://www.elotrolado.net/hilo_jaquear-lg-lh-y-lf-para-reproducir-mkv-a-traves-del-usb_1298198

Reproduce de PM MKV, AVI, MP3, JPG... ;)

Lorenzo Martínez dijo...

@Luis y @Seifreed -> a mí me parece que ambos también probáis cualquier cosa que tenga una IP :D

@Jordi -> Es que no te imaginas como agarra el mando a distancia, parece que tiene pegamento en la mano!

@Newlog -> Muchas gracias! No me hables de más series que ya sigo unas cuantas...

@Maty -> La verdad es que con la TV LG estoy encantado ya. La anterior era LG, nunca falló, así que fui directo a LG. Muchas gracias igualmente!

@Gadix -> Lo que comentas lo ví después de haber escrito el post incluso! Mi TV lo trae ya incorporado. Probé alguno de los tricks que indicaban, pero ninguno me funcionó!

maty dijo...

Lorenzo, infórmate al respecto de plasma versus LCD/LED. La diferencia de calidad en la imagen es muy notable. Eso sí, en los centros comerciales apenas hay plasmas y se ven muy mal a causa del exceso de luz.

Te aconsejo encarecidamente que leas mi anotación al respecto, donde encontrarás mucha información útil.

Nauscopio Scipiorum Panasonic TX-P37X10. HDReady (720p) versus FullHD (1080p).

Claro que si a tí te suena igual de bien un fichero mp3 que un FLAC entonces no hay nada que discutir :P

Lorenzo Martínez dijo...

@Maty -> la LG de la que hablo, es plasma...

maty dijo...

Tierra trágame.

Con todo, es preferible -al menos hasta el 2010- un plasma Panasonic, como antaño sucedía con los de Pioneer.

Anónimo dijo...

Sospecho que es muy probable que ese servidor web tenga algún webservice o json para activar rutinas de diagnóstico.

Quizás puedas conseguir en alguna web el manual de mantenimiento, con esquemas, checkpoints y descripción de los webservices que puedes usar.

Anónimo dijo...

Hombre, "hacking"...

ANDOR dijo...

Cacharrismos! Mola, aunque yo estoy retrasado en esto de las teles... ya no gasto mucho... Estoy a ver si me llega uno de los proyectores gama alta de Canon que esperamos, que lleba un interfaz de red y le echo un ojo. En teoría debería llevar nada más SNMP, pero quién sabe :D

Por cierto, si usas como DNSCaché a dnsmasq puedes hacer un truco para añadir entradas:

En la máquina que ejecuta dnsmasq (ya bien sea un server linux, o tu router dd-wrt) agregas entradas a /etc/hosts y reinicias el servicio de dnsmasq, y ya está :D

En las redes en las que lo tengo es muy apañao, ya bien para hacer "shortcuts", tests, bloquear resolucioens de ips o para tomarle el pelo a las visitas que se conectan a la wifi.

corsaria dijo...

¿Qué modelo de LG es? Así miro si me interesa más esa o la Panasonic que dice maty? ;)

Anónimo dijo...

mi LG LCD 37" del 2007 sintonizaba muy mal algunos canales TDT, despues de llevarla al servicio tecnico de LG y que me la devolviesen sin apreciar ningun fallo, la dejé en una tienda en san sebastian de los reyes, y... solo cambiaron en el setup la ganancia de entrada de 4 a 8, y todo solucionado, ahora veo todo perfecto.

Javier Lobo dijo...

Cojonudo. Y yo que me creía el rey por sacar el menú de servicio de las Samsung... ¡buen trabajo!

Youssou dijo...

@maty

Ya me gustaría a mí que escucharas un MP3 bien codificado a 320K vs FLAC en prueba ciega, a ver si eras capaz de distinguirlos...

maty dijo...

Off topic

@Youssou

Si fueras lector habitual de mi bitácora sabrías que soy capaz. Más aún, distingo entre diferentes compresiones de FLAC. O entre 24bit/96Khz y 24/48 si la fuente del ripeo es un vinilo publicado no hace muchos años. Eso sí, en mi viejo equipo de música Denon de 1991 y con cajas rellenadas por mí con paneles de fibra de vidrio. En música bien grabada y no el chunga chunga comercial de estos días, tan pésimamente grabados por aquello de la guerra de volumen e inepcias varias.

Y todo sin necesidad de gastar un dineral.

Pero claro, no me lees.

FIN Off topic.

Nomo dijo...

"Es increible que la TV necesite conectarse periódicamente a www.lge.com para saber si tiene o no Internet. Hice la prueba a nivel de firewall saliente (en 192.168.52.254) y bloqueé la IP a la que intenta conectarse la TV. Efectivamente, la LG se queja en un mensaje de error que no hay acceso a Internet y que verifique la conexión. El día que el servidor web de lge.com no esté accesible, para todos los dispositivos LG mundiales que ejecuten NetCast, no habrá Internet!"

Pues vaya novedad. Casi todos los dispositivos, programas, videoconsolas y sistemas operativos actuales están configurados de modo que dependan del servicio de su fabricante. Dentro de diez o veinte años habrá que hacer virguerías para poder jugar a un juego online actual.

Yo creo que deberían hacer una ley que obligara a los fabricantes de cualquier dispositivo o software propietario a "abrirlo" (es decir, publicar todo lo que haga falta para que funcione) al cabo de unas décadas de su lanzamiento.

eltate dijo...

A las teles samsung ya les andan metiendo mano hace tiempo:

http://www.samygo.tv/

tayoken dijo...

Qué guay, trastear estas cosas siempre es chachi. Buen trabajo!

Alejandro dijo...

Si ya me quedé sorprendido con la entrada del robot aspirador Roomba hoy me has terminado de matar.

Muy interesante!!!!

atilla dijo...

Igual es una gilipollez... pero sería posible acceder a cinetube o a seriesyonkis??

Adama dijo...

Anda que mi novia me iba a dejar trastear la tele nueva... Qué crack!

Muy interesante y divertido el post.

Saludos!

NaTetoco dijo...

Uhm, interesante blog. Ya tenéis un visitante diario (o casi)

Lorenzo Martínez dijo...

En general a todos los que habéis dejado comentarios: Muchísimas gracias por vuestras aportaciones.

Para los que preguntáis por el modelo de TV en concreto es la LG 50PK950.

Efectivamente, seguiré pegándome con el parsing de XML, la carga de imágenes, overflows en cabeceras, etc,... en busca de más curiosidades!

@ANDOR -> Utilizo DJBDNS en modo caché únicamente. Probé a hacer lo que comentas (entrada en /etc/hosts) pero sólo es válido para la resolución DNS de la propia máquina. Si quieres que otras máquinas pregunten por resolución DNS, deberá estar en una entrada del servidor o hardcodeada en el que pongo de ejemplo en Perl. Además lo prefería así para no manchar el DNS para la prueba.


@Anonimo (Hombre, "hacking"...) -> https://secure.wikimedia.org/wikipedia/en/wiki/Hacker_%28hobbyist%29

@Nomo -> Evidentemente si tengo que mirar si tengo internet, puedo hacerlo viendo si un servidor existe o no y está sirviendo una página web concreta, pero... y si ese no existe, no miro otro a ver? Es decir, si la resolución DNS de www.lge.com no es capaz de hacerse o simplemente el servidor no contesta, no hay Interneeeééé?????? Como solución, sólo si ese servidor no funciona prueba con alguno de los servicios que se dan desde la TV (Facebook, Google, Twitter....) Si TODOS esos no funcionan, entonces, puedes decir que NO hay internet :D

@Atilla -> Desconozco si existe alguna plataforma abierta de creación de aplicaciones para los firmwares LG. Dí con un foro de LG-hack cuando ya tenía el post maquetado incluso! y hablaban de la posibilidad de habilitar opciones en algunos modelos que vienen capados.

@Natetoco -> Bienvenido, espero que disfrutes con nuestros posts!

Como os decía antes. A TOD@S: Muchísimas gracias!

Juan Monzón dijo...

Hola Lorenzo,

Yo me he "hackeado" la tele para ver mkvs, en las opciones del mando de muchos modelos LG, si das con la combinación de teclas adecuada te dice la versión de firmware y si llegas al mismo punto del Hack para ver opciones puedes toquitear de todo, lo interesante es ver en el control de versiones del firmware, que es exactamente lo que han arreglado y seguro que encuentras alguna maldad más. :) nos vemos en las listas.. :P

Alfonso dijo...

@atilla -> Pues parece que si, pero yo no lo he probado aún:
http://www.lg-hack.info/cgi-bin/sn_forumr.cgi?fid=2679&cid=2675&tid=3043&sc=20&pg=1&x=0

Newlog dijo...

Para los atolondraos de Menéame, que no dejan de desprestigiar esta entrada, ya me gustaría verlos a ellos 'trasteando' un poco con la tele, cuando la mayoría no tiene ni idea de lo que es nmap y en el mejor de los casos hubieran dejado el tema al ver que no había ningún puerto abierto.

Todos aquellos pedantes que por instalar un nuevo firmware modificado (¡por otras personas!) se creen que entienden lo que es el hacking.

Si queréis criticar, no hay nada mejor que escribir algo de mayor calidad que lo criticado... Lo esperaré con ganas!

El hacking es el arte de ir más allá, de investigar cómo funcionan las cosas, de sentir esa curiosidad que te impide, por ejemplo, quedarte sentado en el sofá mirando la tele, cuando tienes la posibilidad de estudiar su protocolo de comunicación y modificar lo que te parezca conveniente para adaptarlo a tus necesidades o gustos. O por simple placer. A partir de aquí, decid si esto es hacking o no es hacking.


En fin, vergüenza me dáis.

Newlog dijo...

El comentario anterior, más que nada es por los comentarios de Menéame, no por los de aquí. Que me sacan de mis casillas...

manolo arista dijo...

me llega el boletín, y cada vez que veo un artículo de este tipo como al final en el boletín no viene el autor siempre me toca ir a link de vuestra página pero previamente ya sabía quien es, saludos Lorenzo me molan este tipo de artículos.

Youssou dijo...

Offtopic

@marty

¿Podrías poner el enlace al artículo donde haces la prueba? No sé si sabrás que es fundamental igualar los niveles de ambas fuentes, pero claro, tú tampoco nos lees ;-)

http://www.matrixhifi.com/metodologia1.htm

Saludos y disculpas por el offtopic

Fin Offtopic

maty dijo...

Esta semana, dos veces lo he hecho. Uno con un vinilo publicado en el 2011 (24/96 sonaba mucho mejor que el posterior 24/48) y otro con varias décadas a sus espaldas (sonaban casi igual, como es habitual, así que guardé a 24/48). También con un SACD a 24/88.2 (en los SACD es una tontería intentarlo, así que guardo en el original).

Y lo he comentado donde referencio la música que encuentro y recomiendo.

Dejémoslo correr, que no es el sitio.

Youssou dijo...

Ok, dejémoslo correr, pero si tienes la mente abierta y algo de curiosidad entra en la web que te he puesto.

Saludos.

Lorenzo Martínez dijo...

@Juan -> El domingo prometo sentarme con calma a mirar nuevas opciones sobre la TV, así como con las opciones "ocultas" el foro lg-hack que indicabais. De momento he probado con un USB a crear el fichero proxy-settings, simplemente por ver si hace caso o no,... y la respuesta es que la mía tal cual viene NO hace caso. Seguiremos investigando!


@Newlog -> Muchas gracias por tus palabras y por tu apoyo. Es un placer contar con alguien como tú

@Manolo -> No sabía que nos leías! Espero que estés bien. Sigues teniendo el mismo número de móvil?

Gustavo dijo...

Muy interesante, sobre todo para mi que cuando me compre el Samsung S4 no tenia idea donde conectar el DVD.

vogh dijo...

Si señor, un trabajo de hacking fabuloso y una explicación completa y detallada. Como ingeniero informático que soy, nunca me habia metido a trastear este tipo de cosas, pero desde luego parece enormemente divertido! quizas me anime a dar mis primeros pasos :)

Un saludo fuerte!

maty dijo...

OFF TOPIC

@Youssou

En unas horas anotaré: WAV versus FLAC [0, 124kbps] versus MP3 [LAME, 320kbps] en Nauscopio Scipiorum.

Subiré un comprimido con los tres ficheros y sus logs. Utilizando EAC 1.0 beta 1 y máxima calidad posible para cada formato (modo seguro y demás parafernalia).

Así cualquiera podrá verificar por sí mismo si hay diferencias o no cuando el tema original está bien grabado. Tal vez sea un directo magnífico para que haya menos adulteraciones de origen.

END

Pido perdón a Lorenzo y compañía por la digresión.

maty dijo...

OFF TOPIC

@Youssou

Nauscopio Scipiorum WAV y FLAC [0, 1024kbps] versus MP3 [Lame, 320kbps] en Bela Fleck & The Flecktones: New South Africa (1996) con EAC v1.0 beta 1.

Si quieres seguir discutiendo hagámoslo ahí, que bastante hemos abusado de la hospitalidad de esta casa.

END

Eleeme dijo...

Hombre te falta un comentario básico: "toquetear la entrada RS232 de tu televisor hace que funcione sólo en períodos de 2 segundos"

Nemigo dijo...

LG es una marca un poco patata en tecnología, en tecnología con interface. Les falla bastante el acabado pero es interesante saber lo que se puede hacer con las nuevas funcionalidades. Tengo un lavaplatos con conexión a internet por ahí...

Fede B. / Barbeta dijo...

Algo interesante para hacer con las TVs LG, es ver la posibilidad de agregar widgets de netcast sin depender la configuracion geografica del equipo.

Por ejemplo, en tus capturas se ve que al estar en españa, tienes habilitados unos cuantos widgets en netcast, mientras que, por ejemplo en Argentina, solo hay 3: youtube, picassa y weather

Por lo que estuve investigando, estos widgets no están atados a geoip (o sea, no se fijan en la IP de la conexion para mostrarlos), simplemente se muestran de acuerdo al pais que uno eligio en la configuración de la TV (en los modelos que se venden en latinoamerica, solo se muestran paises de Latinoamerica... sino ya hubiese elegido españa! :P )

sldos y felicitaciones por tu trabajo!

Lorenzo Martínez dijo...

@Gustavo + Vogh -> Muchas gracias por vuestros comentarios! Os aseguro que el tiempo invertido te lo pasas genial buscándole las cosquillas.

@Eleeme -> Una de las cosas que se me han quedado pendientes, junto con el profundizar más en el tema, ha sido el ver qué se puede hacer a través del RS232 :D

@Nemigo -> La verdad es que LG, es de las marcas más genéricas y supongo que no se podrá comparar con Sony o Panasonic, pero a mí me ha dado hasta ahora buen resutlado y no soy excesivamente exigente, así que, me vale!

@Fefe B./Barbeta -> Curioso es que la primera vez que la enchufé y accedí al portal de contenidos multimedia, no mostraba más de 2 o 3 aplicaciones. Sin embargo, al encontrar actualizaciones de firmware, en el siguiente reinicio, me aparecieron nuevas (facebook, twitter, etc,…) Una prueba que se podría hacer es establecer desde el servidor que tengo en casa y da salida a internet, montar una VPN con un país diferente y hacer que salga a Internet desde allí y ver si cambian los contenidos o widgets. He estado probando a ver si se puede incluir un proxy en la configuración de red de la TV y acceder mediante un proxy en otro país, pero no he logrado hacer que funcione aún

Sebastián Cortés dijo...

No entiendo lo siguiente:

al princio aparece:
33255/tcp open (el puerto

33255 esta abierto)
pero luego haces telnet al puerto 33031
# telnet 192.168.52.50 33031
No tendrias que hacer telnet al puerto 33255 (que es el unico puerto abierto?
Perdon por la pregunta tan tonta, estoy empezando en esto

Lorenzo Martínez dijo...

@Sebastian Cortés -> Muy buena observación!!! En realidad, la TV no siempre abre el mismo puerto (en general es el 33031, pero no siempre es así). Como hice un montón de pruebas, para reproducir de nuevo el fallo del bloqueo de dos segundos en cada canal, y ver cuál era la petición que la bloqueaba, por eso que el nmap está hecho a un puerto diferente que la conexión al mismo con un telnet para ver qué servicio contestaba.
Tienes toda la razón en no entenderlo, porque realmente no cuadraba. Espero que ahora quede más claro :D

Sebastián Cortés dijo...

Muchisimas gracias por la aclarión! Me alegro que no me estaba equivocando. Entendi perfecto ahora. Gracias

Perdon si estoy desvirtuando mucho el articulo, pero no sabia que se podia hacer telnet a otro puerto que no sea el 23 (y tu se lo haces al puerto 33031)

# telnet 192.168.52.50 33031

Se que no debe ser asi, pero podria hacer telnet a muchos puertos?
Vuelvo a pedir disculpas por mis preguntas si son un poco tontas.

Lorenzo Martínez dijo...

@Sebastian -> el comando telnet abre una conexión TCP a un socket en un host servidor. Por defecto es el puerto 23 pero puedes hacerlo a otro diferente si le añades otro al final. También puedes usar netcat.

Sebastián Cortés dijo...

Muchisimas gracias por la aclarión! Me alegro que no me estaba equivocando. Entendi perfecto ahora. Gracias

Perdon si estoy desvirtuando mucho el articulo, pero no sabia que se podia hacer telnet a otro puerto que no sea el 23 (y tu se lo haces al puerto 33031)

# telnet 192.168.52.50 33031

Se que no debe ser asi, pero podria hacer telnet a muchos puertos?
Vuelvo a pedir disculpas por mis preguntas si son un poco tontas.

Sebastián Cortés dijo...

No entiendo lo siguiente:

al princio aparece:
33255/tcp open (el puerto

33255 esta abierto)
pero luego haces telnet al puerto 33031
# telnet 192.168.52.50 33031
No tendrias que hacer telnet al puerto 33255 (que es el unico puerto abierto?
Perdon por la pregunta tan tonta, estoy empezando en esto

Fede B. / Barbeta dijo...

Algo interesante para hacer con las TVs LG, es ver la posibilidad de agregar widgets de netcast sin depender la configuracion geografica del equipo.

Por ejemplo, en tus capturas se ve que al estar en españa, tienes habilitados unos cuantos widgets en netcast, mientras que, por ejemplo en Argentina, solo hay 3: youtube, picassa y weather

Por lo que estuve investigando, estos widgets no están atados a geoip (o sea, no se fijan en la IP de la conexion para mostrarlos), simplemente se muestran de acuerdo al pais que uno eligio en la configuración de la TV (en los modelos que se venden en latinoamerica, solo se muestran paises de Latinoamerica... sino ya hubiese elegido españa! :P )

sldos y felicitaciones por tu trabajo!

maty dijo...

OFF TOPIC

@Youssou

En unas horas anotaré: WAV versus FLAC [0, 124kbps] versus MP3 [LAME, 320kbps] en Nauscopio Scipiorum.

Subiré un comprimido con los tres ficheros y sus logs. Utilizando EAC 1.0 beta 1 y máxima calidad posible para cada formato (modo seguro y demás parafernalia).

Así cualquiera podrá verificar por sí mismo si hay diferencias o no cuando el tema original está bien grabado. Tal vez sea un directo magnífico para que haya menos adulteraciones de origen.

END

Pido perdón a Lorenzo y compañía por la digresión.

vogh dijo...

Si señor, un trabajo de hacking fabuloso y una explicación completa y detallada. Como ingeniero informático que soy, nunca me habia metido a trastear este tipo de cosas, pero desde luego parece enormemente divertido! quizas me anime a dar mis primeros pasos :)

Un saludo fuerte!

Juan Monzón dijo...

Hola Lorenzo,

Yo me he "hackeado" la tele para ver mkvs, en las opciones del mando de muchos modelos LG, si das con la combinación de teclas adecuada te dice la versión de firmware y si llegas al mismo punto del Hack para ver opciones puedes toquitear de todo, lo interesante es ver en el control de versiones del firmware, que es exactamente lo que han arreglado y seguro que encuentras alguna maldad más. :) nos vemos en las listas.. :P

Anonymous dijo...

mi LG LCD 37" del 2007 sintonizaba muy mal algunos canales TDT, despues de llevarla al servicio tecnico de LG y que me la devolviesen sin apreciar ningun fallo, la dejé en una tienda en san sebastian de los reyes, y... solo cambiaron en el setup la ganancia de entrada de 4 a 8, y todo solucionado, ahora veo todo perfecto.

Anonymous dijo...

Hombre, "hacking"...

Newlog dijo...

Buenísima entrada, hacking en estado puro ;)

Gracias por explicar todo el proceso llevado a cabo, siempre es una ayuda e inspiración para futuras situaciones.

P.D.: En la Nova o la Nitro o alguna de estas se pasan toda la tarde hasta las 22:00 haciendo buenas series.

Jordillussa dijo...

"El día que el servidor web de lge.com no esté accesible, para todos los dispositivos LG mundiales que ejecuten NetCast, no habrá Internet!" 

 07 de agosto de 2011.... LGE.com no està disponible y efectivamente mi TV dice que no hay internet LOL

Gustavo dijo...

Yo tengo una tele LED LG modelo LE5500 y solo puedo acceder a 3 contenidos, sabés como se puede desbloquear el resto del contenido?

Yamitlewis dijo...

Hola Lorenzo por favor necesito tu ayuda. Compre un 47LV5500 Led de LG en U.S.A pero yo vivo en Colombia. El netcast q aparece es (Netflix Etc etc) cuando trato de usarlo me dice que estoy fuera del area por lo tanto no puedo hacer uso de estas aplicaciones. Como hago para actualizarlo con las aplicaciones de Colombia? aveces me pregunta para actulizar pero lo que hace es actulizar alicaicones gringas. espero tu ayuda mi correo es yamitlewis@gmail.com gracias.
gmail 

canario45 dijo...

YO ME BAJE UN FIRMWARE DE MLA PAGINA DE LG DE ESTADOS UNIDOS, PARA QUE TE APAREZCAN UN MONTON DE CONTENIDOS COMO FACEBOOK O SKIPE. eSTO LO TIENES QUE DESCOMPRIMIR EN COLOCAR EN UNA CARPETA TODO EN MAYUSCULAS LLAMADO LG_DTV, Y SUPUESTAMENTE DEBERIA DE FUNCIONAR ES UNA VERSION DEL 2012!! PARA EL LE5500, NO LO HE PROBADO AUN, RECIEN PUDE BAJARLO. ES IMPORTANTE QUE ESTE EN MAYUSCULAS EL NOMBRE DE LA CARPETA. Y OBVIAMENTE PASARLO CON UN USB QUE FUNCIONE CON LA TV. SUERTE!