{"id":24253,"date":"2022-12-13T12:20:31","date_gmt":"2022-12-13T11:20:31","guid":{"rendered":"https:\/\/www.metafrase.es\/?p=24253"},"modified":"2022-12-13T12:20:31","modified_gmt":"2022-12-13T11:20:31","slug":"encuentran-vulnerabilidades-en-vehiculos-hyundai-y-genesis","status":"publish","type":"post","link":"https:\/\/www.metafrase.com\/blog\/encuentran-vulnerabilidades-en-vehiculos-hyundai-y-genesis\/","title":{"rendered":"Encuentran vulnerabilidades en veh\u00edculos Hyundai y Genesis"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">La simulaci\u00f3n demuestra como se puede controlar remotamente las cerraduras, motor, bocina, luces y maletero <\/h2>\n\n\n\n<p>El equipo del usuario de la red social twitter Sam Curry ha conseguido encontrar una vulnerabilidad que afecta a los veh\u00edculos de las marcas Hyundai y Genesis, a trav\u00e9s de la cual se puede controlar remotamente diversas funciones del coche como son la apertura y cierre de las cerraduras, el maletero, la bocina, luces o incluso el encendido y apagado del motor. Esto se ha demostrado en los veh\u00edculos fabricados m\u00e1s all\u00e1 de 2012.<\/p>\n\n\n\n<p>Adem\u00e1s, en el siguiente twitter, lo demuestran a trav\u00e9s del experto en seguridad de veh\u00edculos y car hack, @_specters_:<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-rich is-provider-twitter wp-block-embed-twitter\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/twitter.com\/samwcyo\/status\/1597695281881296897?s=20&#038;t=gp0XW2fJMaoGVANBiQMbQg\n<\/div><\/figure>\n\n\n\n<p>La investigaci\u00f3n comenz\u00f3 con la exploraci\u00f3n de las vulnerabilidades de seguridad en los servicios telem\u00e1ticos de los veh\u00edculos. Muchos de los an\u00e1lisis realizados se han basado en los ciberataques sobre las llaves f\u00edsicas de los propietarios, as\u00ed que Sam y su equipo decidieron indagar sobre las p\u00e1ginas web.<\/p>\n\n\n\n<p>Tanto las aplicaciones de Hyundai como las de Genesis tienen la funci\u00f3n de permitir encender, apagar, abrir y cerrar el coche. Teniendo acceso a un Hyundai, empezaron a monitorizar todo el tr\u00e1fico de la APP a trav\u00e9s de la Suite Burp, para ver que instrucciones se estaban transfiriendo a la API (Interfaz de Programaci\u00f3n de Aplicaciones) .<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"744\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" alt=\"\" class=\"wp-image-24263 lazyload\" sizes=\"(max-width: 1024px) 100vw, 1024px\" data-src=\"http:\/\/www.metafrase.com\/blog\/wp-content\/uploads\/sites\/4\/2022\/12\/FiwJWlXXoAMAvmj-1024x744.jpeg\" data-srcset=\"https:\/\/www.metafrase.com\/blog\/wp-content\/uploads\/sites\/4\/2022\/12\/FiwJWlXXoAMAvmj-1024x744.jpeg 1024w, https:\/\/www.metafrase.com\/blog\/wp-content\/uploads\/sites\/4\/2022\/12\/FiwJWlXXoAMAvmj-300x218.jpeg 300w, https:\/\/www.metafrase.com\/blog\/wp-content\/uploads\/sites\/4\/2022\/12\/FiwJWlXXoAMAvmj-768x558.jpeg 768w, https:\/\/www.metafrase.com\/blog\/wp-content\/uploads\/sites\/4\/2022\/12\/FiwJWlXXoAMAvmj.jpeg 1260w\"><figcaption class=\"wp-element-caption\"><em>Fuente: @bbuerhaus<\/em><\/figcaption><\/figure>\n\n\n\n<p>As\u00ed encontraron las solicitudes HTTP que se hacen para desbloquear el coche:<\/p>\n\n\n\n<p><code>POST \/ac\/v2\/rcs\/rdo\/unlock HTTP\/1.1 Access_token: token {\"userName\":\"EMAIL\",\"vin\":\"VIN\"}<\/code><\/p>\n\n\n\n<p>El \u00abAcces_token\u00bb fue el JWT (est\u00e1ndar abierto basado en JSON Web Token) generado a partir de la autenticaci\u00f3n por correo electr\u00f3nico mediante la aplicaci\u00f3n de m\u00f3vil.<\/p>\n\n\n\n<p>As\u00ed pues, reenviaban el email dentro del JSON para la solicitud requerida. Esto no es normal, porque el servidor deber\u00eda ser capaz de identificar el correo mediante la sesi\u00f3n abierta en el JWT.<\/p>\n\n\n\n<p>Entonces, como manejaba el servidor los par\u00e1metros JSON?:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"616\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" alt=\"\" class=\"wp-image-24264 lazyload\" sizes=\"(max-width: 1024px) 100vw, 1024px\" data-src=\"http:\/\/www.metafrase.com\/blog\/wp-content\/uploads\/sites\/4\/2022\/12\/FiwOW57X0AMnI2g-1024x616.png\" data-srcset=\"https:\/\/www.metafrase.com\/blog\/wp-content\/uploads\/sites\/4\/2022\/12\/FiwOW57X0AMnI2g-1024x616.png 1024w, https:\/\/www.metafrase.com\/blog\/wp-content\/uploads\/sites\/4\/2022\/12\/FiwOW57X0AMnI2g-300x181.png 300w, https:\/\/www.metafrase.com\/blog\/wp-content\/uploads\/sites\/4\/2022\/12\/FiwOW57X0AMnI2g-768x462.png 768w, https:\/\/www.metafrase.com\/blog\/wp-content\/uploads\/sites\/4\/2022\/12\/FiwOW57X0AMnI2g.png 1274w\"><figcaption class=\"wp-element-caption\"><em>Fuente: @samwcyo<\/em><\/figcaption><\/figure>\n\n\n\n<p>Al modificar los par\u00e1metros del correo electr\u00f3nico a cualquier otro que no sea el JWT, el servidor devuelve la respuesta de \u00abno autorizado\u00bb. Este compara el correo enviado en el cuerpo del JSON, con la direcci\u00f3n analizada desde el JWT, y realiza alg\u00fan tipo de comprobaci\u00f3n previa antes de dar la autorizaci\u00f3n pertinente.<\/p>\n\n\n\n<p>Esto se hac\u00eda en la propia solicitud de desbloqueo del veh\u00edculo, as\u00ed que evit\u00e1ndolo, entonces se podr\u00eda te\u00f3ricamente desbloquear el coche y poder realizar el resto de acciones permitidas. As\u00ed pues, el objetivo del equipo de Sam era enga\u00f1ar al servidor para que interpretara un correo electr\u00f3nico de la v\u00edctima como v\u00e1lido a partir de las dos entradas ya realizadas. <\/p>\n\n\n\n<p>La primera aproximaci\u00f3n que se les ocurri\u00f3 fue falsear el registro de la cuenta de usuario de Hyundai. Inmediatamente, se dieron cuent de que el servidor no requer\u00eda la confirmaci\u00f3n por parte de los usuarios de su correo electr\u00f3nico. Adem\u00e1s, parec\u00eda haber una secuencia de caracteres que permit\u00eda controlar el correo.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"375\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" alt=\"\" class=\"wp-image-24265 lazyload\" sizes=\"(max-width: 1024px) 100vw, 1024px\" data-src=\"http:\/\/www.metafrase.com\/blog\/wp-content\/uploads\/sites\/4\/2022\/12\/FiwSytJXoAIoNH2-1024x375.png\" data-srcset=\"https:\/\/www.metafrase.com\/blog\/wp-content\/uploads\/sites\/4\/2022\/12\/FiwSytJXoAIoNH2-1024x375.png 1024w, https:\/\/www.metafrase.com\/blog\/wp-content\/uploads\/sites\/4\/2022\/12\/FiwSytJXoAIoNH2-300x110.png 300w, https:\/\/www.metafrase.com\/blog\/wp-content\/uploads\/sites\/4\/2022\/12\/FiwSytJXoAIoNH2-768x281.png 768w, https:\/\/www.metafrase.com\/blog\/wp-content\/uploads\/sites\/4\/2022\/12\/FiwSytJXoAIoNH2.png 1165w\"><figcaption class=\"wp-element-caption\"><em>Fuente: @samwcyo<\/em><\/figcaption><\/figure>\n\n\n\n<p>Mediante el m\u00e9todo de ensayo y error, finalmente encontraron algo que funcion\u00f3.:<\/p>\n\n\n\n<p>A\u00f1adiendo un car\u00e1cter de control CRLF al final de la direcci\u00f3n de correo electr\u00f3nico de la v\u00edctima, utilizado durante el registro, se pod\u00eda crear una cuenta nueva que se saltaba la comprobaci\u00f3n del par\u00e1metro JWT y tambi\u00e9n del correo electr\u00f3nico:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"420\" height=\"281\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" alt=\"\" class=\"wp-image-24266 lazyload\" sizes=\"(max-width: 420px) 100vw, 420px\" data-src=\"http:\/\/www.metafrase.com\/blog\/wp-content\/uploads\/sites\/4\/2022\/12\/FiwT-KbXoAEDyBZ.png\" data-srcset=\"https:\/\/www.metafrase.com\/blog\/wp-content\/uploads\/sites\/4\/2022\/12\/FiwT-KbXoAEDyBZ.png 420w, https:\/\/www.metafrase.com\/blog\/wp-content\/uploads\/sites\/4\/2022\/12\/FiwT-KbXoAEDyBZ-300x201.png 300w\"><figcaption class=\"wp-element-caption\"><em>Fuente: @samwcyo<\/em><\/figcaption><\/figure>\n\n\n\n<p>Para comprobar que funcionaba, enviaron una petici\u00f3n HTTP a un endpoint que listaba los veh\u00edculos conectados, usando las siguientes variables:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Correo electr\u00f3nico JWT registrado: victim@gmail.com%0d<br \/>Correo electr\u00f3nico con par\u00e1metro JSON: victim@gmail.com<\/code><\/pre>\n\n\n\n<p>\u00a1BINGO!! La respuesta HTTP devolvi\u00f3 el VIN de la v\u00edctima. \u00a1Veh\u00edculo hackeado!!<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"685\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" alt=\"\" class=\"wp-image-24267 lazyload\" sizes=\"(max-width: 1024px) 100vw, 1024px\" data-src=\"http:\/\/www.metafrase.com\/blog\/wp-content\/uploads\/sites\/4\/2022\/12\/FiwWw9vX0AATjzN-1024x685.png\" data-srcset=\"https:\/\/www.metafrase.com\/blog\/wp-content\/uploads\/sites\/4\/2022\/12\/FiwWw9vX0AATjzN-1024x685.png 1024w, https:\/\/www.metafrase.com\/blog\/wp-content\/uploads\/sites\/4\/2022\/12\/FiwWw9vX0AATjzN-300x201.png 300w, https:\/\/www.metafrase.com\/blog\/wp-content\/uploads\/sites\/4\/2022\/12\/FiwWw9vX0AATjzN-768x514.png 768w, https:\/\/www.metafrase.com\/blog\/wp-content\/uploads\/sites\/4\/2022\/12\/FiwWw9vX0AATjzN.png 1228w\"><figcaption class=\"wp-element-caption\"><em>Fuente: @samwcyo<\/em><\/figcaption><\/figure>\n\n\n\n<p>La comprobaci\u00f3n final era ver si se pod\u00eda realizar acciones reales como desbloquear el coche o arrancarlo con el JWT manipulado. En ese caso, la toma de posesi\u00f3n del veh\u00edculo ser\u00eda total, y por tanto de la cuenta de cualquier veh\u00edculo Hyundai, y posteriormente, Genesis.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"492\" height=\"1024\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" alt=\"\" class=\"wp-image-24269 lazyload\" sizes=\"(max-width: 492px) 100vw, 492px\" data-src=\"http:\/\/www.metafrase.com\/blog\/wp-content\/uploads\/sites\/4\/2022\/12\/Captura-de-pantalla-2022-12-02-a-las-14.12.31-492x1024.png\" data-srcset=\"https:\/\/www.metafrase.com\/blog\/wp-content\/uploads\/sites\/4\/2022\/12\/Captura-de-pantalla-2022-12-02-a-las-14.12.31-492x1024.png 492w, https:\/\/www.metafrase.com\/blog\/wp-content\/uploads\/sites\/4\/2022\/12\/Captura-de-pantalla-2022-12-02-a-las-14.12.31-144x300.png 144w, https:\/\/www.metafrase.com\/blog\/wp-content\/uploads\/sites\/4\/2022\/12\/Captura-de-pantalla-2022-12-02-a-las-14.12.31.png 558w\"><\/figure>\n\n\n\n<p>Se env\u00edo la petici\u00f3n HTTP mediante la cuenta v\u00edctima con CRLF para intentar desbloquear el veh\u00edculo de @_specters_, conectado a la direcci\u00f3n del correo del mismo. El servidor tard\u00f3 unos segundos, y finalmente respondi\u00f3: \u00ab200 OK\u00bb. \u00a1\u00a1El veh\u00edculo hab\u00eda sido desbloqueado!!<\/p>\n\n\n\n<p>Posteriormente, el equipo de Sam puso los c\u00f3digos en un script de python que solo ped\u00eda la direcci\u00f3n de correo de la v\u00edctima, con solo ella se pod\u00eda tomar control de cualquier veh\u00edculo. Tras esto, reportaron el fallo a Hyundai y trabajaron conjuntamente para arreglarlo.<\/p>\n\n\n\n<p>Afortunadamente, esta vez, \u00a1\u00a1los buenos fueron los que encontraron el fallo!!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La simulaci\u00f3n demuestra como se puede controlar remotamente las cerraduras, motor, bocina, luces y maletero El equipo del usuario de la red social twitter Sam Curry ha conseguido encontrar una vulnerabilidad que afecta a los veh\u00edculos de las marcas Hyundai y Genesis, a trav\u00e9s de la cual se puede controlar remotamente diversas funciones del coche [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":24262,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[2],"tags":[],"class_list":["post-24253","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/www.metafrase.com\/blog\/wp-json\/wp\/v2\/posts\/24253","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.metafrase.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.metafrase.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.metafrase.com\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.metafrase.com\/blog\/wp-json\/wp\/v2\/comments?post=24253"}],"version-history":[{"count":0,"href":"https:\/\/www.metafrase.com\/blog\/wp-json\/wp\/v2\/posts\/24253\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.metafrase.com\/blog\/wp-json\/wp\/v2\/media\/24262"}],"wp:attachment":[{"href":"https:\/\/www.metafrase.com\/blog\/wp-json\/wp\/v2\/media?parent=24253"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.metafrase.com\/blog\/wp-json\/wp\/v2\/categories?post=24253"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.metafrase.com\/blog\/wp-json\/wp\/v2\/tags?post=24253"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}