{"id":17084,"date":"2019-12-03T11:10:04","date_gmt":"2019-12-03T19:10:04","guid":{"rendered":"http:\/\/www.palada.net\/index.php\/2019\/12\/03\/news-10820\/"},"modified":"2019-12-03T11:10:04","modified_gmt":"2019-12-03T19:10:04","slug":"news-10820","status":"publish","type":"post","link":"http:\/\/www.palada.net\/index.php\/2019\/12\/03\/news-10820\/","title":{"rendered":"New version of IcedID Trojan uses steganographic payloads"},"content":{"rendered":"<p><strong>Credit to Author: Threat Intelligence Team| Date: Tue, 03 Dec 2019 18:06:13 +0000<\/strong><\/p>\n<p><em>This blog post was authored by @hasherezade, with contributions from @siri_urz and J\u00e9r\u00f4me Segura.<\/em><\/p>\n<p>Security firm Proofpoint recently <a rel=\"noreferrer noopener\" aria-label=\"published (opens in a new tab)\" href=\"https:\/\/www.proofpoint.com\/us\/threat-insight\/post\/ta2101-plays-government-imposter-distribute-malware-german-italian-and-us\" target=\"_blank\">published a report<\/a> about a series of malspam campaigns they attribute to a threat actor called TA2101. Originally targeting German and Italian users with Cobalt Strike and Maze ransomware, the later wave of malicious emails were aimed at the US and pushing the IcedID Trojan.<\/p>\n<p>During our analysis of this spam campaign, we noticed changes in how the payload was implemented, in particular with some code rewritten and new obfuscation. For example, the IcedID Trojan is now being delivered via <a rel=\"noreferrer noopener\" aria-label=\"steganography (opens in a new tab)\" href=\"https:\/\/en.wikipedia.org\/wiki\/Steganography\" target=\"_blank\">steganography<\/a>, as the data is encrypted and encoded with the content of a valid PNG image. According to our research, those changes were introduced <a rel=\"noreferrer noopener\" aria-label=\"in September 2019 (opens in a new tab)\" href=\"http:\/\/www.malware-traffic-analysis.net\/2019\/09\/16\/index2.html\" target=\"_blank\">in September 2019<\/a> (while <a rel=\"noreferrer noopener\" aria-label=\"in August 2019 (opens in a new tab)\" href=\"https:\/\/www.malware-traffic-analysis.net\/2019\/08\/12\/index.html\" target=\"_blank\">in August 2019<\/a> the old loader was still in use).<\/p>\n<p>The main IcedID module is stored without the typical PE header and is run by a dedicated loader that uses a custom headers structure. Our security analyst @hasherezade previously described this technique in a talk at the SAS conference (<a rel=\"noreferrer noopener\" aria-label=\"Funky Malware Formats (opens in a new tab)\" href=\"https:\/\/speakerdeck.com\/hshrzd\/funky-malware-formats\" target=\"_blank\">Funky Malware Formats<\/a>). <\/p>\n<p>In this blog post, we take a closer look at these new payloads and describe their technical details.<\/p>\n<h3>Distribution<\/h3>\n<p>Our spam honeypot collected a large number of malicious emails containing the &#8220;USPS Delivery Unsuccessful Attempt Notification&#8221; subject line.<\/p>\n<figure class=\"wp-block-image\"><a href=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/email_headers.png\" data-rel=\"lightbox-0\" title=\"\"><img decoding=\"async\" data-attachment-id=\"41356\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/email_headers\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/email_headers.png\" data-orig-size=\"1014,345\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"email_headers\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/email_headers-300x102.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/email_headers-600x204.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/email_headers.png\" alt=\"\" class=\"wp-image-41356\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/email_headers.png 1014w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/email_headers-300x102.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/email_headers-600x204.png 600w\" sizes=\"(max-width: 1014px) 100vw, 1014px\" \/><\/a><\/figure>\n<p>Each of these emails contains a Microsoft Word document as attachment allegedly coming from the United States Postal Service. The content of the document is designed to lure the victim into enabling macros by insinuating that the content had been encoded.<\/p>\n<figure class=\"wp-block-image\"><a href=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/phish.png\" data-rel=\"lightbox-1\" title=\"\"><img decoding=\"async\" data-attachment-id=\"41032\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/phish-10\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/phish.png\" data-orig-size=\"1035,890\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"phish\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/phish-300x258.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/phish-600x516.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/phish-600x516.png\" alt=\"\" class=\"wp-image-41032\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/phish-600x516.png 600w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/phish-300x258.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/phish.png 1035w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><\/figure>\n<p>Having a look at the embedded macros, we can see the following elements:<\/p>\n<figure class=\"wp-block-image\"><a href=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/macros1.png\" data-rel=\"lightbox-2\" title=\"\"><img decoding=\"async\" data-attachment-id=\"41033\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/macros1\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/macros1.png\" data-orig-size=\"1200,744\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"macros1\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/macros1-300x186.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/macros1-600x372.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/macros1-600x372.png\" alt=\"\" class=\"wp-image-41033\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/macros1-600x372.png 600w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/macros1-300x186.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/macros1.png 1200w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><\/figure>\n<p>There is a fake error message displayed to the victim, but more importantly, the IcedID Trojan authors have hidden the malicious instructions within a UserForm as labels.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"41034\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/macro_data\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/macro_data.png\" data-orig-size=\"423,417\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"macro_data\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/macro_data-300x296.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/macro_data.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/macro_data.png\" alt=\"\" class=\"wp-image-41034\" width=\"423\" height=\"417\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/macro_data.png 423w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/macro_data-300x296.png 300w\" sizes=\"auto, (max-width: 423px) 100vw, 423px\" \/><figcaption>The labels containing numerical ASCII values <\/figcaption><\/figure>\n<\/div>\n<p>The macro grabs the text from the labels, converts it, and uses during execution:<\/p>\n<pre class=\"wp-block-preformatted\">url1 = Dcr(GH1.Label1.Caption)<br \/>path1 = Dcr(GH1.Label2.Caption)<\/pre>\n<p>For example: <\/p>\n<p><em>104 116 116 112 58 47 47 49 48 52 46 49 54 56 46 49 57 56 46 50 51 48 47 119 111 114 100 117 112 100 46 116 109 112<\/em><br \/>converts to:&nbsp;http:\/\/104.168.198.230\/wordupd.tmp<\/p>\n<pre class=\"wp-block-preformatted\"><em>67,58,92,87,105,110,100,111,119,115,92,84,101,109,112,92,101,114,101,100,46,116,109,112<\/em><br \/>converts to: C:WindowsTempered.tmp<\/pre>\n<p>The file wordupd.tmp is an executable downloaded with the help of the URLDownloadToFileA function, saved to the given path and run. Moving on, we will take a closer look at the functionality and implementation of the downloaded sample.<\/p>\n<h3>Behavioral analysis<\/h3>\n<p>As it had before, IcedID has been observed making an injection into <em>svchost<\/em>, and running under its cover. Depending on the configuration, it may or may not download other executables, including <a rel=\"noreferrer noopener\" aria-label=\"TrickBot (opens in a new tab)\" href=\"https:\/\/blog.malwarebytes.com\/trojans\/2019\/09\/trickbot-adds-new-trick-to-its-arsenal-tampering-with-trusted-texts\/\" target=\"_blank\">TrickBot<\/a>.<\/p>\n<h4>Dropped files<\/h4>\n<p>The malware drops various files on the disk. For example, in %APPDATA%, it saves the steganographically obfuscated payload (<em>photo.png<\/em>) and an update of the downloader:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41265\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/drops\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/drops.png\" data-orig-size=\"385,225\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"drops\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/drops-300x175.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/drops.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/drops.png\" alt=\"\" class=\"wp-image-41265\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/drops.png 385w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/drops-300x175.png 300w\" sizes=\"(max-width: 385px) 100vw, 385px\" \/><\/figure>\n<p>It also creates a new folder with a random name, where it saves a downloaded configuration in encrypted form:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41266\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/configs-2\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/configs.png\" data-orig-size=\"444,145\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"configs\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/configs-300x98.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/configs.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/configs.png\" alt=\"\" class=\"wp-image-41266\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/configs.png 444w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/configs-300x98.png 300w\" sizes=\"(max-width: 444px) 100vw, 444px\" \/><\/figure>\n<p>Inside the %TEMP% folder, it drops some non-malicious helper elements: <em>sqlite32.dll<\/em> (that will be used for reading SQLite browser databases found in web browsers), and a certificate that will be used for intercepting traffic:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41264\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/temp_dropped\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/temp_dropped.png\" data-orig-size=\"543,146\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"temp_dropped\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/temp_dropped-300x81.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/temp_dropped.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/temp_dropped.png\" alt=\"\" class=\"wp-image-41264\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/temp_dropped.png 543w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/temp_dropped-300x81.png 300w\" sizes=\"(max-width: 543px) 100vw, 543px\" \/><\/figure>\n<p>Looking at the certificate, we can see that it was signed by VeriSign:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41267\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/fakecert_tmp\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/fakecert_tmp.png\" data-orig-size=\"628,567\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"fakecert_tmp\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/fakecert_tmp-300x271.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/fakecert_tmp-600x542.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/fakecert_tmp-600x542.png\" alt=\"\" class=\"wp-image-41267\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/fakecert_tmp-600x542.png 600w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/fakecert_tmp-300x271.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/fakecert_tmp.png 628w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/figure>\n<h4>Persistence<\/h4>\n<p>The application achieves persistence with the help of a scheduled task:<\/p>\n<figure class=\"wp-block-image\"><a href=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/scheduled_task.png\" data-rel=\"lightbox-3\" title=\"\"><img decoding=\"async\" data-attachment-id=\"41288\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/scheduled_task\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/scheduled_task.png\" data-orig-size=\"806,210\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"scheduled_task\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/scheduled_task-300x78.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/scheduled_task-600x156.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/scheduled_task.png\" alt=\"\" class=\"wp-image-41288\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/scheduled_task.png 806w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/scheduled_task-300x78.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/scheduled_task-600x156.png 600w\" sizes=\"(max-width: 806px) 100vw, 806px\" \/><\/a><\/figure>\n<p>The task has two triggers: at the user login and at the scheduled hour.<\/p>\n<h4 id=\"mce_31\">Overview of the traffic<\/h4>\n<p>Most of the traffic is SSL encrypted. We can also see the use of websockets and addresses in a format such as &#8220;<em>data2php?&lt;key&gt;<\/em>&#8220;,  &#8220;<em>data3.php?&lt;key&gt;<\/em>&#8220;.<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"40999\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/ice_id_beacon\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/ice_id_beacon.png\" data-orig-size=\"498,290\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"ice_id_beacon\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/ice_id_beacon-300x175.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/ice_id_beacon.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/ice_id_beacon.png\" alt=\"\" class=\"wp-image-40999\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/ice_id_beacon.png 498w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/ice_id_beacon-300x175.png 300w\" sizes=\"(max-width: 498px) 100vw, 498px\" \/><\/figure>\n<figure class=\"wp-block-image\"><a href=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/websocket_comm2.png\" data-rel=\"lightbox-4\" title=\"\"><img decoding=\"async\" data-attachment-id=\"41263\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/websocket_comm2\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/websocket_comm2.png\" data-orig-size=\"1060,323\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"websocket_comm2\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/websocket_comm2-300x91.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/websocket_comm2-600x183.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/websocket_comm2.png\" alt=\"\" class=\"wp-image-41263\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/websocket_comm2.png 1060w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/websocket_comm2-300x91.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/websocket_comm2-600x183.png 600w\" sizes=\"(max-width: 1060px) 100vw, 1060px\" \/><\/a><\/figure>\n<h4>Attacking browsers<\/h4>\n<p>The IcedID Trojan is known as a banking Trojan, and indeed, one of its important features is the ability to steal data related to banking transactions. For this purpose, it injects its implants into browsers, hooks the API, and performs a <a rel=\"noreferrer noopener\" aria-label=\"Man-In-The-Browser attack (opens in a new tab)\" href=\"https:\/\/en.wikipedia.org\/wiki\/Man-in-the-browser\" target=\"_blank\">Man-In-The-Browser attack<\/a>.<\/p>\n<p>Inside the memory of the infected <em>svchost<\/em> process we can see the strings with the configuration for webinjects. Webinjects are modular (typically HTML and JavaScript code injected into a web page for the purpose of stealing data).<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41262\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/injects_overview\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/injects_overview.png\" data-orig-size=\"773,468\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"injects_overview\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/injects_overview-300x182.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/injects_overview-600x363.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/injects_overview.png\" alt=\"\" class=\"wp-image-41262\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/injects_overview.png 773w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/injects_overview-300x182.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/injects_overview-600x363.png 600w\" sizes=\"(max-width: 773px) 100vw, 773px\" \/><figcaption>Webinjects configuration in the memory of infected svchost<\/figcaption><\/figure>\n<p>The core bot that runs inside the memory of <em>svchost<\/em> observes processes running on the system, and injects more implants into browsers. For example, looking at Mozilla Firefox:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41270\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/firefox_implant\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/firefox_implant.png\" data-orig-size=\"587,245\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"firefox_implant\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/firefox_implant-300x125.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/firefox_implant.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/firefox_implant.png\" alt=\"\" class=\"wp-image-41270\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/firefox_implant.png 587w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/firefox_implant-300x125.png 300w\" sizes=\"(max-width: 587px) 100vw, 587px\" \/><figcaption>The IcedID implant in the browser&#8217;s memory<\/figcaption><\/figure>\n<p>By scanning the process with <a rel=\"noreferrer noopener\" aria-label=\"PE-sieve (opens in a new tab)\" href=\"https:\/\/github.com\/hasherezade\/pe-sieve\" target=\"_blank\">PE-sieve<\/a>, we can detect that some of the DLLs inside the browser have been hooked and their execution was redirected to the malicious module.<\/p>\n<p>In Firefox, the following hooks have been installed:<\/p>\n<ul>\n<li> nss3.dll : SSL_AuthCertificateHook-&gt;2c2202[2c1000+1202]<\/li>\n<li>ws2_32.dll : connect-&gt;2c2728[2c1000+1728]<\/li>\n<\/ul>\n<p>A different set was observed in Internet Explorer:<\/p>\n<ul>\n<li> mswsock : hook_0[7852]-&gt;525d0[<em>implant_code<\/em>+15d0]<\/li>\n<li>ws2_32.dll : connect-&gt;152728[<em>implant_code<\/em>+1728]<\/li>\n<\/ul>\n<p>The IcedID module running inside the browser&#8217;s memory is responsible for applying the webinjects installing malicious JavaScripts into attacked pages.<\/p>\n<figure class=\"wp-block-image\"><a href=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/implant_fragment.png\" data-rel=\"lightbox-5\" title=\"\"><img decoding=\"async\" data-attachment-id=\"41273\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/implant_fragment\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/implant_fragment.png\" data-orig-size=\"1248,117\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"implant_fragment\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/implant_fragment-300x28.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/implant_fragment-600x56.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/implant_fragment.png\" alt=\"\" class=\"wp-image-41273\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/implant_fragment.png 1248w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/implant_fragment-300x28.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/implant_fragment-600x56.png 600w\" sizes=\"(max-width: 1248px) 100vw, 1248px\" \/><\/a><figcaption>Fragment of the injected script<\/figcaption><\/figure>\n<p>The content of the inlined webinject script is available here: <a href=\"https:\/\/gist.github.com\/malwarezone\/830f4a0e4506d35e376a288b20d21433#file-inject-js\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"inject.js (opens in a new tab)\">inject.js<\/a>.<\/p>\n<p>It also communicates with the main bot that is inside the <em>svchost<\/em> process. The main bot coordinates the work of all the injected components, and sends the stolen data to the Command and Control server (CnC).<\/p>\n<p>Due to the fact that the communication is protected by HTTPS, the malware must also install its own certificate. For example, this is the valid certificate for the Bank of America website:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41271\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/legit_cert\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/legit_cert.png\" data-orig-size=\"639,591\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"legit_cert\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/legit_cert-300x277.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/legit_cert-600x555.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/legit_cert.png\" alt=\"\" class=\"wp-image-41271\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/legit_cert.png 639w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/legit_cert-300x277.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/legit_cert-600x555.png 600w\" sizes=\"(max-width: 639px) 100vw, 639px\" \/><\/figure>\n<p>And in contrast, the certificate used by the browser infected by IcedID:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41272\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/fake_cert-2\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/fake_cert-1.png\" data-orig-size=\"641,531\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"fake_cert\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/fake_cert-1-300x249.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/fake_cert-1-600x497.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/fake_cert-1.png\" alt=\"\" class=\"wp-image-41272\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/fake_cert-1.png 641w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/fake_cert-1-300x249.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/fake_cert-1-600x497.png 600w\" sizes=\"(max-width: 641px) 100vw, 641px\" \/><\/figure>\n<h3>Overview of the changes<\/h3>\n<p>As we mentioned, the core IcedID bot, as well as the dedicated loader, went through some refactoring. In this comparative analysis, we used the following old sample: <a rel=\"noreferrer noopener\" aria-label=\"b8113a604e6c190bbd8b687fd2ba7386d4d98234f5138a71bcf15f0a3c812e91 (opens in a new tab)\" href=\"https:\/\/www.virustotal.com\/gui\/file\/b8113a604e6c190bbd8b687fd2ba7386d4d98234f5138a71bcf15f0a3c812e91\/detection\" target=\"_blank\">b8113a604e6c190bbd8b687fd2ba7386d4d98234f5138a71bcf15f0a3c812e91<\/a><\/p>\n<p>The detailed analysis of this payload can be found here: [<a rel=\"noreferrer noopener\" href=\"https:\/\/www.fortinet.com\/blog\/threat-research\/icedid-malware-analysis-part-one.html\" target=\"_blank\">1<\/a>][<a rel=\"noreferrer noopener\" href=\"https:\/\/www.fortinet.com\/blog\/threat-research\/icedid-malware-analysis-part-two.html\" target=\"_blank\">2<\/a>][<a rel=\"noreferrer noopener\" href=\"https:\/\/www.fortinet.com\/blog\/threat-research\/deep-dive-icedid-malware-analysis-of-child-processes.html\" target=\"_blank\">3<\/a>].<\/p>\n<h4 id=\"mce_32\">The old loader vs. new<\/h4>\n<p>The loader of the previous version of the IcedID Trojan was described in detail <a rel=\"noreferrer noopener\" aria-label=\"here (opens in a new tab)\" href=\"https:\/\/medium.com\/@dawid.golak\/icedid-aka-bokbot-analysis-with-ghidra-560e3eccb766\" target=\"_blank\">here<\/a>, and <a rel=\"noreferrer noopener\" aria-label=\"here (opens in a new tab)\" href=\"https:\/\/www.fortinet.com\/blog\/threat-research\/icedid-malware-analysis-part-one.html\" target=\"_blank\">here<\/a>. It was a packed PE file that used to load and inject a headerless PE.<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41359\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/ice_old\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/ice_old.png\" data-orig-size=\"392,176\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"ice_old\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/ice_old-300x135.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/ice_old.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/ice_old.png\" alt=\"\" class=\"wp-image-41359\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/ice_old.png 392w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/ice_old-300x135.png 300w\" sizes=\"(max-width: 392px) 100vw, 392px\" \/><\/figure>\n<p> The main module was injected into <em>svchost<\/em>:<\/p>\n<figure class=\"wp-block-image\"><a href=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/injected_old_iceid.png\" data-rel=\"lightbox-6\" title=\"\"><img decoding=\"async\" data-attachment-id=\"41011\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/injected_old_iceid\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/injected_old_iceid.png\" data-orig-size=\"636,246\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"injected_old_iceid\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/injected_old_iceid-300x116.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/injected_old_iceid-600x232.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/injected_old_iceid.png\" alt=\"\" class=\"wp-image-41011\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/injected_old_iceid.png 636w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/injected_old_iceid-300x116.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/injected_old_iceid-600x232.png 600w\" sizes=\"(max-width: 636px) 100vw, 636px\" \/><\/a><figcaption>The implants in the svchost&#8217;s memory<\/figcaption><\/figure>\n<p>The implanted PE was divided into two sections, and the first memory page (representing the header) was empty. This type of payload is more stealthy than a full PE injection (as is more common). However, it was possible to reconstruct the header and analyze the sample like a normal PE. (An example of the reconstructed payload is available here: <a rel=\"noreferrer noopener\" aria-label=\"395d2d250b296fe3c7c5b681e5bb05548402a7eb914f9f7fcdccb741ad8ddfea (opens in a new tab)\" href=\"https:\/\/www.virustotal.com\/gui\/file\/395d2d250b296fe3c7c5b681e5bb05548402a7eb914f9f7fcdccb741ad8ddfea\/detection\" target=\"_blank\">395d2d250b296fe3c7c5b681e5bb05548402a7eb914f9f7fcdccb741ad8ddfea<\/a>). <\/p>\n<p>The redirection to the implant was implemented by hooking the <em>RtlExitUserProcess<\/em> function within svchost&#8217;s NTDLL. <\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41012\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/injection_old\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/injection_old.png\" data-orig-size=\"336,514\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"injection_old\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/injection_old-196x300.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/injection_old.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/injection_old.png\" alt=\"\" class=\"wp-image-41012\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/injection_old.png 336w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/injection_old-196x300.png 196w\" sizes=\"(max-width: 336px) 100vw, 336px\" \/><\/figure>\n<p>When <em>svchost<\/em> tried to terminate, it instead triggered a jump into the injected PE&#8217;s entry point.<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41013\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/hooked_ntdll\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/hooked_ntdll.png\" data-orig-size=\"408,86\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"hooked_ntdll\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/hooked_ntdll-300x63.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/hooked_ntdll.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/hooked_ntdll.png\" alt=\"\" class=\"wp-image-41013\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/hooked_ntdll.png 408w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/hooked_ntdll-300x63.png 300w\" sizes=\"(max-width: 408px) 100vw, 408px\" \/><figcaption>The hooked RtlExitUserProcess redirects to payload&#8217;s EP<\/figcaption><\/figure>\n<p>The loader was also filling the pointer to the data page within the payload. We can see this pointer being loaded at the beginning of the payload&#8217;s execution:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41010\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/payloads_entry_point\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/payloads_entry_point.png\" data-orig-size=\"553,485\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"payloads_entry_point\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/payloads_entry_point-300x263.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/payloads_entry_point.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/payloads_entry_point.png\" alt=\"\" class=\"wp-image-41010\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/payloads_entry_point.png 553w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/payloads_entry_point-300x263.png 300w\" sizes=\"(max-width: 553px) 100vw, 553px\" \/><\/figure>\n<p>In the new implementation, there is one more intermediate loader element implemented as shellcode. The diagram below shows the new loading chain:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41380\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/ice_new_ldr-3\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/ice_new_ldr-2.png\" data-orig-size=\"675,294\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"ice_new_ldr\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/ice_new_ldr-2-300x131.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/ice_new_ldr-2-600x261.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/ice_new_ldr-2.png\" alt=\"\" class=\"wp-image-41380\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/ice_new_ldr-2.png 675w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/ice_new_ldr-2-300x131.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/ice_new_ldr-2-600x261.png 600w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/ice_new_ldr-2-195x85.png 195w\" sizes=\"(max-width: 675px) 100vw, 675px\" \/><\/figure>\n<p>The shellcode has similar functionality that was previously implemented by the loader in form of a PE. First it injects itself into <em>svchost.<\/em><\/p>\n<figure class=\"wp-block-image\"><a href=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/svchost_implant_new.png\" data-rel=\"lightbox-7\" title=\"\"><img decoding=\"async\" data-attachment-id=\"41016\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/svchost_implant_new\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/svchost_implant_new.png\" data-orig-size=\"736,514\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"svchost_implant_new\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/svchost_implant_new-300x210.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/svchost_implant_new-600x419.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/svchost_implant_new.png\" alt=\"\" class=\"wp-image-41016\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/svchost_implant_new.png 736w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/svchost_implant_new-300x210.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/svchost_implant_new-600x419.png 600w\" sizes=\"(max-width: 736px) 100vw, 736px\" \/><\/a><\/figure>\n<p>Then it decompresses and injects the payload, which as before is a headerless PE (analogical to the one described <a rel=\"noreferrer noopener\" href=\"https:\/\/www.fortinet.com\/blog\/threat-research\/deep-dive-icedid-malware-analysis-of-child-processes.html\" target=\"_blank\">here<\/a>).<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41048\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/implant_2-2\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/implant_2-1.png\" data-orig-size=\"631,265\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"implant_2\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/implant_2-1-300x126.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/implant_2-1-600x252.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/implant_2-1-600x252.png\" alt=\"\" class=\"wp-image-41048\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/implant_2-1-600x252.png 600w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/implant_2-1-300x126.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/implant_2-1-630x265.png 630w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/implant_2-1.png 631w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/figure>\n<h4 id=\"mce_32\">Comparing the core<\/h4>\n<p>The implementation of the core bot is modified. Yet, inside the code we can find some strings known from the previous sample, as well as a similar set of imported API functions. We can also see some matching strings and fragments of implemented logic.<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41050\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/check_clear_empty_old\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/check_clear_empty_old.png\" data-orig-size=\"736,541\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"check_clear_empty_old\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/check_clear_empty_old-300x221.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/check_clear_empty_old-600x441.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/check_clear_empty_old-600x441.png\" alt=\"\" class=\"wp-image-41050\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/check_clear_empty_old-600x441.png 600w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/check_clear_empty_old-300x221.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/check_clear_empty_old.png 736w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><figcaption>Fragment of the code from the old implementation<\/figcaption><\/figure>\n<p>Analogical fragment from the new sample:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41051\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/check_clear_empty_new\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/check_clear_empty_new.png\" data-orig-size=\"706,383\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"check_clear_empty_new\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/check_clear_empty_new-300x163.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/check_clear_empty_new-600x325.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/check_clear_empty_new-600x325.png\" alt=\"\" class=\"wp-image-41051\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/check_clear_empty_new-600x325.png 600w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/check_clear_empty_new-300x163.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/check_clear_empty_new.png 706w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><figcaption>Fragment of the code from the new implementation<\/figcaption><\/figure>\n<p>Comparing both reconstructed samples with the help of BinDiff shows that there are quite a few differences and rewritten parts. Yet, there are parts of code that are the same in both, which proves that the codebase remained the same.<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41068\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/similar-2\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/similar.png\" data-orig-size=\"882,352\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"similar\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/similar-300x120.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/similar-600x239.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/similar-600x239.png\" alt=\"\" class=\"wp-image-41068\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/similar-600x239.png 600w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/similar-300x120.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/similar.png 882w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><figcaption>Preview of the similar functions<\/figcaption><\/figure>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41069\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/rewritten\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/rewritten.png\" data-orig-size=\"779,314\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"rewritten\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/rewritten-300x121.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/rewritten-600x242.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/rewritten-600x242.png\" alt=\"\" class=\"wp-image-41069\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/rewritten-600x242.png 600w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/rewritten-300x121.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/rewritten.png 779w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><figcaption>Preview of different\/rewritten functions<\/figcaption><\/figure>\n<p>Let&#8217;s follow the execution flow of all the elements from the new IcedID package.<\/p>\n<h3>The downloader<\/h3>\n<p>In the current delivery model, the first element of IcedID is a downloader. It is a PE file, packed by a crypter. The packing layer changes from sample to sample, so we will omit its description. After unpacking it, we get the plain version: <a rel=\"noreferrer noopener\" href=\"https:\/\/www.virustotal.com\/gui\/file\/5cac188fce6c235ae926c48bde0130036ce8860c864d6ae8e2dd1bd9fd2613e0\/details\" target=\"_blank\">fbacdb66748e6ccb971a0a9611b065ac<\/a>.<\/p>\n<p>Internally, this executable is simple and no further obfuscated. We can see that it first queries the CnC trying to fetch the second stage, requesting for a <em>photo.png<\/em>. It passes a generated ID to the URL. Example:<\/p>\n<p>\/photo.png?id=0198d464fe3e7f09ab0005000000fa00000000<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41154\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/photo_link_code\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/photo_link_code.png\" data-orig-size=\"535,240\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"photo_link_code\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/photo_link_code-300x135.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/photo_link_code.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/photo_link_code.png\" alt=\"\" class=\"wp-image-41154\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/photo_link_code.png 535w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/photo_link_code-300x135.png 300w\" sizes=\"(max-width: 535px) 100vw, 535px\" \/><figcaption>Fragment of the function responsible for generating the image URL<\/figcaption><\/figure>\n<p>The downloader fetches the PNG with the encoded payload. The downloader loads the file, decodes it, and redirects the execution there. Below we can see the responsible function:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41151\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/downloader_high_level\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/downloader_high_level.png\" data-orig-size=\"721,464\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"downloader_high_level\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/downloader_high_level-300x193.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/downloader_high_level-600x386.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/downloader_high_level.png\" alt=\"\" class=\"wp-image-41151\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/downloader_high_level.png 721w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/downloader_high_level-300x193.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/downloader_high_level-600x386.png 600w\" sizes=\"(max-width: 721px) 100vw, 721px\" \/><\/figure>\n<p>Once the PNG is downloaded, it will be saved on disk and can be loaded again at system restart. The downloader will turn into a runner of this obfuscated format. In this way, the core executable is revealed only in  memory and never stored on disk as an EXE file.<\/p>\n<p>The &#8220;<em>photo.png<\/em>&#8221; looks like a valid graphic file:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41014\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/payload_png\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/payload_png.png\" data-orig-size=\"880,406\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"payload_png\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/payload_png-300x138.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/payload_png-600x277.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/payload_png.png\" alt=\"\" class=\"wp-image-41014\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/payload_png.png 880w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/payload_png-300x138.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/payload_png-600x277.png 600w\" sizes=\"(max-width: 880px) 100vw, 880px\" \/><figcaption>Preview of the &#8220;photo.png&#8221;<\/figcaption><\/figure>\n<p>In this fragment of code, we can see that the data from the PNG (section starting from the tag &#8220;IDAT&#8221;) is first decoded to raw bytes, and then those bytes are passed to the further decoding function.<\/p>\n<figure class=\"wp-block-image\"><a href=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/fetch_data_decode.png\" data-rel=\"lightbox-8\" title=\"\"><img decoding=\"async\" data-attachment-id=\"41152\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/fetch_data_decode\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/fetch_data_decode.png\" data-orig-size=\"1089,528\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"fetch_data_decode\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/fetch_data_decode-300x145.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/fetch_data_decode-600x291.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/fetch_data_decode.png\" alt=\"\" class=\"wp-image-41152\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/fetch_data_decode.png 1089w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/fetch_data_decode-300x145.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/fetch_data_decode-600x291.png 600w\" sizes=\"(max-width: 1089px) 100vw, 1089px\" \/><\/a><\/figure>\n<p>The algorithm used for decoding the bytes:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41153\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/decoding_algo-2\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decoding_algo.png\" data-orig-size=\"459,315\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"decoding_algo\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decoding_algo-300x206.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decoding_algo.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decoding_algo.png\" alt=\"\" class=\"wp-image-41153\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decoding_algo.png 459w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decoding_algo-300x206.png 300w\" sizes=\"(max-width: 459px) 100vw, 459px\" \/><\/figure>\n<p>The PNG is decrypted and injected into the downloader. In this case, the decoded content turns out to be a shellcode module rather than a PE.<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41156\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/call_shellcode_ep-2\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/call_shellcode_ep-1.png\" data-orig-size=\"564,222\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"call_shellcode_ep\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/call_shellcode_ep-1-300x118.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/call_shellcode_ep-1.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/call_shellcode_ep-1.png\" alt=\"\" class=\"wp-image-41156\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/call_shellcode_ep-1.png 564w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/call_shellcode_ep-1-300x118.png 300w\" sizes=\"(max-width: 564px) 100vw, 564px\" \/><figcaption>The downloader redirecting the execution into the shellcode&#8217;s entry point<\/figcaption><\/figure>\n<p>The loader passes to the shellcode one argument; that is the base at which it was loaded.<\/p>\n<h3>The loader (shellcode)<\/h3>\n<p>As mentioned before, this stage is implemented as a position-independent code (shellcode). The dumped sample is available here: <a rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\" href=\"https:\/\/www.virustotal.com\/gui\/file\/05274e8c704b03ae90458b3456ac392cff6cd271ea0c2cdbf26368c78782ec45\/details\" target=\"_blank\">624afab07528375d8146653857fbf90d<\/a>.<\/p>\n<p>This shellcode-based loader replaced the previously described (sources: [<a rel=\"noreferrer noopener\" aria-label=\"1 (opens in a new tab)\" href=\"https:\/\/www.fortinet.com\/blog\/threat-research\/icedid-malware-analysis-part-one.html\" target=\"_blank\">1<\/a>][<a rel=\"noreferrer noopener\" aria-label=\"2 (opens in a new tab)\" href=\"https:\/\/medium.com\/@dawid.golak\/icedid-aka-bokbot-analysis-with-ghidra-560e3eccb766\" target=\"_blank\">2<\/a>]) loader element that was implemented as a PE file. First, it runs within the downloader:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"40996\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/enter_in_shellcode\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/enter_in_shellcode.png\" data-orig-size=\"478,293\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"enter_in_shellcode\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/enter_in_shellcode-300x184.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/enter_in_shellcode.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/enter_in_shellcode.png\" alt=\"\" class=\"wp-image-40996\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/enter_in_shellcode.png 478w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/enter_in_shellcode-300x184.png 300w\" sizes=\"(max-width: 478px) 100vw, 478px\" \/><\/figure>\n<p>As we can see from the downloader&#8217;s code, the shellcode entry point must first be fetched from a simple header that is at the beginning of the decoded module. We see that this header stores more information that is essential for loading the next element:<\/p>\n<figure class=\"wp-block-image\"><a href=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/shc_hdr-1.png\" data-rel=\"lightbox-9\" title=\"\"><img decoding=\"async\" data-attachment-id=\"41232\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/shc_hdr-2\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/shc_hdr-1.png\" data-orig-size=\"778,223\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"shc_hdr\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/shc_hdr-1-300x86.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/shc_hdr-1-600x172.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/shc_hdr-1.png\" alt=\"\" class=\"wp-image-41232\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/shc_hdr-1.png 778w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/shc_hdr-1-300x86.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/shc_hdr-1-600x172.png 600w\" sizes=\"(max-width: 778px) 100vw, 778px\" \/><\/a><\/figure>\n<p>As this module is no longer a PE file, its analysis is more difficult. All the APIs used by the shellcode are resolved dynamically:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41001\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/obfuscated_calls-2\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/obfuscated_calls-1.png\" data-orig-size=\"507,376\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"obfuscated_calls\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/obfuscated_calls-1-300x222.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/obfuscated_calls-1.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/obfuscated_calls-1.png\" alt=\"\" class=\"wp-image-41001\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/obfuscated_calls-1.png 507w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/obfuscated_calls-1-300x222.png 300w\" sizes=\"(max-width: 507px) 100vw, 507px\" \/><\/figure>\n<p>The strings are composed on the stack:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41002\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/stack_string\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/stack_string.png\" data-orig-size=\"520,269\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"stack_string\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/stack_string-300x155.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/stack_string.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/stack_string.png\" alt=\"\" class=\"wp-image-41002\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/stack_string.png 520w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/stack_string-300x155.png 300w\" sizes=\"(max-width: 520px) 100vw, 520px\" \/><\/figure>\n<p>To make the deobfuscation easier, we can follow the obfuscated flow with the help of a PIN tracer. The log from the tracing of this stage shows APIs indicating code injection, along with their offsets:<\/p>\n<p><code>09c;shellcode's Entry Point<br \/> 69b;ntdll.LdrLoadDll<br \/> 717;ntdll.LdrGetProcedureAddress<br \/> 7ab;ntdll.RtlWow64EnableFsRedirectionEx<br \/> 7cb;kernel32.CreateProcessA<br \/> 7d6;ntdll.RtlWow64EnableFsRedirectionEx<br \/> 7f0;ntdll.NtQuerySystemInformation<br \/> 8aa;ntdll.NtAllocateVirtualMemory<br \/> 8c6;ntdll.ZwWriteVirtualMemory<br \/> 8ee;ntdll.NtProtectVirtualMemory<br \/> 907;ntdll.NtQueueApcThread<br \/> 916;ntdll.ZwResumeThread<\/code><\/p>\n<p>Indeed, the shellcode injects its own copy, passing its entry point to the APC Queue. This time, some additional parameters are added as a thread context.<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41015\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/set_injected\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/set_injected.png\" data-orig-size=\"438,205\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"set_injected\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/set_injected-300x140.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/set_injected.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/set_injected.png\" alt=\"\" class=\"wp-image-41015\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/set_injected.png 438w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/set_injected-300x140.png 300w\" sizes=\"(max-width: 438px) 100vw, 438px\" \/><figcaption>Setting parameters of the injected thread<\/figcaption><\/figure>\n<p>Once the shellcode is executed from inside <em>svchost<\/em>, an alternative path to the execution is taken. It becomes a loader for the core bot. The core element is stored in a compressed form within the shellcode&#8217;s body. First, it is decompressed. <\/p>\n<p>From previous experiments, we know that the payload follows the typical structure of a PE file, yet it has no headers. Often, malware authors erase headers in memory once the payload is loaded. Yet, this is not the case. In order to make the payload stealthier, the authors didn&#8217;t store the original headers of this PE at all. Instead, they created their own minimalist header that is used by the internal loader. <\/p>\n<p>First, the shellcode finds the next module by parsing its own header:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41157\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/alloc_for_pe\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/alloc_for_pe.png\" data-orig-size=\"656,551\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"alloc_for_pe\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/alloc_for_pe-300x252.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/alloc_for_pe-600x504.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/alloc_for_pe.png\" alt=\"\" class=\"wp-image-41157\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/alloc_for_pe.png 656w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/alloc_for_pe-300x252.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/alloc_for_pe-600x504.png 600w\" sizes=\"(max-width: 656px) 100vw, 656px\" \/><\/figure>\n<p>The shellcode also loads the imports of the payload:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41219\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/load_functions\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/load_functions.png\" data-orig-size=\"580,400\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"load_functions\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/load_functions-300x207.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/load_functions.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/load_functions.png\" alt=\"\" class=\"wp-image-41219\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/load_functions.png 580w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/load_functions-300x207.png 300w\" sizes=\"(max-width: 580px) 100vw, 580px\" \/><\/figure>\n<p>Below, we can see the fragment of code responsible for following the custom headers definition, and applying protection on pages. After the next element is loaded, execution is redirected to its entry point.<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41040\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/call_loaded_pe\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/call_loaded_pe.png\" data-orig-size=\"558,214\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"call_loaded_pe\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/call_loaded_pe-300x115.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/call_loaded_pe.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/call_loaded_pe.png\" alt=\"\" class=\"wp-image-41040\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/call_loaded_pe.png 558w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/call_loaded_pe-300x115.png 300w\" sizes=\"(max-width: 558px) 100vw, 558px\" \/><\/figure>\n<p>The entry point of the next module where the function expects the pointer to the data to be supplied:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41041\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/ep_to_next\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/ep_to_next.png\" data-orig-size=\"652,406\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"ep_to_next\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/ep_to_next-300x187.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/ep_to_next-600x374.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/ep_to_next-600x374.png\" alt=\"\" class=\"wp-image-41041\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/ep_to_next-600x374.png 600w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/ep_to_next-300x187.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/ep_to_next.png 652w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/figure>\n<p>The supplied data is appended at the end of the shellcode, and contains: the path of the initial executable, the path of the downloaded payload (<em>photo.png<\/em>), and other data.<\/p>\n<h4>Reconstructing the PE<\/h4>\n<p>In order to make analysis easier, it is always beneficial to reconstruct the valid PE header. There are two approaches to this problem:<\/p>\n<ol>\n<li>Manually finding and filling all the PE artifacts, such as: sections, imports, relocations (this becomes a problem in if all those elements are customized by the authors, as in <a rel=\"noreferrer noopener\" aria-label=\"the case of Ocean Lotus sample that we described before (opens in a new tab)\" href=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/04\/funky-malware-format-found-in-ocean-lotus-sample\/\" target=\"_blank\">the case of Ocean Lotus sample<\/a>)<\/li>\n<li>Analyzing in detail the loader and reconstructing the PE from the custom header<\/li>\n<\/ol>\n<p>Since we have access to the loader&#8217;s code, we can go for the second, more reliable approach: Observe how the loader processes the data and reconstruct the meaning of the fields. <\/p>\n<p>A fragment of the loader&#8217;s code where the sections are processed:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41244\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/process_sections\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/process_sections.png\" data-orig-size=\"655,312\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"process_sections\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/process_sections-300x143.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/process_sections-600x286.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/process_sections.png\" alt=\"\" class=\"wp-image-41244\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/process_sections.png 655w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/process_sections-300x143.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/process_sections-600x286.png 600w\" sizes=\"(max-width: 655px) 100vw, 655px\" \/><\/figure>\n<p>The custom header reconstructed based on the analysis:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41243\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/custom_hdr-2\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/custom_hdr.png\" data-orig-size=\"588,337\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"custom_hdr\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/custom_hdr-300x172.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/custom_hdr.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/custom_hdr.png\" alt=\"\" class=\"wp-image-41243\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/custom_hdr.png 588w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/custom_hdr-300x172.png 300w\" sizes=\"(max-width: 588px) 100vw, 588px\" \/><\/figure>\n<p>Fortunately, in this case the malware authors customized only the PE header. The Data Directory elements (imports and relocations) are kept in a standard form, so this part does not need to be converted.<\/p>\n<p>The converter from this format to PE is available here:<\/p>\n<p><a rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\" href=\"https:\/\/github.com\/hasherezade\/funky_malware_formats\/tree\/master\/iced_id_parser\" target=\"_blank\">https:\/\/github.com\/hasherezade\/funky_malware_formats\/tree\/master\/iced_id_parser<\/a><\/p>\n<p>Interestingly, the old version of IcedID used a similar custom format, but with one modification. In the past, there was one more DWORD-sized field before the ImportDirector VA. So, the latest header is shorter by one DWORD than the previous one.<\/p>\n<p>The module in the old format: <a href=\"https:\/\/www.virustotal.com\/gui\/file\/bbd6b94deabb9ac4775befc3dc6b516656615c9295e71b39610cb83c4b005354\/detection\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"bbd6b94deabb9ac4775befc3dc6b516656615c9295e71b39610cb83c4b005354 (opens in a new tab)\">bbd6b94deabb9ac4775befc3dc6b516656615c9295e71b39610cb83c4b005354<\/a><\/p>\n<h3 id=\"mce_84\">The core bot (headerless PE)<\/h3>\n<p><a href=\"https:\/\/www.virustotal.com\/gui\/file\/a5dcfe4896abc176108748289e5a6a85a3ed8528a7c5bf1dafe6f2f6bf826192\/details\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">6aeb27d50512dbad7e529ffedb0ac153<\/a> &#8211; a reconstructed PE<\/p>\n<p>Looking inside the strings of this module, we can guess that this element is responsible for all the core malicious operations performed by this malware. It communicates with the CnC server, reads the sqlite databases in order to steal cookies, installs its own certificate for Man-In-The-Browser attacks, and eventually downloads other modules.<\/p>\n<p>We can see that this is the element that was responsible for generating the observed requests to the CnC:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41053\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/data_url\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/data_url.png\" data-orig-size=\"633,141\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"data_url\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/data_url-300x67.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/data_url-600x134.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/data_url.png\" alt=\"\" class=\"wp-image-41053\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/data_url.png 633w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/data_url-300x67.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/data_url-600x134.png 600w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/data_url-630x141.png 630w\" sizes=\"(max-width: 633px) 100vw, 633px\" \/><\/figure>\n<p>During the run, the malware is under constant supervision from the CnC. The communication with the server is encrypted.<\/p>\n<h4>String obfuscation<\/h4>\n<p>The majority of the strings used by the malware are obfuscated and decoded before use. The algorithm used for decoding is simple:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41086\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/decode_string-2\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decode_string.png\" data-orig-size=\"436,261\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"decode_string\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decode_string-300x180.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decode_string.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decode_string.png\" alt=\"\" class=\"wp-image-41086\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decode_string.png 436w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decode_string-300x180.png 300w\" sizes=\"(max-width: 436px) 100vw, 436px\" \/><\/figure>\n<p>In order to decode the strings statically, we can reimplement the algorithm and supply to it encoded buffers. Another easier solution is a decoder that loads the original malware and uses its function, as well as the encoded buffers given by offset. Example available <a rel=\"noreferrer noopener\" aria-label=\"here (opens in a new tab)\" href=\"https:\/\/gist.github.com\/hasherezade\/3f1db9cf4629cf6afc09d5ff039fc541\" target=\"_blank\">here<\/a>.<\/p>\n<p>Decoding strings is important for the further analysis. Especially because, in this case, we can find some <a rel=\"noreferrer noopener\" aria-label=\"ebug strings left by the developers (opens in a new tab)\" href=\"https:\/\/gist.github.com\/hasherezade\/184c4bc439055bf69d6699f410e21bc4#file-bot_log-csv\" target=\"_blank\">debug strings left by the developers<\/a>, informing us about the actions performed by the malware in particular fragments of code.<\/p>\n<p>A list of some of the decoded strings is available <a rel=\"noreferrer noopener\" aria-label=\"here (opens in a new tab)\" href=\"https:\/\/gist.github.com\/hasherezade\/3f1db9cf4629cf6afc09d5ff039fc541#file-decoded-csv\" target=\"_blank\">here<\/a>.<\/p>\n<h4 id=\"mce_31\">Available actions<\/h4>\n<p>The overview of the main function of the bot is given below:<\/p>\n<figure class=\"wp-block-image\"><a href=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/12\/main_bot_func.png\" data-rel=\"lightbox-10\" title=\"\"><img decoding=\"async\" data-attachment-id=\"41416\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/main_bot_func\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/12\/main_bot_func.png\" data-orig-size=\"800,698\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"main_bot_func\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/12\/main_bot_func-300x262.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/12\/main_bot_func-600x524.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/12\/main_bot_func.png\" alt=\"\" class=\"wp-image-41416\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/12\/main_bot_func.png 800w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/12\/main_bot_func-300x262.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/12\/main_bot_func-600x524.png 600w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/a><\/figure>\n<p>The bot starts by opening a socket. Then, it beacons to the CnC and initializes threads for some specific actions: MiTM proxy, browser hooking engine, and a backconnect module (backdoor).<\/p>\n<p>It also calls to a function that initializes handlers, responsible for managing a variety of available actions. The full list:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41362\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/action_handlers\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/action_handlers.png\" data-orig-size=\"397,694\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"action_handlers\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/action_handlers-172x300.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/action_handlers-343x600.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/action_handlers.png\" alt=\"\" class=\"wp-image-41362\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/action_handlers.png 397w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/action_handlers-172x300.png 172w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/action_handlers-343x600.png 343w\" sizes=\"(max-width: 397px) 100vw, 397px\" \/><\/figure>\n<p>By analyzing closer to the handlers, we notice that similar to the first element, the main bot retrieves various elements as steganographically protected modules. The function responsible for decoding PNG files is analogical to the one found in the initial downloader:<\/p>\n<figure class=\"wp-block-image\"><a href=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decode_png.png\" data-rel=\"lightbox-11\" title=\"\"><img decoding=\"async\" data-attachment-id=\"41294\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/decode_png\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decode_png.png\" data-orig-size=\"871,408\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"decode_png\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decode_png-300x141.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decode_png-600x281.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decode_png.png\" alt=\"\" class=\"wp-image-41294\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decode_png.png 871w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decode_png-300x141.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decode_png-600x281.png 600w\" sizes=\"(max-width: 871px) 100vw, 871px\" \/><\/a><\/figure>\n<p>Those PNGs are used to carry the content of various updates for the malware. For example, an update to the list of URLs, but also other configuration files.<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41363\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/use_png_update\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/use_png_update.png\" data-orig-size=\"725,89\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"use_png_update\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/use_png_update-300x37.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/use_png_update-600x74.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/use_png_update.png\" alt=\"\" class=\"wp-image-41363\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/use_png_update.png 725w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/use_png_update-300x37.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/use_png_update-600x74.png 600w\" sizes=\"(max-width: 725px) 100vw, 725px\" \/><\/figure>\n<h4>Execution flow controlled by the CnC<\/h4>\n<p>The malware&#8217;s backconnect feature allows the attacker to deploy various commands on the victim machine. The CnC can also instruct the bot to decode other malicious modules from inside that will be deployed in a new process. For example:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41364\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/inject_vnc_module\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/inject_vnc_module.png\" data-orig-size=\"790,544\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"inject_vnc_module\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/inject_vnc_module-300x207.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/inject_vnc_module-600x413.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/inject_vnc_module.png\" alt=\"\" class=\"wp-image-41364\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/inject_vnc_module.png 790w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/inject_vnc_module-300x207.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/inject_vnc_module-600x413.png 600w\" sizes=\"(max-width: 790px) 100vw, 790px\" \/><\/figure>\n<p>If the particular command from the CnC is received, the bot will decompress another buffer that is stored inside the sample and inject it into a new instance of <em>svchost<\/em>. <\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41366\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/inject_to_svchost\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/inject_to_svchost.png\" data-orig-size=\"689,498\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"inject_to_svchost\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/inject_to_svchost-300x217.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/inject_to_svchost-600x434.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/inject_to_svchost.png\" alt=\"\" class=\"wp-image-41366\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/inject_to_svchost.png 689w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/inject_to_svchost-300x217.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/inject_to_svchost-600x434.png 600w\" sizes=\"(max-width: 689px) 100vw, 689px\" \/><\/figure>\n<p>The way in which this injection is implemented reminds us of the older version of the loader. First, the buffer is decompressed with the help of RtlDecompressBuffer:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41088\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/decompress_buf\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decompress_buf.png\" data-orig-size=\"518,292\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"decompress_buf\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decompress_buf-300x169.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decompress_buf.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decompress_buf.png\" alt=\"\" class=\"wp-image-41088\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decompress_buf.png 518w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decompress_buf-300x169.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decompress_buf-400x225.png 400w\" sizes=\"(max-width: 518px) 100vw, 518px\" \/><\/figure>\n<p>Then, memory is allocated at the preferred address 0x3000.<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41089\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/write_and_redirect\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/write_and_redirect.png\" data-orig-size=\"636,199\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"write_and_redirect\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/write_and_redirect-300x94.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/write_and_redirect-600x188.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/write_and_redirect-600x188.png\" alt=\"\" class=\"wp-image-41089\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/write_and_redirect-600x188.png 600w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/write_and_redirect-300x94.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/write_and_redirect.png 636w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/figure>\n<p>Some functions from NTDLL and other parameters will be copied to the structure, stored at the beginning of the shellcode.  <\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41147\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/copy_params_to_shellc\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/copy_params_to_shellc.png\" data-orig-size=\"510,543\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"copy_params_to_shellc\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/copy_params_to_shellc-282x300.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/copy_params_to_shellc.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/copy_params_to_shellc.png\" alt=\"\" class=\"wp-image-41147\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/copy_params_to_shellc.png 510w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/copy_params_to_shellc-282x300.png 282w\" sizes=\"(max-width: 510px) 100vw, 510px\" \/><\/figure>\n<p>We can see there are some functions that will be used by the shellcode to load another embedded PE.<\/p>\n<p>Similar to in the old loader, the redirection to the new entry point is implemented via hook set on the RtlExitUserProcess function:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41090\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/hook_exit_user_process\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/hook_exit_user_process.png\" data-orig-size=\"714,380\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"hook_exit_user_process\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/hook_exit_user_process-300x160.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/hook_exit_user_process-600x319.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/hook_exit_user_process.png\" alt=\"\" class=\"wp-image-41090\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/hook_exit_user_process.png 714w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/hook_exit_user_process-300x160.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/hook_exit_user_process-600x319.png 600w\" sizes=\"(max-width: 714px) 100vw, 714px\" \/><\/figure>\n<p>After the buffer gets decompressed, we can see another piece of shellcode:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41091\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/decompressed_buf2\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decompressed_buf2.png\" data-orig-size=\"520,514\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"decompressed_buf2\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decompressed_buf2-300x297.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decompressed_buf2.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decompressed_buf2.png\" alt=\"\" class=\"wp-image-41091\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decompressed_buf2.png 520w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decompressed_buf2-300x297.png 300w\" sizes=\"(max-width: 520px) 100vw, 520px\" \/><\/figure>\n<p>This shellcode is an analogical loader of the headerless PE module. We can see inside the custom version of PE header that will be used by the loader:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41092\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/custom_pe\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/custom_pe.png\" data-orig-size=\"524,128\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"custom_pe\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/custom_pe-300x73.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/custom_pe.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/custom_pe.png\" alt=\"\" class=\"wp-image-41092\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/custom_pe.png 524w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/custom_pe-300x73.png 300w\" sizes=\"(max-width: 524px) 100vw, 524px\" \/><figcaption>The custom header, containing minimal info from the PE header<\/figcaption><\/figure>\n<p>Dumped shellcode: <a href=\"https:\/\/www.virustotal.com\/gui\/file\/469ef3aedd47dc820d9d64a253652d7436abe6a5afb64c3722afb1ac83c3a3e1\/detection\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"469ef3aedd47dc820d9d64a253652d7436abe6a5afb64c3722afb1ac83c3a3e1 (opens in a new tab)\">469ef3aedd47dc820d9d64a253652d7436abe6a5afb64c3722afb1ac83c3a3e1<\/a><\/p>\n<p>This element is an additional backdoor, deploying on demand <a rel=\"noreferrer noopener\" aria-label=\"a hidden VNC (opens in a new tab)\" href=\"https:\/\/www.malwaretech.com\/2015\/09\/hidden-vnc-for-beginners.html\" target=\"_blank\">a hidden VNC<\/a>. It is also referenced by the authors by the name &#8220;HDESK bot&#8221; (Help Desk bot) because it gives the attacker direct access to the victim machine, as if it were a help-desk service. Converted to PE: <a rel=\"noreferrer noopener\" aria-label=\"2959091ac9e2a544407a2ecc60ba941b (opens in a new tab)\" href=\"https:\/\/www.virustotal.com\/gui\/file\/27c946b90987e04c3989e17e33b5dac8d5e0033199213a16d70657c58efc5031\/details\" target=\"_blank\">2959091ac9e2a544407a2ecc60ba941b<\/a><\/p>\n<figure class=\"wp-block-image\"><a href=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/vnc_module.png\" data-rel=\"lightbox-12\" title=\"\"><img decoding=\"async\" data-attachment-id=\"41331\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/vnc_module\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/vnc_module.png\" data-orig-size=\"628,505\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"vnc_module\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/vnc_module-300x241.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/vnc_module-600x482.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/vnc_module.png\" alt=\"\" class=\"wp-image-41331\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/vnc_module.png 628w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/vnc_module-300x241.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/vnc_module-600x482.png 600w\" sizes=\"(max-width: 628px) 100vw, 628px\" \/><\/a><figcaption>The &#8220;HDESK bot&#8221; deploys a<a rel=\"noreferrer noopener\" aria-label=\" hidden VNC  (opens in a new tab)\" href=\"https:\/\/www.malwaretech.com\/2015\/09\/hidden-vnc-for-beginners.html\" target=\"_blank\"> hidden VNC<\/a> to control the victim machine<\/figcaption><\/figure>\n<p>Below, we will analyze the selected features implemented by the core bot. Note that many of the features are deployed on demand\u2014depending on the command given by the CnC. In the observed case, the bot was also used as a downloader of the secondary malware, TrickBot.<\/p>\n<h4>Installing its own certificate<\/h4>\n<p>The malware installs its own certificate. First it drops the generated file into the %TEMP% folder. Then, the file is loaded and added to the Windows certificate store.<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41149\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/create_and_add\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/create_and_add.png\" data-orig-size=\"583,253\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"create_and_add\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/create_and_add-300x130.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/create_and_add.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/create_and_add.png\" alt=\"\" class=\"wp-image-41149\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/create_and_add.png 583w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/create_and_add-300x130.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/create_and_add-195x85.png 195w\" sizes=\"(max-width: 583px) 100vw, 583px\" \/><\/figure>\n<p>Fragment of Certificate generation function:<\/p>\n<figure class=\"wp-block-image\"><a href=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/selfsigned_cert.png\" data-rel=\"lightbox-13\" title=\"\"><img decoding=\"async\" data-attachment-id=\"41291\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/selfsigned_cert\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/selfsigned_cert.png\" data-orig-size=\"823,516\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"selfsigned_cert\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/selfsigned_cert-300x188.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/selfsigned_cert-600x376.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/selfsigned_cert.png\" alt=\"\" class=\"wp-image-41291\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/selfsigned_cert.png 823w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/selfsigned_cert-300x188.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/selfsigned_cert-600x376.png 600w\" sizes=\"(max-width: 823px) 100vw, 823px\" \/><\/a><\/figure>\n<p>Calling the function to add the certificate to store:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41150\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/add_to_store\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/add_to_store.png\" data-orig-size=\"458,337\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"add_to_store\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/add_to_store-300x221.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/add_to_store.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/add_to_store.png\" alt=\"\" class=\"wp-image-41150\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/add_to_store.png 458w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/add_to_store-300x221.png 300w\" sizes=\"(max-width: 458px) 100vw, 458px\" \/><\/figure>\n<h4>Stealing passwords from IE<\/h4>\n<p>We can see that this bot goes after various saved credentials. Among the different methods used, we identified stealing data from the Credential Store. The used method is similar to the one described <a rel=\"noreferrer noopener\" aria-label=\"here (opens in a new tab)\" href=\"https:\/\/securityxploded.com\/iepasswordsecrets.php\" target=\"_blank\">here<\/a>.<\/p>\n<p>We can see that it uses the mentioned GUID &#8220;abe2869f-9b47-4cd9-a358-c22904dba7f7&#8221; that was used to salt the credentials. After reading the credentials from the store, the bot undoes the salting operation in order to get the plaintext.<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41070\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/salting_with_guid\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/salting_with_guid.png\" data-orig-size=\"656,196\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"salting_with_guid\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/salting_with_guid-300x90.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/salting_with_guid-600x179.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/salting_with_guid-600x179.png\" alt=\"\" class=\"wp-image-41070\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/salting_with_guid-600x179.png 600w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/salting_with_guid-300x90.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/salting_with_guid.png 656w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/figure>\n<h4>Stealing saved email credentials<\/h4>\n<p>The bot is trying to use every opportunity to extract passwords from the victim machine, also going after saved email credentials.<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41338\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/steal_email_password\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/steal_email_password.png\" data-orig-size=\"604,663\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"steal_email_password\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/steal_email_password-273x300.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/steal_email_password-547x600.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/steal_email_password.png\" alt=\"\" class=\"wp-image-41338\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/steal_email_password.png 604w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/steal_email_password-273x300.png 273w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/steal_email_password-547x600.png 547w\" sizes=\"(max-width: 604px) 100vw, 604px\" \/><\/figure>\n<h4>Stealing cookies<\/h4>\n<p>As we observed during the behavioral analysis, the malware drops the sqlite3.dll in the temp folder. This module is further loaded and used to perform queries to browsers&#8217; databases with saved cookies.<\/p>\n<figure class=\"wp-block-image\"><a href=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/12\/download_sql_module.png\" data-rel=\"lightbox-14\" title=\"\"><img decoding=\"async\" data-attachment-id=\"41399\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/download_sql_module\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/12\/download_sql_module.png\" data-orig-size=\"757,202\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"download_sql_module\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/12\/download_sql_module-300x80.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/12\/download_sql_module-600x160.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/12\/download_sql_module.png\" alt=\"\" class=\"wp-image-41399\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/12\/download_sql_module.png 757w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/12\/download_sql_module-300x80.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/12\/download_sql_module-600x160.png 600w\" sizes=\"(max-width: 757px) 100vw, 757px\" \/><\/a><figcaption>Fragment of code responsible for loading sqlite module<\/figcaption><\/figure>\n<p>The malware searches the files containing cookies of  particular browsers:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41292\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/search_cookie\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/search_cookie.png\" data-orig-size=\"336,132\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"search_cookie\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/search_cookie-300x118.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/search_cookie.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/search_cookie.png\" alt=\"\" class=\"wp-image-41292\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/search_cookie.png 336w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/search_cookie-300x118.png 300w\" sizes=\"(max-width: 336px) 100vw, 336px\" \/><\/figure>\n<p>We can see the content of the queries after decoding strings:<\/p>\n<figure class=\"wp-block-image\"><a href=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/select_cookies.png\" data-rel=\"lightbox-15\" title=\"\"><img decoding=\"async\" data-attachment-id=\"41337\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/select_cookies\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/select_cookies.png\" data-orig-size=\"763,144\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"select_cookies\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/select_cookies-300x57.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/select_cookies-600x113.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/select_cookies.png\" alt=\"\" class=\"wp-image-41337\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/select_cookies.png 763w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/select_cookies-300x57.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/select_cookies-600x113.png 600w\" sizes=\"(max-width: 763px) 100vw, 763px\" \/><\/a><figcaption>SELECT host, path, isSecure, expiry, name, value FROM moz_cookies<\/figcaption><\/figure>\n<p>It targets Firefox, as well as Chrome and Chromium-based browsers:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41402\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/chromium_browsers\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/12\/chromium_browsers.png\" data-orig-size=\"557,483\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"chromium_browsers\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/12\/chromium_browsers-300x260.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/12\/chromium_browsers.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/12\/chromium_browsers.png\" alt=\"\" class=\"wp-image-41402\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/12\/chromium_browsers.png 557w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/12\/chromium_browsers-300x260.png 300w\" sizes=\"(max-width: 557px) 100vw, 557px\" \/><figcaption>The list of targeted Chromium browsers<\/figcaption><\/figure>\n<p>Fragment of the code performing queries:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41404\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/steal_autofill\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/12\/steal_autofill.png\" data-orig-size=\"747,230\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"steal_autofill\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/12\/steal_autofill-300x92.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/12\/steal_autofill-600x185.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/12\/steal_autofill.png\" alt=\"\" class=\"wp-image-41404\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/12\/steal_autofill.png 747w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/12\/steal_autofill-300x92.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/12\/steal_autofill-600x185.png 600w\" sizes=\"(max-width: 747px) 100vw, 747px\" \/><\/figure>\n<p>The list of queries to the Chrome&#8217;s database:<\/p>\n<pre class=\"wp-block-preformatted\">SELECT name, value FROM autofill<br \/><br \/>SELECT guid, company_name, street_address, city, state, zipcode, country_code FROM autofill_profiles<br \/><br \/>SELECT guid, number FROM autofill_profile_phones<br \/><br \/>SELECT guid, first_name, middle_name, last_name, full_name FROM autofill_profile_names<br \/><br \/>SELECT card_number_encrypted, length(card_number_encrypted), name_on_card, expiration_month || \"\/\" ||expiration_year FROM credit_cards<br \/><br \/>SELECT origin_url,username_value,length(password_value),password_value FROM logins WHERE username_value &lt;&gt; ''<br \/><br \/>SELECT host_key, path, is_secure, (case expires_utc when 0 then 0 else (expires_utc \/ 1000000) - 11644473600 end), name, length(encrypted_value), encrypted_value FROM cookies<\/pre>\n<p>The list of queries to the Firefox&#8217;s database:<\/p>\n<pre class=\"wp-block-preformatted\">SELECT host, path, isSecure, expiry, name, value FROM moz_cookies<br \/><br \/>SELECT fieldname, value FROM moz_formhistory<\/pre>\n<p>All the found files are packed into a TAR archive and sent to the CnC.<\/p>\n<figure class=\"wp-block-image\"><a href=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/fiefox_cookies.png\" data-rel=\"lightbox-16\" title=\"\"><img decoding=\"async\" data-attachment-id=\"41340\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/fiefox_cookies\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/fiefox_cookies.png\" data-orig-size=\"711,494\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"fiefox_cookies\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/fiefox_cookies-300x208.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/fiefox_cookies-600x417.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/fiefox_cookies.png\" alt=\"\" class=\"wp-image-41340\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/fiefox_cookies.png 711w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/fiefox_cookies-300x208.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/fiefox_cookies-600x417.png 600w\" sizes=\"(max-width: 711px) 100vw, 711px\" \/><\/a><\/figure>\n<figure class=\"wp-block-image\"><a href=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/cookies_tar.png\" data-rel=\"lightbox-17\" title=\"\"><img decoding=\"async\" data-attachment-id=\"41368\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/cookies_tar\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/cookies_tar.png\" data-orig-size=\"900,578\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"cookies_tar\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/cookies_tar-300x193.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/cookies_tar-600x385.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/cookies_tar.png\" alt=\"\" class=\"wp-image-41368\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/cookies_tar.png 900w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/cookies_tar-300x193.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/cookies_tar-600x385.png 600w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/a><\/figure>\n<p>Similarly, it creates a &#8220;<em>passff.tar<\/em>&#8221; archive with stolen Firefox profiles:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41339\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/stealing_pass_db\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/stealing_pass_db.png\" data-orig-size=\"489,647\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"stealing_pass_db\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/stealing_pass_db-227x300.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/stealing_pass_db-453x600.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/stealing_pass_db-453x600.png\" alt=\"\" class=\"wp-image-41339\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/stealing_pass_db-453x600.png 453w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/stealing_pass_db-227x300.png 227w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/stealing_pass_db.png 489w\" sizes=\"(max-width: 453px) 100vw, 453px\" \/><\/figure>\n<h4 id=\"mce_37\">Hooking browsers<\/h4>\n<p>As mentioned earlier, the malware attacks and hooks browsers. Since the analogical functionality is achieved by different functions within different browsers, a set of installed hooks may be unique for each. <\/p>\n<p>First, the malware searches for targets among the running processes. It uses the following algorithm:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41293\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/check_browser\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/check_browser.png\" data-orig-size=\"931,636\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"check_browser\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/check_browser-300x205.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/check_browser-600x410.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/check_browser.png\" alt=\"\" class=\"wp-image-41293\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/check_browser.png 931w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/check_browser-300x205.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/check_browser-600x410.png 600w\" sizes=\"(max-width: 931px) 100vw, 931px\" \/><\/figure>\n<p>It is similar to the one from the previous version (described <a rel=\"noreferrer noopener\" href=\"https:\/\/www.fortinet.com\/blog\/threat-research\/deep-dive-icedid-malware-analysis-of-child-processes\/_jcr_content\/root\/responsivegrid\/image_547012751.img.png\/1563813325832\/iceid3-08.png\" target=\"_blank\" data-rel=\"lightbox-18\" title=\"\">here<\/a>), yet we can see a few changes, i.e. the checksums are modified, and some additional checks are added. Yet, the list of the attacked browsers is the same, including the most popular ones: Firefox, MS Edge, Internet Explorer, and Chrome.<\/p>\n<p>The browsers are first infected with the dedicated IcedID module. Just like all the modules in this edition of IcedID, the browser implant is a headerless PE file. Its reconstructed version is available here: <a rel=\"noreferrer noopener\" aria-label=\"9e0c27746c11866c61dec17f1edfd2693245cd257dc0de2478c956b594bb2eb3 (opens in a new tab)\" href=\"https:\/\/www.virustotal.com\/gui\/file\/9e0c27746c11866c61dec17f1edfd2693245cd257dc0de2478c956b594bb2eb3\/detection\" target=\"_blank\">9e0c27746c11866c61dec17f1edfd2693245cd257dc0de2478c956b594bb2eb3<\/a>. <\/p>\n<p>After being injected, this module finds the appropriate DLLs in the memory of the process and sets redirections to its own code:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41299\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/to_hook_module\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/to_hook_module.png\" data-orig-size=\"416,112\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"to_hook_module\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/to_hook_module-300x81.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/to_hook_module.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/to_hook_module.png\" alt=\"\" class=\"wp-image-41299\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/to_hook_module.png 416w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/to_hook_module-300x81.png 300w\" sizes=\"(max-width: 416px) 100vw, 416px\" \/><\/figure>\n<p>Parsing the instructions and installing the hooks:<\/p>\n<figure class=\"wp-block-image\"><a href=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/write_jmp_hook.png\" data-rel=\"lightbox-19\" title=\"\"><img decoding=\"async\" data-attachment-id=\"41300\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/write_jmp_hook\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/write_jmp_hook.png\" data-orig-size=\"665,454\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"write_jmp_hook\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/write_jmp_hook-300x205.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/write_jmp_hook-600x410.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/write_jmp_hook.png\" alt=\"\" class=\"wp-image-41300\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/write_jmp_hook.png 665w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/write_jmp_hook-300x205.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/write_jmp_hook-600x410.png 600w\" sizes=\"(max-width: 665px) 100vw, 665px\" \/><\/a><\/figure>\n<p>Then, the selected API functions are intercepted and redirected to the plugin. Usually the hooks are installed at the beginning of functions, but there are exceptions to this rule. For example, in case of Internet Explorer, a function within the <em>mswsock.dll<\/em> has been intercepted in between:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41289\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/in_mswsock\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/in_mswsock.png\" data-orig-size=\"846,123\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"in_mswsock\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/in_mswsock-300x44.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/in_mswsock-600x87.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/in_mswsock.png\" alt=\"\" class=\"wp-image-41289\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/in_mswsock.png 846w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/in_mswsock-300x44.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/in_mswsock-600x87.png 600w\" sizes=\"(max-width: 846px) 100vw, 846px\" \/><\/figure>\n<p>Looking at the elements in memory involved in intercepting the calls: the browser implant (headerless PE), and the additional memory page:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41301\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/hook_elements\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/hook_elements.png\" data-orig-size=\"583,313\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"hook_elements\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/hook_elements-300x161.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/hook_elements.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/hook_elements.png\" alt=\"\" class=\"wp-image-41301\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/hook_elements.png 583w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/hook_elements-300x161.png 300w\" sizes=\"(max-width: 583px) 100vw, 583px\" \/><\/figure>\n<p>Example of the hook in Firefox:<\/p>\n<p>Step 1: the function <em>SSL_AuthCertificateHook<\/em> has a jump redirecting to the implanted module:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41302\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/hook_step1\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/hook_step1.png\" data-orig-size=\"584,157\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"hook_step1\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/hook_step1-300x81.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/hook_step1.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/hook_step1.png\" alt=\"\" class=\"wp-image-41302\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/hook_step1.png 584w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/hook_step1-300x81.png 300w\" sizes=\"(max-width: 584px) 100vw, 584px\" \/><\/figure>\n<p>Step 2: The implanted module calls the code from the additional page with appropriate parameters:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41303\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/hook_step2\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/hook_step2.png\" data-orig-size=\"546,70\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"hook_step2\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/hook_step2-300x38.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/hook_step2.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/hook_step2.png\" alt=\"\" class=\"wp-image-41303\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/hook_step2.png 546w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/hook_step2-300x38.png 300w\" sizes=\"(max-width: 546px) 100vw, 546px\" \/><\/figure>\n<p>Step 3: The code at the additional page is a patched fragment of the original function. After executing the modified code, it goes back to the original DLL.<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41304\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/hook_step3\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/hook_step3.png\" data-orig-size=\"541,317\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"hook_step3\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/hook_step3-300x176.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/hook_step3.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/hook_step3.png\" alt=\"\" class=\"wp-image-41304\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/hook_step3.png 541w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/hook_step3-300x176.png 300w\" sizes=\"(max-width: 541px) 100vw, 541px\" \/><\/figure>\n<p>The functionality of this hook didn&#8217;t change from the previous version.<\/p>\n<h4 id=\"mce_35\">Webinjects<\/h4>\n<p>The bot gets the configuration from the CnC in the form of .DAT files that were mentioned before. First, the file is decoded by RC4 algorithm. The output must start from the &#8220;zeus&#8221; keyword, and is further encoded by a custom algorithm. Scripts dedicated for each site are identified by a script ID.<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41298\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/decode_zeus_config\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decode_zeus_config.png\" data-orig-size=\"713,684\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"decode_zeus_config\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decode_zeus_config-300x288.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decode_zeus_config-600x576.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decode_zeus_config.png\" alt=\"\" class=\"wp-image-41298\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decode_zeus_config.png 713w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decode_zeus_config-300x288.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/decode_zeus_config-600x576.png 600w\" sizes=\"(max-width: 713px) 100vw, 713px\" \/><\/figure>\n<p>After the files are loaded and decoded, we can see the content:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41277\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/script-14\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/script.png\" data-orig-size=\"532,301\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"script\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/script-300x170.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/script.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/script.png\" alt=\"\" class=\"wp-image-41277\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/script.png 532w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/script-300x170.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/script-400x225.png 400w\" sizes=\"(max-width: 532px) 100vw, 532px\" \/><\/figure>\n<p>There are multiple types of webinjects available to perform by the bot:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41369\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/webinject_types\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/webinject_types.png\" data-orig-size=\"708,619\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"webinject_types\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/webinject_types-300x262.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/webinject_types-600x525.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/webinject_types-600x525.png\" alt=\"\" class=\"wp-image-41369\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/webinject_types-600x525.png 600w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/webinject_types-300x262.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/webinject_types.png 708w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/figure>\n<p>Depending on the configuration, the bot may replace some parts of the website&#8217;s code, or add some new, malicious scripts.<\/p>\n<h4>Executing remote commands<\/h4>\n<p>In case the commands implemented by the bot are not enough for the needs of the operator, the bot allows a feature of executing commands from the command line.<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" data-attachment-id=\"41405\" data-permalink=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/attachment\/read_cli_param\/\" data-orig-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/12\/read_cli_param.png\" data-orig-size=\"664,246\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"read_cli_param\" data-image-description=\"\" data-medium-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/12\/read_cli_param-300x111.png\" data-large-file=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/12\/read_cli_param-600x222.png\" src=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/12\/read_cli_param.png\" alt=\"\" class=\"wp-image-41405\" srcset=\"https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/12\/read_cli_param.png 664w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/12\/read_cli_param-300x111.png 300w, https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/12\/read_cli_param-600x222.png 600w\" sizes=\"(max-width: 664px) 100vw, 664px\" \/><\/figure>\n<p>The output of the run commands is sent back to the malware via named pipe, and then supplied back to the CnC.<\/p>\n<h3>Mature banker and stealer<\/h3>\n<p>As we can see from the above analysis, IcedID is not only a banking Trojan, but a general-purpose stealer able to extract a variety of credentials. It can also work as a downloader for other modules, including covert ones, that look like harmless PNG files.<\/p>\n<p>This bot is mature, written by experienced developers. It deploys various typical techniques, including Zeus-style webinjects, hooks for various browsers, hidden VNC, and backconnect. Its authors also used several known obfuscation techniques. In addition, the use of customized PE headers is an interesting bonus, slowing down static analysis.<\/p>\n<p>In recent updates, the malware authors equipped the bot with steganography. It is not a novelty to see it in the threat landscape, but it is a feature that makes this malware a bit more stealthy.<\/p>\n<h3>Indicators of Compromise<\/h3>\n<p>Sandbox runs:<\/p>\n<p>https:\/\/app.any.run\/tasks\/8595602a-fa98-4cfa-80d7-98925091dc48\/<br \/>https:\/\/app.any.run\/tasks\/a7abba78-cf6d-4c68-b94c-4835d5becb13\/<\/p>\n<h3>MITRE<\/h3>\n<ul>\n<li>Execution:\n<ul>\n<li>Command-Line Interface<\/li>\n<li><strong>Execution through Module Load<\/strong><\/li>\n<li><strong>Scheduled Task<\/strong><\/li>\n<li>Scripting<\/li>\n<li>Windows Managment Intstrumentation<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li>Persistence:\n<ul>\n<li><strong>Registry Run Keys\/ Startup Folder<\/strong><\/li>\n<li><strong>Scheduled Task<\/strong><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li>Privilege Escalation\n<ul>\n<li><strong>Scheduled Task<\/strong><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li>Defense Evasion\n<ul>\n<li>Scripting<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li>Credential Access\n<ul>\n<li><strong>Credentials in Files<\/strong><\/li>\n<li>Credential Dumping<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li>Discovery\n<ul>\n<li>Network Share Discovery<\/li>\n<li>Query Registry<\/li>\n<li>Remote System Discovery<\/li>\n<li>System Information Discovery<\/li>\n<li>System Network Configuration Discovery<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li>Lateral Movement\n<ul>\n<li><strong>Remote File Copy<\/strong><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Source: <a href=\"https:\/\/app.any.run\/tasks\/48414a33-3d66-4a46-afe5-c2003bb55ccf\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"https:\/\/app.any.run\/tasks\/48414a33-3d66-4a46-afe5-c2003bb55ccf\/  (opens in a new tab)\">https:\/\/app.any.run\/tasks\/48414a33-3d66-4a46-afe5-c2003bb55ccf\/<br \/><\/a><\/p>\n<h3>References<\/h3>\n<p>About the old variants of IceID:<\/p>\n<ul>\n<li> Deep Dive Into IcedID Malware &#8211; by Kai Lu, Fortinet: [<a rel=\"noreferrer noopener\" aria-label=\"1 (opens in a new tab)\" href=\"https:\/\/www.fortinet.com\/blog\/threat-research\/icedid-malware-analysis-part-one.html\" target=\"_blank\">1<\/a>][<a rel=\"noreferrer noopener\" aria-label=\"2 (opens in a new tab)\" href=\"https:\/\/www.fortinet.com\/blog\/threat-research\/icedid-malware-analysis-part-two.html\" target=\"_blank\">2<\/a>][<a rel=\"noreferrer noopener\" aria-label=\"3 (opens in a new tab)\" href=\"https:\/\/www.fortinet.com\/blog\/threat-research\/deep-dive-icedid-malware-analysis-of-child-processes.html\" target=\"_blank\">3<\/a>]<\/li>\n<li><a href=\"https:\/\/medium.com\/@dawid.golak\/icedid-aka-bokbot-analysis-with-ghidra-560e3eccb766\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"https:\/\/medium.com\/@dawid.golak\/icedid-aka-bokbot-analysis-with-ghidra-560e3eccb766 (opens in a new tab)\">https:\/\/medium.com\/@dawid.golak\/icedid-aka-bokbot-analysis-with-ghidra-560e3eccb766<\/a><\/li>\n<\/ul>\n<p>The post <a rel=\"nofollow\" href=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/\">New version of IcedID Trojan uses steganographic payloads<\/a> appeared first on <a rel=\"nofollow\" href=\"https:\/\/blog.malwarebytes.com\">Malwarebytes Labs<\/a>.<\/p>\n<p><a href=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/\" target=\"bwo\" >https:\/\/blog.malwarebytes.com\/feed\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p><strong>Credit to Author: Threat Intelligence Team| Date: Tue, 03 Dec 2019 18:06:13 +0000<\/strong><\/p>\n<table cellpadding='10'>\n<tr>\n<td valign='top' align='center'><a href='https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/' title='New version of IcedID Trojan uses steganographic payloads'><img src='https:\/\/blog.malwarebytes.com\/wp-content\/uploads\/2019\/11\/shutterstock_724512754-1.png' border='0'  width='300px'  \/><\/a><\/td>\n<\/tr>\n<tr>\n<td valign='top' align='left'>We take a deep dive into the IcedID Trojan, describing the new payloads of this advanced malware.<\/p>\n<p>Categories: <\/p>\n<ul class=\"post-categories\">\n<li><a href=\"https:\/\/blog.malwarebytes.com\/category\/threat-analysis\/\" rel=\"category tag\">Threat analysis<\/a><\/li>\n<\/ul>\n<p>Tags: <a href=\"https:\/\/blog.malwarebytes.com\/tag\/backdoor\/\" rel=\"tag\">backdoor<\/a><a href=\"https:\/\/blog.malwarebytes.com\/tag\/banking-trojan\/\" rel=\"tag\">banking Trojan<\/a><a href=\"https:\/\/blog.malwarebytes.com\/tag\/banking-trojans\/\" rel=\"tag\">banking Trojans<\/a><a href=\"https:\/\/blog.malwarebytes.com\/tag\/credential-stealing\/\" rel=\"tag\">credential stealing<\/a><a href=\"https:\/\/blog.malwarebytes.com\/tag\/downloader\/\" rel=\"tag\">downloader<\/a><a href=\"https:\/\/blog.malwarebytes.com\/tag\/hooking-browsers\/\" rel=\"tag\">hooking browsers<\/a><a href=\"https:\/\/blog.malwarebytes.com\/tag\/icedid-trojan\/\" rel=\"tag\">IcedID Trojan<\/a><a href=\"https:\/\/blog.malwarebytes.com\/tag\/malware\/\" rel=\"tag\">malware<\/a><a href=\"https:\/\/blog.malwarebytes.com\/tag\/malware-analysis\/\" rel=\"tag\">malware analysis<\/a><a href=\"https:\/\/blog.malwarebytes.com\/tag\/man-in-the-browser-attacks\/\" rel=\"tag\">man-in-the-browser attacks<\/a><a href=\"https:\/\/blog.malwarebytes.com\/tag\/passwords\/\" rel=\"tag\">passwords<\/a><a href=\"https:\/\/blog.malwarebytes.com\/tag\/stealer\/\" rel=\"tag\">stealer<\/a><a href=\"https:\/\/blog.malwarebytes.com\/tag\/stealer-functionality\/\" rel=\"tag\">stealer functionality<\/a><a href=\"https:\/\/blog.malwarebytes.com\/tag\/stealing-passwords\/\" rel=\"tag\">stealing passwords<\/a><a href=\"https:\/\/blog.malwarebytes.com\/tag\/stealthy-malware\/\" rel=\"tag\">stealthy malware<\/a><a href=\"https:\/\/blog.malwarebytes.com\/tag\/trickbot\/\" rel=\"tag\">trickbot<\/a><a href=\"https:\/\/blog.malwarebytes.com\/tag\/trojans\/\" rel=\"tag\">Trojans<\/a><\/p>\n<table width='100%'>\n<tr>\n<td align=right>\n<p><b>(<a href='https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/' title='New version of IcedID Trojan uses steganographic payloads'>Read more&#8230;<\/a>)<\/b><\/p>\n<\/td>\n<\/tr>\n<\/table>\n<\/td>\n<\/tr>\n<\/table>\n<p>The post <a rel=\"nofollow\" href=\"https:\/\/blog.malwarebytes.com\/threat-analysis\/2019\/12\/new-version-of-icedid-trojan-uses-steganographic-payloads\/\">New version of IcedID Trojan uses steganographic payloads<\/a> appeared first on <a rel=\"nofollow\" href=\"https:\/\/blog.malwarebytes.com\">Malwarebytes Labs<\/a>.<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","footnotes":""},"categories":[10488,10378],"tags":[10836,11990,12328,23616,11382,23617,23618,3764,16466,23619,10602,19665,21511,23620,23621,10494,13256,12269],"class_list":["post-17084","post","type-post","status-publish","format-standard","hentry","category-malwarebytes","category-security","tag-backdoor","tag-banking-trojan","tag-banking-trojans","tag-credential-stealing","tag-downloader","tag-hooking-browsers","tag-icedid-trojan","tag-malware","tag-malware-analysis","tag-man-in-the-browser-attacks","tag-passwords","tag-stealer","tag-stealer-functionality","tag-stealing-passwords","tag-stealthy-malware","tag-threat-analysis","tag-trickbot","tag-trojans"],"_links":{"self":[{"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/posts\/17084","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/comments?post=17084"}],"version-history":[{"count":0,"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/posts\/17084\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/media?parent=17084"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/categories?post=17084"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/tags?post=17084"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}