{"id":8,"date":"2013-03-13T17:00:50","date_gmt":"2013-03-14T01:00:50","guid":{"rendered":"http:\/\/www.android-decompiler.com\/blog6774\/?p=8"},"modified":"2018-12-19T13:42:47","modified_gmt":"2018-12-19T21:42:47","slug":"korean-sms-interceptor","status":"publish","type":"post","link":"https:\/\/www.pnfsoftware.com\/blog\/korean-sms-interceptor\/","title":{"rendered":"Korean SMS Interceptor"},"content":{"rendered":"<p>Let&#8217;s inaugurate this blog by looking at a fairly simple piece of Android malware, an SMS interceptor app whose prime targets are South Korean users.<\/p>\n<p>The app impersonates a Starbucks coupon (\uc2a4\ud0c0\ubc85\uc2a4 \ucfe0\ud3f0) app.<\/p>\n<p><a href=\"http:\/\/www.android-decompiler.com\/blog\/wp-content\/uploads\/2013\/03\/1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-9\" alt=\"1\" src=\"http:\/\/www.android-decompiler.com\/blog\/wp-content\/uploads\/2013\/03\/1.png\" width=\"796\" height=\"262\" srcset=\"https:\/\/www.pnfsoftware.com\/blog\/wp-content\/uploads\/2013\/03\/1.png 796w, https:\/\/www.pnfsoftware.com\/blog\/wp-content\/uploads\/2013\/03\/1-300x98.png 300w, https:\/\/www.pnfsoftware.com\/blog\/wp-content\/uploads\/2013\/03\/1-624x205.png 624w\" sizes=\"auto, (max-width: 796px) 100vw, 796px\" \/><\/a><\/p>\n<p>Let&#8217;s check the decompiled Java code.<\/p>\n<p>When the user starts the app, it displays a fake error message, indicating that the server is out-of-service, and terminates. In the meantime, it has registered and started the malicious service <strong>com.catchspam.catchservice<\/strong>.<\/p>\n<p><a href=\"http:\/\/www.android-decompiler.com\/blog\/wp-content\/uploads\/2013\/03\/3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-11\" alt=\"3\" src=\"http:\/\/www.android-decompiler.com\/blog\/wp-content\/uploads\/2013\/03\/3.png\" width=\"892\" height=\"412\" srcset=\"https:\/\/www.pnfsoftware.com\/blog\/wp-content\/uploads\/2013\/03\/3.png 892w, https:\/\/www.pnfsoftware.com\/blog\/wp-content\/uploads\/2013\/03\/3-300x138.png 300w, https:\/\/www.pnfsoftware.com\/blog\/wp-content\/uploads\/2013\/03\/3-624x288.png 624w\" sizes=\"auto, (max-width: 892px) 100vw, 892px\" \/><\/a><\/p>\n<p>Notice that a preference variable &#8220;runYN&#8221; is set to &#8220;execute&#8221; (\uc2e4\ud589.) More on it later.<\/p>\n<p>The malicious service does two things:<br \/>\n<span style=\"line-height: 1.714285714; font-size: 1rem;\">&#8211; First, it registers the cellphone number by POST&#8217;ing it to hxxp:\/\/it7980.com\/Android_SMS\/installing.php. (If the number is Korean and starts with the prefix +82, it receives &#8220;special treatment&#8221;.)<\/span><br \/>\n&#8211; Then, it registers a BroadcastReceiver meant to process incoming text messages.<\/p>\n<p><a href=\"http:\/\/www.android-decompiler.com\/blog\/wp-content\/uploads\/2013\/03\/4.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-14\" alt=\"4\" src=\"http:\/\/www.android-decompiler.com\/blog\/wp-content\/uploads\/2013\/03\/4.png\" width=\"790\" height=\"434\" srcset=\"https:\/\/www.pnfsoftware.com\/blog\/wp-content\/uploads\/2013\/03\/4.png 790w, https:\/\/www.pnfsoftware.com\/blog\/wp-content\/uploads\/2013\/03\/4-300x164.png 300w, https:\/\/www.pnfsoftware.com\/blog\/wp-content\/uploads\/2013\/03\/4-624x342.png 624w\" sizes=\"auto, (max-width: 790px) 100vw, 790px\" \/><\/a><\/p>\n<p>The BroadcastReceiver <strong>com.catchspam.catchsms2<\/strong> processes\u00a0<strong>SMS_RECEIVED<\/strong> intents. The last PDU is processed and (supposedly) contains the text message.<\/p>\n<p>In the following screenshot, notice that the author implemented a minimal C&amp;C-like behavior:<br \/>\n&#8211; If the text reads &#8220;execute&#8221;, the <em>runYN<\/em> preference variable will also be set to &#8220;execute&#8221;.<br \/>\n&#8211; If the text matches the &#8220;magic passphrase&#8221;, that variable will be set to &#8220;pause&#8221;. (It roughly translates to: <em>&#8220;Back and forth the same versus luck &#x2665; Lee &#x2665; &#x2665; Please call 1588-1588&#8221;.<\/em>)<br \/>\nLater, <em>runYN<\/em> is checked and the interception procedure will bail if it is not set to &#8220;execute&#8221;. This allows the author to enable\/disable the interception, either globally or for specific phone numbers.<\/p>\n<p><a href=\"http:\/\/www.android-decompiler.com\/blog\/wp-content\/uploads\/2013\/03\/5.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-15\" alt=\"5\" src=\"http:\/\/www.android-decompiler.com\/blog\/wp-content\/uploads\/2013\/03\/5.png\" width=\"948\" height=\"538\" srcset=\"https:\/\/www.pnfsoftware.com\/blog\/wp-content\/uploads\/2013\/03\/5.png 948w, https:\/\/www.pnfsoftware.com\/blog\/wp-content\/uploads\/2013\/03\/5-300x170.png 300w, https:\/\/www.pnfsoftware.com\/blog\/wp-content\/uploads\/2013\/03\/5-624x354.png 624w\" sizes=\"auto, (max-width: 948px) 100vw, 948px\" \/><\/a><\/p>\n<p>The intent broadcast is cancelled to prevent other apps (and eventually, the user) from processing the SMS. Finally, the message is POST&#8217;ed to the author&#8217;s server. The data format is &#8220;mobile=&lt;number&gt;&amp;revsms=&lt;textmessage&gt;&#8221;.<\/p>\n<p><span style=\"line-height: 1.714285714; font-size: 1rem;\">SMS stealers can be simple annoyance or steal personal data. In this case, it might be used to capture 2-factor authentication codes sent by online banking websites.<\/span><\/p>\n<p>Download the sample <a href=\"http:\/\/contagiominidump.blogspot.com\/2013\/02\/sms-trojan-targeting-korean-android.html\">here<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Let&#8217;s inaugurate this blog by looking at a fairly simple piece of Android malware, an SMS interceptor app whose prime targets are South Korean users. The app impersonates a Starbucks coupon (\uc2a4\ud0c0\ubc85\uc2a4 \ucfe0\ud3f0) app. Let&#8217;s check the decompiled Java code. When the user starts the app, it displays a fake error message, indicating that the &hellip; <a href=\"https:\/\/www.pnfsoftware.com\/blog\/korean-sms-interceptor\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Korean SMS Interceptor<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15,3,2],"tags":[],"class_list":["post-8","post","type-post","status-publish","format-standard","hentry","category-android","category-decompilation","category-malware"],"_links":{"self":[{"href":"https:\/\/www.pnfsoftware.com\/blog\/wp-json\/wp\/v2\/posts\/8","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pnfsoftware.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pnfsoftware.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pnfsoftware.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pnfsoftware.com\/blog\/wp-json\/wp\/v2\/comments?post=8"}],"version-history":[{"count":0,"href":"https:\/\/www.pnfsoftware.com\/blog\/wp-json\/wp\/v2\/posts\/8\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.pnfsoftware.com\/blog\/wp-json\/wp\/v2\/media?parent=8"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pnfsoftware.com\/blog\/wp-json\/wp\/v2\/categories?post=8"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pnfsoftware.com\/blog\/wp-json\/wp\/v2\/tags?post=8"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}