{"id":3859,"date":"2017-02-18T13:13:54","date_gmt":"2017-02-18T19:13:54","guid":{"rendered":"https:\/\/neosmart.net\/blog\/?p=3859"},"modified":"2018-01-06T18:53:07","modified_gmt":"2018-01-07T00:53:07","slug":"beware-of-this-new-chrome-font-wasnt-found-hack","status":"publish","type":"post","link":"https:\/\/neosmart.net\/blog\/beware-of-this-new-chrome-font-wasnt-found-hack\/","title":{"rendered":"Beware of this new Chrome &#8220;font wasn&#8217;t found&#8221; hack!"},"content":{"rendered":"<p>Today while browsing a (compromised) WordPress site that shall remain unnamed, I came across a very interesting &#8220;hack&#8221; that was pulled off with a bit more finesse than most of the drive-by-infection attempts. This one relies on using JavaScript to change the text rendering, causing it to resemble mis-encoded text with symbols and rubbish in place of the content, then prompts the user to update &#8220;Chrome&#8217;s language pack&#8221; to fix the problem.<\/p>\n<p><!--more--><\/p>\n<p>Here&#8217;s a screenshot of the initial step of the ploy:<\/p>\n<p><a href=\"http:\/\/neosmart.net\/blog\/wp-content\/uploads\/Chrome-Attack-1-pixelated.png\" rel=\"follow\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3865 size-full colorbox-3859\" src=\"https:\/\/neosmart.net\/blog\/wp-content\/uploads\/Chrome-Attack-1-pixelated.png\" alt=\"Chrome Attack 1 (pixelated).png\" width=\"2714\" height=\"1879\" srcset=\"https:\/\/neosmart.net\/blog\/wp-content\/uploads\/Chrome-Attack-1-pixelated.png 2714w, https:\/\/neosmart.net\/blog\/wp-content\/uploads\/Chrome-Attack-1-pixelated-600x415.png 600w, https:\/\/neosmart.net\/blog\/wp-content\/uploads\/Chrome-Attack-1-pixelated-1024x709.png 1024w, https:\/\/neosmart.net\/blog\/wp-content\/uploads\/Chrome-Attack-1-pixelated-433x300.png 433w\" sizes=\"auto, (max-width: 2714px) 100vw, 2714px\" \/><\/a><\/p>\n<p>And here&#8217;s the prompt up close:<\/p>\n<p><a href=\"http:\/\/neosmart.net\/blog\/wp-content\/uploads\/Zoomed-In.png\" rel=\"follow\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3868 size-full colorbox-3859\" src=\"https:\/\/neosmart.net\/blog\/wp-content\/uploads\/Zoomed-In.png\" alt=\"Zoomed In.png\" width=\"1490\" height=\"424\" srcset=\"https:\/\/neosmart.net\/blog\/wp-content\/uploads\/Zoomed-In.png 1490w, https:\/\/neosmart.net\/blog\/wp-content\/uploads\/Zoomed-In-600x171.png 600w, https:\/\/neosmart.net\/blog\/wp-content\/uploads\/Zoomed-In-1024x291.png 1024w, https:\/\/neosmart.net\/blog\/wp-content\/uploads\/Zoomed-In-500x142.png 500w\" sizes=\"auto, (max-width: 1490px) 100vw, 1490px\" \/><\/a><\/p>\n<p>This attack gets a lot of things right that many others fail at. The premise is actually believable: the text doesn&#8217;t render, and it says that is caused by a missing font (HoeflerText, which is a real font, by the way!), which it then prompts you to download and install.<\/p>\n<p>The usage of a a clean, well-formatted dialog to present the message with the correct Chrome logo &#8211; and, more importantly, &#8211; the correct shade of blue for the update button. The shape of the update button seems correct, and the spelling and grammar are definitely good enough to get a pass.<\/p>\n<p>At the same time, there are some tell-tale signs for the <del>paranoid<\/del> careful.<sup id=\"rf1-3859\"><a href=\"#fn1-3859\" title=\"Remember, it&rsquo;s not paranoia if they&rsquo;re really out to get you.\" rel=\"footnote\">1<\/a><\/sup> My browser string is easily accessible via <code>window.navigator.userAgent<\/code> and exposes the correct version of Chrome (Chrome\/56.0.2924.87), but the dialog has version 53 hard-coded in there.\u00a0Personally, I&#8217;d also have omitted\u00a0the\u00a0\u24cd in the corner, as that&#8217;s the only part that seems out of place in the prompt.<\/p>\n<p>Clicking &#8216;Update&#8217; (merely out of curiosity!) results in a file &#8220;Chrome Font v7.5.1.exe&#8221; to be downloaded, and the webpage morphs to &#8220;helpfully&#8221; encourage the user to run the virus:<\/p>\n<p><a href=\"http:\/\/neosmart.net\/blog\/wp-content\/uploads\/Chrome-Attack-2-pixelated.png\" rel=\"follow\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3885 colorbox-3859\" src=\"https:\/\/neosmart.net\/blog\/wp-content\/uploads\/Chrome-Attack-2-pixelated.png\" alt=\"\" width=\"2714\" height=\"1879\" srcset=\"https:\/\/neosmart.net\/blog\/wp-content\/uploads\/Chrome-Attack-2-pixelated.png 2714w, https:\/\/neosmart.net\/blog\/wp-content\/uploads\/Chrome-Attack-2-pixelated-600x415.png 600w, https:\/\/neosmart.net\/blog\/wp-content\/uploads\/Chrome-Attack-2-pixelated-1024x709.png 1024w, https:\/\/neosmart.net\/blog\/wp-content\/uploads\/Chrome-Attack-2-pixelated-433x300.png 433w\" sizes=\"auto, (max-width: 2714px) 100vw, 2714px\" \/><\/a><\/p>\n<p>At this point, the quality of the social engineering attack takes a nosedive, as do its chances of success. While Chrome does not catch the download as being malicious,<sup id=\"rf2-3859\"><a href=\"#fn2-3859\" title=\"The executable file is apparently not yet in the safe browsing blacklist, a copy of the executable is being sent to the Chrome security team now.\" rel=\"footnote\">2<\/a><\/sup> it is however blocked by the &#8220;this file isn&#8217;t downloaded very often&#8221; warning (which I personally &#8211; speaking as someone lucky enough <em>not<\/em> to be affected by this &#8211;\u00a0despise as it does impose a rather hefty and unfair bar on independent software developers).<\/p>\n<p>The image in the popup dialog contains several discrepancies, but first, here it is blown up:<\/p>\n<p><a href=\"http:\/\/neosmart.net\/blog\/wp-content\/uploads\/Zoomed-In-2.png\" rel=\"follow\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3886 colorbox-3859\" src=\"https:\/\/neosmart.net\/blog\/wp-content\/uploads\/Zoomed-In-2.png\" alt=\"\" width=\"1474\" height=\"832\" srcset=\"https:\/\/neosmart.net\/blog\/wp-content\/uploads\/Zoomed-In-2.png 1474w, https:\/\/neosmart.net\/blog\/wp-content\/uploads\/Zoomed-In-2-600x339.png 600w, https:\/\/neosmart.net\/blog\/wp-content\/uploads\/Zoomed-In-2-1024x578.png 1024w, https:\/\/neosmart.net\/blog\/wp-content\/uploads\/Zoomed-In-2-500x282.png 500w\" sizes=\"auto, (max-width: 1474px) 100vw, 1474px\" \/><\/a><\/p>\n<p>The blurring in the dialog is not from me &#8211; that&#8217;s how it was presented. It shows a UAC prompt to run a\u00a0<em>signed<\/em>\u00a0executable, which the download most certainly is not. The name of the file in the &#8220;help image&#8221; is Chrome_Font.exe, while the downloaded file is called &#8220;Chrome Font v7.5.1.exe&#8221; (which doesn&#8217;t match the so-called &#8220;new version&#8221; from the first popup dialog, but that&#8217;s easily forgivable). It does not reflect the &#8220;not often downloaded&#8221; error that is seen, which makes it highly unlikely that the file can be accessed. Also, the download does not have a file icon, whereas giving it the Chrome icon would have been trivial.<\/p>\n<p>All that aside, the file in question is not caught by Windows Defender or Chrome as being malicious. <a href=\"https:\/\/www.virustotal.com\/en\/file\/7e62a5ca20cfb5da90fe7402f413321c9ede7e230e8b4fa2f1a4e516e8ae8e34\/analysis\/1487439542\/\" rel=\"follow\">An upload to VirusTotal<\/a> reveals it as never-before-seen, with only 9 out of the 59 antivirus scanners in its database correctly identifying the file as malware, and most only via heuristics at that:<\/p>\n<p><a href=\"http:\/\/neosmart.net\/blog\/wp-content\/uploads\/VirusTotal.png\" rel=\"follow\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3887 colorbox-3859\" src=\"https:\/\/neosmart.net\/blog\/wp-content\/uploads\/VirusTotal.png\" alt=\"\" width=\"1723\" height=\"1215\" srcset=\"https:\/\/neosmart.net\/blog\/wp-content\/uploads\/VirusTotal.png 1723w, https:\/\/neosmart.net\/blog\/wp-content\/uploads\/VirusTotal-600x423.png 600w, https:\/\/neosmart.net\/blog\/wp-content\/uploads\/VirusTotal-1024x722.png 1024w, https:\/\/neosmart.net\/blog\/wp-content\/uploads\/VirusTotal-425x300.png 425w\" sizes=\"auto, (max-width: 1723px) 100vw, 1723px\" \/><\/a><\/p>\n<p>Now you know. Be careful and safe browsing!<\/p>\n<hr class=\"footnotes\"><ol class=\"footnotes\"><li id=\"fn1-3859\"><p>Remember, it&#8217;s not paranoia if they&#8217;re really out to get you.&nbsp;<a href=\"#rf1-3859\" class=\"backlink\" title=\"Jump back to footnote 1 in the text.\">&#8617;<\/a><\/p><\/li><li id=\"fn2-3859\"><p>The executable file is apparently not yet in the safe browsing blacklist, a copy of the executable is being sent to the Chrome security team now.&nbsp;<a href=\"#rf2-3859\" class=\"backlink\" title=\"Jump back to footnote 2 in the text.\">&#8617;<\/a><\/p><\/li><\/ol>","protected":false},"excerpt":{"rendered":"<p>Today while browsing a (compromised) WordPress site that shall remain unnamed, I came across a very interesting &#8220;hack&#8221; that was pulled off with a bit more finesse than most of the drive-by-infection attempts. This one relies on using JavaScript to &hellip; <a href=\"https:\/\/neosmart.net\/blog\/beware-of-this-new-chrome-font-wasnt-found-hack\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":505,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":true,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[975,1],"tags":[691,12,484],"class_list":["post-3859","post","type-post","status-publish","format-standard","hentry","category-security","category-software","tag-chrome","tag-security","tag-virus"],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p4xDa-10f","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/posts\/3859","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/users\/505"}],"replies":[{"embeddable":true,"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/comments?post=3859"}],"version-history":[{"count":25,"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/posts\/3859\/revisions"}],"predecessor-version":[{"id":3891,"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/posts\/3859\/revisions\/3891"}],"wp:attachment":[{"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/media?parent=3859"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/categories?post=3859"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/tags?post=3859"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}