{"id":6240,"date":"2013-08-03T06:05:05","date_gmt":"2013-08-03T13:05:05","guid":{"rendered":"http:\/\/www.infosecurity.pro\/?p=6240"},"modified":"2019-04-20T16:24:37","modified_gmt":"2019-04-20T16:24:37","slug":"chromecast-exploit-package-spawns-a-root-shell-on-port-23","status":"publish","type":"post","link":"https:\/\/www.infosecurity.pro\/?p=6240","title":{"rendered":"Chromecast exploit package spawns a root shell on port 23"},"content":{"rendered":"<p>\t\t\t\t<![CDATA[\n\n<p dir=\"ltr\" id=\"docs-internal-guid-5c1ed2c8-3dd6-bd29-6cec-46b7d07c3a48\" style=\"line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"color: rgb(0, 0, 0); font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; background-color: transparent;\">GTVHacker has <a href=\"http:\/\/blog.gtvhacker.com\/2013\/chromecast-exploiting-the-newest-device-by-google\/\" target=\"_blank\" rel=\"noopener noreferrer\">stated<\/a>:<\/span><\/p>\n\n\n\n\n<blockquote>\n\n\n<p dir=\"ltr\" style=\"line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"color: rgb(0, 0, 0); font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; background-color: transparent;\">How does the exploit work?<\/span><\/p>\n\n\n\n\n<p dir=\"ltr\" style=\"line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"color: rgb(0, 0, 0); font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; background-color: transparent;\">Lucky for us, Google was kind enough to GPL the bootloader source code for the device. So we can identify the exact flaw that allows us to boot the unsigned kernel. By holding down the single button, while powering the device, the Chromecast boots into USB boot mode. USB boot mode looks for a signed image at 0&times;1000 on the USB drive. When found, the image is passed to the internal crypto hardware to be verified, but after this process the return code is never checked! Therefore, we can execute any code at will.<\/span><\/p>\n\n\n\n\n<p dir=\"ltr\" style=\"line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"color: rgb(0, 0, 0); font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; background-color: transparent;\">ret = VerifyImage((unsigned int)k_buff, cpu_img_siz, (unsigned int)k_buff);<\/span><\/p>\n\n\n<\/blockquote>\n\n\n\n\n<blockquote>\n\n\n<p dir=\"ltr\" style=\"line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"color: rgb(0, 0, 0); font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; background-color: transparent;\">The example above shows the call made to verify the image, the value stored in ret is never actually verified to ensure that the call to &ldquo;VerifyImage&rdquo; succeeded. From that, we are able to execute our own kernel.<\/span><\/p>\n\n\n<\/blockquote>\n\n\n\n\n<p><span style=\"color: rgb(0, 0, 0); font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; background-color: transparent;\">If you are in Vegas for DEF CON 21, check out &ndash; <a href=\"https:\/\/defcon.org\/html\/defcon-21\/dc-21-speakers.html\" target=\"_blank\" rel=\"noopener noreferrer\">&ldquo;<\/a><\/span><a href=\"https:\/\/defcon.org\/html\/defcon-21\/dc-21-speakers.html\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"color: rgb(17, 85, 204); font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; background-color: transparent;\">Google TV: Or How I Learned to Stop Worrying and Exploit Secure Boot<\/span><\/a><span style=\"color: rgb(0, 0, 0); font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; background-color: transparent;\"><a href=\"https:\/\/defcon.org\/html\/defcon-21\/dc-21-speakers.html\" target=\"_blank\" rel=\"noopener noreferrer\">&rdquo;<\/a> by GTVHacker this Friday, August 2nd, at 3PM in the Penn and Teller Theater!<\/span><\/p>\n\n\n\n\n<p><span id=\"docs-internal-guid-5c1ed2c8-3dd9-37a3-f7a6-d09fbb61a474\" style=\"color: rgb(0, 0, 0); font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; background-color: transparent;\">\n<iframe src=\"\/\/rcm-na.amazon-adsystem.com\/e\/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=infosecpro0c-20&o=1&p=8&l=as4&m=amazon&f=ifr&ref=ss_til&asins=B00DR0PDNE&MsrketPlace=US\" style=\"width:120px;height:240px;\" scrolling=\"no\" marginwidth=\"0\" marginheight=\"0\" frameborder=\"0\"><\/iframe>\n<\/span><\/p>\n\n\n]]>\t\t<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\t\t\t\t<![CDATA[]]>\t\t<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"amazonpipp_noncename":"","amazon-product-isactive":"","amazon-product-single-asin":"","amazon-product-content-location":"","amazon-product-content-hook-override":"","amazon-product-excerpt-hook-override":"","amazon-product-singular-only":"","amazon-product-amazon-desc":"","amazon-product-show-gallery":"","amazon-product-show-features":"","amazon-product-newwindow":"","amazon-product-show-list-price":"","amazon-product-show-used-price":"","amazon-product-show-saved-amt":"","amazon-product-timestamp":"","amazon-product-new-title":"","amazon-product-use-cartURL":"","amazon_featured_post_meta_key":"","_amazon_featured_alt":"","amazon-product-template":"","footnotes":""},"categories":[66,63,62],"tags":[],"class_list":["post-6240","post","type-post","status-publish","format-standard","hentry","category-breaches","category-education","category-research"],"_links":{"self":[{"href":"https:\/\/www.infosecurity.pro\/index.php?rest_route=\/wp\/v2\/posts\/6240","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.infosecurity.pro\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.infosecurity.pro\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.infosecurity.pro\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.infosecurity.pro\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6240"}],"version-history":[{"count":1,"href":"https:\/\/www.infosecurity.pro\/index.php?rest_route=\/wp\/v2\/posts\/6240\/revisions"}],"predecessor-version":[{"id":7979,"href":"https:\/\/www.infosecurity.pro\/index.php?rest_route=\/wp\/v2\/posts\/6240\/revisions\/7979"}],"wp:attachment":[{"href":"https:\/\/www.infosecurity.pro\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6240"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.infosecurity.pro\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6240"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.infosecurity.pro\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6240"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}