{"id":9801,"date":"2024-11-13T10:54:29","date_gmt":"2024-11-13T10:54:29","guid":{"rendered":"\/cybersecurity-blog\/?p=9801"},"modified":"2024-11-18T08:29:41","modified_gmt":"2024-11-18T08:29:41","slug":"hawkeye-malware-technical-analysis","status":"publish","type":"post","link":"https:\/\/any.run\/cybersecurity-blog\/hawkeye-malware-technical-analysis\/","title":{"rendered":"HawkEye Malware: Technical Analysis"},"content":{"rendered":"\n<p><em>Editor\u2019s note: The current article is authored by the threat researcher Aaron Jornet Sales, also known as RexorVc0. You can find him on\u00a0<a href=\"https:\/\/x.com\/RexorVc0\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">X<\/a><\/em> and <a href=\"https:\/\/www.linkedin.com\/in\/aaron-jornet-sales-852831121\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">LinkedIn<\/a><em>.<\/em>\u00a0<\/p>\n\n\n\n<p>HawkEye, also known as PredatorPain (Predator Pain), is a malware categorized as a <a href=\"https:\/\/any.run\/malware-trends\/keylogger\" target=\"_blank\" rel=\"noreferrer noopener\">keylogger<\/a>, but over the years, it has adopted new functionalities that align it with the capabilities of other tools like <a href=\"https:\/\/any.run\/malware-trends\/stealer\" target=\"_blank\" rel=\"noreferrer noopener\">stealers<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">History of HawkEye<\/h2>\n\n\n\n<p>HawkEye emerged before 2010, with records of its use and sale dating back to 2008, making it quite long-lived. After several <a href=\"https:\/\/any.run\/cybersecurity-blog\/spearphishing-explained\/\" target=\"_blank\" rel=\"noreferrer noopener\">spearphishing<\/a> campaigns in which this well-known malware was attached, it gained significant popularity starting in 2013.<\/p>\n\n\n\n<p>This keylogger has been available on various dark web sites, even having dedicated websites where the tool was sold. However, this keylogger has been cracked for years and used by different actors without going through the subscription method imposed by its creators, whose price ranged between $20 and $50. This has contributed to its continued notoriety, and it has been used not only by criminal actors but also by script kiddies due to its ease of use.<\/p>\n\n\n\n<p>Although it is not one of the most widely used malwares, it remains in active use and saw a significant resurgence during the COVID period. During this time, certain actors took advantage of the general hysteria to obtain company data through phishing campaigns. <\/p>\n\n\n\n<p>Additionally, HawkEye has been used in conjunction with other loaders and\/or malware that invoked this keylogger. Over its long trajectory, various actors and malware have been involved in attacks on companies, some of which include Galleon Gold, Mikroceen, iSPY crypter related with Gold Skyline, <a href=\"https:\/\/any.run\/malware-trends\/remcos\" target=\"_blank\" rel=\"noreferrer noopener\">Remcos<\/a> used on campaigns with HawkEye, <a href=\"https:\/\/rexorvc0.com\/2024\/02\/04\/Pony_Fareit\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Pony<\/a> used on campaigns with HawkEye, etc.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Technical Analysis<\/strong><\/h2>\n\n\n\n<p>The method of HawkEye\u2019s delivery has varied throughout its history, as have the types of sources behind the attacks. Nevertheless, it has been primarily involved in spearphishing campaigns, where attackers devised convincing scenarios to trick victims into downloading the malicious file, which could be a document, compressed file, or another malware acting as a loader for the keylogger.<\/p>\n\n\n\n<p>It has also been used to target websites of portals typically accessed by companies, which were the main targets of the attacking groups. Another common method of spreading HawkEye was through &#8220;free&#8221; software, which turned out to be malware in disguise.<\/p>\n\n\n\n<p>HawkEye&#8217;s delivery methods are quite diverse compared to other malware. However, its execution and behavior have remained relatively consistent over the years. A behavior graph of what has been observed in recent months would look as follows:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"497\" height=\"1024\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/image54-497x1024.png\" alt=\"\" class=\"wp-image-9887\" style=\"width:557px;height:auto\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/image54-497x1024.png 497w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/image54-146x300.png 146w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/image54-768x1583.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/image54-745x1536.png 745w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/image54-370x762.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/image54-270x556.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/image54-740x1525.png 740w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/image54.png 872w\" sizes=\"(max-width: 497px) 100vw, 497px\" \/><figcaption class=\"wp-element-caption\"><em>HawkEye graph<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>During the analysis process, I typically spend weeks, even months, collecting samples to understand how they function as a whole based on the existing variants. Therefore, we may observe variations among those presented. In most executions, we encounter enormous trees of processes based on their activities. <\/p>\n\n\n\n<p>To simplify, as you&#8217;ve seen in the previous graph, it&#8217;s not as complex compared to other stealers or <a href=\"https:\/\/any.run\/malware-trends\/rat\" target=\"_blank\" rel=\"noreferrer noopener\">RATs<\/a>. It generally consists of an executable that drops others in temporary paths, then injects code into one of them or into a .NET-related software. Later, in memory, it gathers all possible data and sends it to a C&amp;C.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"335\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/1-1024x335.png\" alt=\"\" class=\"wp-image-9821\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/1-1024x335.png 1024w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/1-300x98.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/1-768x251.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/1-1536x503.png 1536w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/1-2048x671.png 2048w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/1-370x121.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/1-270x88.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/1-740x242.png 740w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>ProcDOT detonation chart<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>Going straight to the point, in an initial execution of one of the samples I analyzed, we see a rather extensive process\u2014a succession of execution copies launched in temporary paths.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"92\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/2-1.png\" alt=\"\" class=\"wp-image-9823\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/2-1.png 624w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/2-1-300x44.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/2-1-370x55.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/2-1-270x40.png 270w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/><figcaption class=\"wp-element-caption\"><em>Process Tree execution<\/em> (Image 1)<\/figcaption><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"448\" height=\"128\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/3.png\" alt=\"\" class=\"wp-image-9824\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/3.png 448w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/3-300x86.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/3-370x106.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/3-270x77.png 270w\" sizes=\"(max-width: 448px) 100vw, 448px\" \/><figcaption class=\"wp-element-caption\"><em>Process Tree execution<\/em> (Image 2)<\/figcaption><\/figure><\/div>\n\n\n<p>In this instance, they used the Roaming\\Templates path, but this is highly variable depending on who created it. Generally speaking, they tend to abuse paths like AppData\\Roaming and AppData\\Temp, which are classic choices.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"654\" height=\"96\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/4.png\" alt=\"\" class=\"wp-image-9825\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/4.png 654w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/4-300x44.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/4-370x54.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/4-270x40.png 270w\" sizes=\"(max-width: 654px) 100vw, 654px\" \/><figcaption class=\"wp-element-caption\"><em>Paths commonly abused <\/em>(Image 1)<\/figcaption><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"557\" height=\"45\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/5.png\" alt=\"\" class=\"wp-image-9826\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/5.png 557w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/5-300x24.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/5-370x30.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/5-270x22.png 270w\" sizes=\"(max-width: 557px) 100vw, 557px\" \/><figcaption class=\"wp-element-caption\"><em>Paths commonly abused <\/em>(Image 2)<\/figcaption><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"434\" height=\"52\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/6.png\" alt=\"\" class=\"wp-image-9827\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/6.png 434w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/6-300x36.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/6-370x44.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/6-270x32.png 270w\" sizes=\"(max-width: 434px) 100vw, 434px\" \/><figcaption class=\"wp-element-caption\"><em>Paths commonly abused <\/em>(Image 3)<\/figcaption><\/figure><\/div>\n\n\n<p>Here\u2019s the list of paths observed for dropping files:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>C:\\Users\\&lt;user&gt;\\AppData\\Local\\Temp\\<\/li>\n\n\n\n<li>C:\\Users\\&lt;user&gt;\\AppData\\Roaming\\<\/li>\n\n\n\n<li>C:\\Users\\&lt;user&gt;\\AppData\\Roaming\\Microsoft\\Windows\\Templates\\<\/li>\n\n\n\n<li>C:\\Users\\&lt;user&gt;\\AppData\\Local\\Temp\\System\\<\/li>\n\n\n\n<li>C:\\Users\\&lt;user&gt;\\Music\\<\/li>\n<\/ul>\n\n\n\n<p>All of these files that are launched, and which we&#8217;ve observed executing in the previous step, are copies of themselves. The filenames are also highly variable, as you might expect, but they often try to have an icon that makes the victim think it\u2019s a legitimate program, or the malware description might be altered to make it seem like legitimate software. <\/p>\n\n\n\n<!-- Regular Banner START -->\n<div class=\"regular-banner\">\n<!-- Text Content -->\n<p class=\"regular-banner__text\">\nAnalyze malware and phishing threats <br>inside ANY.RUN&#8217;s <span class=\"highlight\">Interactive Sandbox<\/span>&nbsp;   \n<\/p>\n<!-- CTA Link -->\n<a class=\"regular-banner__link\" id=\"article-banner-regular\" href=\"https:\/\/app.any.run\/?utm_source=anyrunblog&#038;utm_medium=article&#038;utm_campaign=hawkeye_analysis&#038;utm_term=131124&#038;utm_content=linktoregistration#register\/\" rel=\"noopener\" target=\"_blank\">\nTry it now\n<\/a>\n<\/div>\n<!-- Regular Banner END -->\n<!-- Regular Banner Styles START -->\n\n<style>\n.regular-banner {\ndisplay: flex;\ntext-align: center;\nflex-direction: column;\nalign-items: center;\ngap: 1.5rem;\nwidth: 100%;\npadding: 2rem;\nmargin: 1.5rem 0;\nborder-radius: 0.5rem;\nfont-family: 'Catamaran Bold';\nmargin-inline: auto;\nbackground: rgba(32, 168, 241, 0.1);\nborder: 1px solid rgba(75, 174, 227, 0.32);\n}\n\n.regular-banner__text {\nfont-size: 1.5rem;\nmargin: 0;\n}\n\n.highlight {\ncolor: #ea2526;\n}\n\n.regular-banner__link {\npadding: 0.5rem 1.5rem;\nfont-weight: 500;\ntext-decoration: none;\nborder-radius: 0.5rem;\ncolor: #FFFFFF;\nbackground-color: #1491D4;\ntext-align: center;\ntransition: all 0.2s ease-in;\n}\n\n.regular-banner__link:hover {\nbackground-color: #68CBFF;\ncolor: white;\n}\n<\/style>\n<!-- Regular Banner Styles END -->\n\n\n\n<p>Ultimately, after comparing the dropped files, we can see they are simple copies of the original, with the particularity that some versions launch them in hidden mode, so you can&#8217;t see them unless you\u2019ve enabled the &#8220;View hidden files&#8221; function in Windows.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"905\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/7-1024x905.png\" alt=\"\" class=\"wp-image-9829\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/7-1024x905.png 1024w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/7-300x265.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/7-768x678.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/7-370x327.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/7-270x239.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/7-740x654.png 740w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/7.png 1458w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Hidden files duplication graph<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>During these file droppings, we can encounter both replicas of the original file in different paths, as well as support files whose functionality is typically to establish persistence (or check if it\u2019s already done, and if not, do it) and to perform injector functions, which is a characteristic of this malware. In this case, the smaller binary is responsible for these actions.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"668\" height=\"149\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/9.png\" alt=\"\" class=\"wp-image-9831\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/9.png 668w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/9-300x67.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/9-370x83.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/9-270x60.png 270w\" sizes=\"(max-width: 668px) 100vw, 668px\" \/><figcaption class=\"wp-element-caption\"><em>Injector written in temporary folder<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>I check to see if there is any shared information between the two binaries and notice that certain parts of the code match the original. This will become relevant later, as right now we&#8217;re seeing them separately, but everything will make sense afterward.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"230\" height=\"902\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/10.png\" alt=\"\" class=\"wp-image-9832\"\/><figcaption class=\"wp-element-caption\"><em>Comparison of the injector and the Hawkeye bin<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>After this step, we can see how persistence is established. PredatorPain isn\u2019t just a malware that establishes persistence once\u2014it\u2019s been observed to check and establish persistence up to three different times, depending on the phases (Loader &gt; Injector &gt; Payload). <\/p>\n\n\n\n<p>This makes it clear that the malware is determined to persist on the system, one way or another. At this stage, to avoid revealing persistence mechanisms through strings, it obfuscates a string and then decodes it to introduce, in this case, one of the binaries launched earlier. This practice isn\u2019t as common and adds a level of sophistication not found in other samples.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"718\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/11-1024x718.png\" alt=\"\" class=\"wp-image-9834\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/11-1024x718.png 1024w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/11-300x210.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/11-768x538.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/11-1536x1077.png 1536w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/11-370x259.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/11-270x189.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/11-740x519.png 740w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/11.png 1812w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Hawkeye persistence in registers<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>Not only does it create persistence in the registry, but we also find samples that establish persistence in tasks using commands like the following:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>schtasks.exe \/Create \/TN \"&lt;Path&gt;\\&lt;TaskName&gt;\" \/XML \"&lt;File&gt;\"<\/code><\/pre>\n\n\n\n<p>After observing its behavior in the early stages, we delve deeper into the entire execution thread throughout the analysis phase with debugging. I\u2019ve followed several samples, and they\u2019re mostly similar\u2014samples in .NET, sometimes obfuscated with tools like Confuser, Eaz, Reactor, or similar, which are relatively easy to deobfuscate.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"669\" height=\"296\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/12.png\" alt=\"\" class=\"wp-image-9835\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/12.png 669w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/12-300x133.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/12-370x164.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/12-270x119.png 270w\" sizes=\"(max-width: 669px) 100vw, 669px\" \/><figcaption class=\"wp-element-caption\"><em>Hawkeye code obfuscated<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>In most samples, I noticed heavy interaction with resources, which will become crucial shortly since I observed a significant amount of data in these resources across most of the samples I found.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"117\" height=\"96\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/13.png\" alt=\"\" class=\"wp-image-9836\"\/><figcaption class=\"wp-element-caption\"><em>Resources data content <\/em>(Image 1)<\/figcaption><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"194\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/14-1-1024x194.png\" alt=\"\" class=\"wp-image-9838\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/14-1-1024x194.png 1024w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/14-1-300x57.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/14-1-768x145.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/14-1-370x70.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/14-1-270x51.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/14-1-740x140.png 740w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/14-1.png 1236w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Resources data content<\/em> (Image 2)<\/figcaption><\/figure><\/div>\n\n\n<p>In the malware\u2019s initial phases, it looks for the running process (which will be the previously prepared copy), where it will check the PID to access the resources. Within these resources, we see two distinct types of code: the initial part, which acts as a key, and the data chunk, which is what will be deobfuscated. To achieve this, it uses XOR + Poly, and at the end of the process, it extracts a Portable Executable.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"996\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/15-1024x996.png\" alt=\"\" class=\"wp-image-9840\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/15-1024x996.png 1024w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/15-300x292.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/15-768x747.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/15-370x360.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/15-270x263.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/15-740x720.png 740w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/15.png 1379w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Graph of binary load from resources<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>It can do this in various ways depending on the sample, but we see the same extraction of a binary from a resource as we do from obfuscated code in memory, like the example shown below.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"492\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/16-1024x492.png\" alt=\"\" class=\"wp-image-9841\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/16-1024x492.png 1024w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/16-300x144.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/16-768x369.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/16-1536x738.png 1536w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/16-2048x984.png 2048w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/16-370x178.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/16-270x130.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/16-740x355.png 740w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Graph of PE extraction from memory<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>The result of this phase is two extracted files\u2014one will be the injector, and the other will be the Keylogger.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"536\" height=\"244\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/17.png\" alt=\"\" class=\"wp-image-9842\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/17.png 536w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/17-300x137.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/17-370x168.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/17-270x123.png 270w\" sizes=\"(max-width: 536px) 100vw, 536px\" \/><figcaption class=\"wp-element-caption\"><em>Extracted Injector<\/em><\/figcaption><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"362\" height=\"260\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/18.png\" alt=\"\" class=\"wp-image-9843\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/18.png 362w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/18-300x215.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/18-270x194.png 270w\" sizes=\"(max-width: 362px) 100vw, 362px\" \/><figcaption class=\"wp-element-caption\"><em>Extracted Keylogger<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>I compared both files, and they\u2019re entirely different, in size, in structure\u2014the only common factor is that both are .NET binaries.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"173\" height=\"857\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/19.png\" alt=\"\" class=\"wp-image-9845\"\/><figcaption class=\"wp-element-caption\"><em>Binary comparison<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>To highlight the difference between the injector dropped on disk (Right) and the one extracted from memory (Left), we can compare the extended content. We can observe how the memory-extracted injector includes imports related to injection that the disk version doesn\u2019t (such as ZwUnmapViewOfSection, VirtualAllocEx, WriteProcessMemory, etc.).<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"167\" height=\"768\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/20.png\" alt=\"\" class=\"wp-image-9846\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/20.png 167w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/20-65x300.png 65w\" sizes=\"(max-width: 167px) 100vw, 167px\" \/><figcaption class=\"wp-element-caption\"><em>Extracted and dropped injector comparison<\/em><\/figcaption><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"306\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/21-1024x306.png\" alt=\"\" class=\"wp-image-9847\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/21-1024x306.png 1024w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/21-300x90.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/21-768x229.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/21-1536x459.png 1536w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/21-370x111.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/21-270x81.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/21-740x221.png 740w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/21.png 1918w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Extracted and dropped injector comparison<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>Here we can observe various functionalities while extracting the binaries, such as self-deletion. This is done to maintain evasion and avoid revealing its location, as it drops replicas of the original binary in various locations, as we saw earlier.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"470\" height=\"86\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/22.png\" alt=\"\" class=\"wp-image-9849\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/22.png 470w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/22-300x55.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/22-370x68.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/22-270x49.png 270w\" sizes=\"(max-width: 470px) 100vw, 470px\" \/><figcaption class=\"wp-element-caption\"><em>Self-deletion and self-copy of the original binary <\/em>(Image 1)<\/figcaption><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"622\" height=\"145\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/23.png\" alt=\"\" class=\"wp-image-9851\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/23.png 622w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/23-300x70.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/23-370x86.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/23-270x63.png 270w\" sizes=\"(max-width: 622px) 100vw, 622px\" \/><figcaption class=\"wp-element-caption\"><em><br>Self-deletion and self-copy of the original binary <\/em>(Image 2)<\/figcaption><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"507\" height=\"69\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/24.png\" alt=\"\" class=\"wp-image-9852\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/24.png 507w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/24-300x41.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/24-370x50.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/24-270x37.png 270w\" sizes=\"(max-width: 507px) 100vw, 507px\" \/><figcaption class=\"wp-element-caption\"><em>Self-deletion and self-copy of the original binary <\/em>(Image 3)<\/figcaption><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"54\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/25-1024x54.png\" alt=\"\" class=\"wp-image-9853\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/25-1024x54.png 1024w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/25-300x16.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/25-768x41.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/25-370x20.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/25-270x14.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/25-740x39.png 740w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/25.png 1170w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Self-deletion and self-copy of the original binary <\/em>(Image 4)<\/figcaption><\/figure><\/div>\n\n\n<p>One of the dropped files, the smaller one, acts as the injector. When extracted from memory, it has more functionalities than the one seen on disk. This is because the injection tasks are carried out during runtime, but the written file is actually a portion of this, triggering the main binary located in the temporary path. <\/p>\n\n\n\n<p>It checks persistence and restarts the entire process, including injection. Therefore, it\u2019s a part of the file without revealing all of its functionalities. I\u2019ll show you how it performs injection using Process Hollowing.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"435\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/26-1024x435.png\" alt=\"\" class=\"wp-image-9855\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/26-1024x435.png 1024w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/26-300x127.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/26-768x326.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/26-1536x652.png 1536w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/26-370x157.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/26-270x115.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/26-740x314.png 740w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/26.png 2031w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Graph of the process injection<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>In essence, the injector doesn&#8217;t have much more functionality. It includes a phase where it checks running processes, which is an interesting technique to detect analysis tools or to determine if the process is already running. If not, it launches the process, adds it to the registry (as seen earlier), and restarts the execution.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"659\" height=\"178\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/27.png\" alt=\"\" class=\"wp-image-9856\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/27.png 659w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/27-300x81.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/27-370x100.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/27-270x73.png 270w\" sizes=\"(max-width: 659px) 100vw, 659px\" \/><figcaption class=\"wp-element-caption\"><em>Process collection routine<\/em> (Image 1)<\/figcaption><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"580\" height=\"499\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/28-2.png\" alt=\"\" class=\"wp-image-9861\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/28-2.png 580w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/28-2-300x258.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/28-2-370x318.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/28-2-270x232.png 270w\" sizes=\"(max-width: 580px) 100vw, 580px\" \/><figcaption class=\"wp-element-caption\"><em>Process collection routine<\/em> (Image 2)<\/figcaption><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"641\" height=\"311\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/29.png\" alt=\"\" class=\"wp-image-9862\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/29.png 641w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/29-300x146.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/29-370x180.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/29-270x131.png 270w\" sizes=\"(max-width: 641px) 100vw, 641px\" \/><figcaption class=\"wp-element-caption\"><em>Process collection routine<\/em> (Image 3)<\/figcaption><\/figure><\/div>\n\n\n<p>Lastly, we only have the second extraction left to observe, which is HawkEye itself. I&#8217;ve encountered many versions of it, as the modules included will vary significantly based on what the creator configures in the builder of the Keylogger itself. <\/p>\n\n\n\n<!-- CTA Split START -->\n<div class=\"cta-split\">\n<div class=\"cta__split-left\">\n\n<!-- Image -->\n<img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/mcusercontent.com\/663b94f19348582a8dc323efe\/images\/0d88188b-3e89-2314-5a60-cb87e8077326.png\" alt=\"Learn to analyze malware in a sandbox\" class=\"cta__split-icon\" \/>\n<\/div>\n\n<div class=\"cta__split-right\">\n<div>\n\n<!-- Heading -->\n<h3 class=\"cta__split-heading\"><br>Learn to analyze cyber threats<\/h3>\n\n<!-- Text -->\n<p class=\"cta__split-text\">\nSee a detailed guide to using ANY.RUN&#8217;s <span class=\"highlight\">Interactive Sandbox<\/span> for malware and phishing analysis\n<br \/>\n<br \/>\n<\/p>\n<\/div>\n<!-- CTA Link -->\n<a target=\"_blank\" rel=\"noopener\" id=\"article-banner-split\" href=\"https:\/\/any.run\/cybersecurity-blog\/malware-analysis-in-a-sandbox\/\"><div class=\"cta__split-link\">Read full guide<\/div><\/a>\n<\/div>\n<\/div>\n<!-- CTA Split END -->\n<!-- CTA Split Styles START -->\n<style>\n.cta-split {\noverflow: hidden;\nmargin: 3rem 0;\ndisplay: grid;\njustify-items: center;\nborder-radius: 0.5rem;\nwidth: 100%;\nmin-height: 25rem;\ngrid-template-columns: repeat(2, 1fr);\nborder: 1px solid rgba(75, 174, 227, 0.32);\nfont-family: 'Catamaran Bold';\n}\n\n.cta__split-left {\ndisplay: flex;\nalign-items: center;\njustify-content: center;\nheight: 100%;\nwidth: 100%;\nbackground-color: #161c59;\nbackground-position: center center;\nbackground: rgba(32, 168, 241, 0.1);\n}\n\n.cta__split-icon { \nwidth: 100%;\nheight: auto;\nobject-fit: contain;\nmax-width: 100%;\n}\n\n.cta__split-right {\ndisplay: flex;\nflex-direction: column;\njustify-content: space-between;\npadding: 2rem;\n}\n\n.cta__split-heading { font-size: 1.5rem; }\n\n.cta__split-text {\nmargin-top: 1rem;\nfont-family: Lato, Roboto, sans-serif;\n}\n\n.cta__split-link {\npadding: 0.5rem 1rem;\nfont-weight: 500;\ntext-decoration: none;\nborder-radius: 0.5rem;\ncolor: white;\nbackground-color: #1491D4;\ntext-align: center;\ntransition: all 0.2s ease-in;\ndisplay: block;\nz-index: 1000;\nposition: relative;\ncursor: pointer !important;\n}\n\n.cta__split-link:hover {\nbackground-color: #68CBFF;\ncolor: white;\ncursor: pointer;\n}\n\n.highlight { color: #ea2526;}\n\n\n\/* Mobile styles START *\/\n@media only screen and (max-width: 768px) {\n\n.cta-split {\ngrid-template-columns: 1fr;\nmin-height: auto;\n}\n\n.cta__split-left {\nheight: auto;\nmin-height: 10rem;\n}\n\n\n.cta__split-left, .cta__split-right {\nheight: auto;\n}\n\n.cta__split-heading { font-size: 1.2rem; }\n\n.cta__split-text { font-size: 1rem; }\n.cta__split-icon {\nmax-height: auto;\nobject-fit: cover;\n}\n\n}\n\/* Mobile styles END *\/\n<\/style>\n<!-- CTA Split Styles END -->\n\n\n\n<p>We\u2019ll talk more about this later, but you can see all the functionalities that can be added during its creation, which will impact the modules incorporated into it.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"497\" height=\"464\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/30.png\" alt=\"\" class=\"wp-image-9864\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/30.png 497w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/30-300x280.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/30-370x345.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/30-270x252.png 270w\" sizes=\"(max-width: 497px) 100vw, 497px\" \/><figcaption class=\"wp-element-caption\"><em>Comparison between crack and extracted keylogger features<\/em> (Image 1)<\/figcaption><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"436\" height=\"978\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/31.png\" alt=\"\" class=\"wp-image-9865\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/31.png 436w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/31-134x300.png 134w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/31-370x830.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/31-270x606.png 270w\" sizes=\"(max-width: 436px) 100vw, 436px\" \/><figcaption class=\"wp-element-caption\"><em>Comparison between crack and extracted keylogger features<\/em> (Image 2)<\/figcaption><\/figure><\/div>\n\n\n<p>At this point, I conducted tests with several builders to verify this theory, as I had extracted multiple samples to the final phase, and almost none of them resembled each other too much. I tested by removing or adding options, and even with the same sample, there were significant differences, so you can imagine how different it can be if it&#8217;s not exactly the same version of the keylogger and different elements were selected during its creation.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"119\" height=\"877\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/32.png\" alt=\"\" class=\"wp-image-9867\"\/><figcaption class=\"wp-element-caption\"><em>Comparison between crack and extracted keylogger<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>At this stage, we just need to examine the payload&#8217;s functionalities. Upon first glance, we can see strings that reveal its nature\u2014this sample didn\u2019t expect anyone to reach this point, as it has three well-defined phases that conceal its tracks, but here we can see many indicators of what it is.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"901\" height=\"259\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/33.png\" alt=\"\" class=\"wp-image-9868\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/33.png 901w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/33-300x86.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/33-768x221.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/33-370x106.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/33-270x78.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/33-740x213.png 740w\" sizes=\"(max-width: 901px) 100vw, 901px\" \/><figcaption class=\"wp-element-caption\"><em><br>Overview of the extracted HawkEye <\/em>(Image 1)<\/figcaption><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"449\" height=\"523\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/34.png\" alt=\"\" class=\"wp-image-9869\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/34.png 449w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/34-258x300.png 258w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/34-370x431.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/34-270x314.png 270w\" sizes=\"(max-width: 449px) 100vw, 449px\" \/><figcaption class=\"wp-element-caption\"><em>Overview of the extracted HawkEye <\/em>(Image 2)<\/figcaption><\/figure><\/div>\n\n\n<p>During the execution of this specific module, we can observe it invoking vbc.exe as it injects the payload into this process, using the same techniques we\u2019ve previously seen.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"207\" height=\"40\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/35.png\" alt=\"\" class=\"wp-image-9871\"\/><figcaption class=\"wp-element-caption\"><em>Execution of HawkEye&#8217;s final stage<\/em> (Image 1)<\/figcaption><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"205\" height=\"35\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/36.png\" alt=\"\" class=\"wp-image-9872\"\/><figcaption class=\"wp-element-caption\"><em>Execution of HawkEye&#8217;s final stage<\/em> (Image 2)<\/figcaption><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"350\" height=\"245\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/37.png\" alt=\"\" class=\"wp-image-9873\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/37.png 350w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/37-300x210.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/37-270x189.png 270w\" sizes=\"(max-width: 350px) 100vw, 350px\" \/><figcaption class=\"wp-element-caption\"><em>Execution of HawkEye&#8217;s final stage<\/em> (Image 3)<\/figcaption><\/figure><\/div>\n\n\n<p>Regarding the modules it brings, I compared three different samples, and they are quite similar in terms of what they can do. The general functionalities that typically match include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Keylogging (Monitoring and stealing keyboard and clipboard data)<\/li>\n\n\n\n<li>System information gathering (OS, HW, Network)<\/li>\n\n\n\n<li>Credential theft (Mail, FTP, browsers, video games, etc.)<\/li>\n\n\n\n<li>Wallet theft<\/li>\n\n\n\n<li>Screenshot capture<\/li>\n\n\n\n<li>Security software detection<\/li>\n\n\n\n<li>Analysis tools detection (Dbg, traffic, etc.)<\/li>\n\n\n\n<li>Persistence (usually via registry keys or Tasks)<\/li>\n\n\n\n<li>Information exfiltration through various methods (FTP, HTTP, SMTP, etc.)<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"829\" height=\"973\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/38.png\" alt=\"\" class=\"wp-image-9875\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/38.png 829w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/38-256x300.png 256w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/38-768x901.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/38-370x434.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/38-270x317.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/38-740x869.png 740w\" sizes=\"(max-width: 829px) 100vw, 829px\" \/><figcaption class=\"wp-element-caption\"><em>Graph of payload module diffing<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>Calling HawkEye a keylogger is really an oversimplification, as it performs more functions than many stealers I\u2019ve seen. Once injected into vbc.exe or other processes, it carries out various actions mentioned above.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"568\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/39-1024x568.png\" alt=\"\" class=\"wp-image-9876\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/39-1024x568.png 1024w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/39-300x166.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/39-768x426.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/39-1536x851.png 1536w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/39-2048x1135.png 2048w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/39-370x205.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/39-270x150.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/39-740x410.png 740w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Graph of HawkEye functionality<\/em><\/figcaption><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\"><strong>Outro<\/strong><\/h2>\n\n\n\n<p>As we discussed earlier, different groups have used this keylogger, as well as independent criminals or even script kiddies. In my research, I found different places where this keylogger was sold\u2014there were up to 4-5 different sites, as it changed developers and domains over time, which is quite common.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"981\" height=\"825\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/40.png\" alt=\"\" class=\"wp-image-9877\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/40.png 981w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/40-300x252.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/40-768x646.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/40-370x311.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/40-270x227.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/40-740x622.png 740w\" sizes=\"(max-width: 981px) 100vw, 981px\" \/><figcaption class=\"wp-element-caption\"><em>HawkEye webpage<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>It has also been distributed through cracks, where it was sold or offered on forums to members, avoiding the usual membership fees or markets, offering it for very low payments compared to the standard price, which as we mentioned earlier, ranged from $20 to $50.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"482\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/41-1024x482.png\" alt=\"\" class=\"wp-image-9878\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/41-1024x482.png 1024w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/41-300x141.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/41-768x361.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/41-1536x722.png 1536w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/41-370x174.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/41-270x127.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/41-740x348.png 740w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/41.png 1803w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>HawkEye product sales<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>It\u2019s always important with these kinds of tools to locate the original software in different versions to understand how it works from both the victim\u2019s and the attacker\u2019s perspectives, so we can get a complete view of the malware<\/p>\n\n\n\n<p>Here, we can see that the builder provides a multitude of configuration options, allowing us to choose where to send the stolen information (email, FTP, etc.), what we want to collect (browser info, FTP credentials, mail, etc.), whether to check for certain tools, establish persistence, delete data, download from a domain (this could function as a downloader for other malware), change the payload data to make it appear like legitimate software (e.g., changing the icon, description, etc.). As you can see, it\u2019s incredibly comprehensive. After compiling, we\u2019ll have our complete Keylogger, Stealer, or Downloader (call it what you will, as it does everything) ready to use.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1001\" height=\"1024\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/42-1001x1024.png\" alt=\"\" class=\"wp-image-9879\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/42-1001x1024.png 1001w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/42-293x300.png 293w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/42-768x786.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/42-370x379.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/42-270x276.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/42-740x757.png 740w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/42.png 1258w\" sizes=\"(max-width: 1001px) 100vw, 1001px\" \/><figcaption class=\"wp-element-caption\"><em>Graph of HawkEye builder<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>I don&#8217;t want to repeat myself too much, but when comparing the versions we&#8217;ve seen and extracted with the ones we created ourselves, they function exactly the same\u2014same injections, persistence, data theft (or whatever was chosen in the builder). Therefore, in telemetry, we won\u2019t find any surprises, as you can see below.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"619\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/43-1024x619.png\" alt=\"\" class=\"wp-image-9880\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/43-1024x619.png 1024w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/43-300x181.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/43-768x465.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/43-1536x929.png 1536w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/43-370x224.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/43-270x163.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/43-740x448.png 740w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/43.png 1845w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Graph of HawkEye builded execution<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>After analyzing all of this, I hope you are as impressed as I am by the sheer versatility and longevity HawkEye has displayed over the decades. It\u2019s truly a tremendously powerful and easy-to-use tool that, unfortunately, we will continue to see in security incidents from actors of all types.<\/p>\n\n\n\n<p>Finally, I would like to thank you for reading this analysis and for supporting me.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">About ANY.RUN&nbsp;&nbsp;<\/h2>\n\n\n\n<p>ANY.RUN helps more than 500,000 cybersecurity professionals worldwide. Our <a href=\"https:\/\/any.run\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=hawkeye_analysis&amp;utm_term=131124&amp;utm_content=linktolanding\" target=\"_blank\" rel=\"noreferrer noopener\">interactive sandbox<\/a> simplifies malware analysis of threats that target both Windows and <a href=\"https:\/\/any.run\/cybersecurity-blog\/linux-malware-analysis-cases\/\" target=\"_blank\" rel=\"noreferrer noopener\">Linux<\/a> systems. Our threat intelligence products, <a href=\"https:\/\/any.run\/cybersecurity-blog\/introducing-any-run-threat-intelligence-lookup\/\" target=\"_blank\" rel=\"noreferrer noopener\">TI Lookup<\/a>, <a href=\"https:\/\/any.run\/cybersecurity-blog\/yara-search\/\" target=\"_blank\" rel=\"noreferrer noopener\">YARA Search<\/a> and <a href=\"https:\/\/any.run\/cybersecurity-blog\/ti-feeds-integration\/\" target=\"_blank\" rel=\"noreferrer noopener\">Feeds<\/a>, help you find <a href=\"https:\/\/any.run\/cybersecurity-blog\/indicators-of-compromise\/\" target=\"_blank\" rel=\"noreferrer noopener\">IOCs<\/a> or files to learn more about the threats and respond to incidents faster.&nbsp;&nbsp;<\/p>\n\n\n\n<p><strong>With ANY.RUN you can:<\/strong>&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Detect malware in seconds<\/li>\n\n\n\n<li>Interact with samples in real time<\/li>\n\n\n\n<li>Save time and money on sandbox setup and maintenance<\/li>\n\n\n\n<li>Record and study all aspects of malware behavior<\/li>\n\n\n\n<li>Collaborate with your team&nbsp;<\/li>\n\n\n\n<li>Scale as you need<\/li>\n<\/ul>\n\n\n\n<p><a href=\"https:\/\/any.run\/demo\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=hawkeye_analysis&amp;utm_term=131124&amp;utm_content=linktodemo\" target=\"_blank\" rel=\"noreferrer noopener\">Request free trial of ANY.RUN&#8217;s products \u2192<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Detection Opportunities<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>[TA0005][T1036] Duplication of original files in temporary paths<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>(WriteFile) C:\\Users\\&lt;user&gt;\\AppData\\Local\\Temp\\*.exe<\/li>\n\n\n\n<li>(WriteFile) C:\\Users\\&lt;user&gt;\\AppData\\Roaming\\*.exe<\/li>\n\n\n\n<li>(WriteFile) C:\\Users\\&lt;user&gt;\\AppData\\Roaming\\Microsoft\\Windows\\Templates\\*.exe<\/li>\n\n\n\n<li>(WriteFile) C:\\Users\\&lt;user&gt;\\AppData\\Local\\Temp\\System\\*.exe<\/li>\n\n\n\n<li>(WriteFile) C:\\Users\\&lt;user&gt;\\Music\\*.exe<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>[TA0003][T1053] Scheduled Task persistence<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>schtasks.exe \/Create \/TN &#8220;&lt;Path&gt;\\&lt;TaskName&gt;&#8221; \/XML &#8220;&lt;TempPath&gt;\\&lt;File&gt;&#8221;<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>[TA0003][T1547.001] Registry Run Keys persistence<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>(Registry) HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run&nbsp;<\/li>\n\n\n\n<li>(ValueData) &lt;Path Used on [TA0005][T1036] Duplication of original files in temporary paths&gt;<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>[TA0005][T1055.012] Process injection on vbc or itself<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>From file in temporary folder &gt; injection &gt; vbc.exe&nbsp;<\/li>\n\n\n\n<li>From file in temporary folder &gt; injection &gt; Other unidentified file in same temporary path<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>[TA0009][T1074.001] Save stolen info on txt files<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\\vbc.exe \/stext &#8220;*\\AppData\\Local\\Temp\\holdermail.txt&#8221;<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>[TA0009][T1113] Saving screenshots of the victim&#8217;s screen<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>(WriteFile \/ Regex NameFile) screenshot\\d{1}.jpeg<\/li>\n\n\n\n<li><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>[TA0006][T1555] Queries to browser paths or third-party software to obtain user account information<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>(Registry\/Path query) Web Data | login data | Accounts | Profiles&nbsp; | \\Cookies\\index.dat | profiles.ini | *.oeaccount<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>TTPs<\/strong><\/h3>\n\n\n\n[TA0001][T1566.001] SpearPhishing<\/p>\n\n\n\n[TA0002][T1204] User Execution<\/p>\n\n\n\n[TA0003][T1053] Scheduled Task\/Job<\/p>\n\n\n\n[TA0003][T1547.001] Registry Run Keys \/ Startup Folder<\/p>\n\n\n\n[TA0005][T1112] Modify Registry<\/p>\n\n\n\n[TA0005][T1564.001] Hidden Files and Directories<\/p>\n\n\n\n[TA0005][T1055] Process Injection<\/p>\n\n\n\n[TA0005][T1562] Impair Defenses<\/p>\n\n\n\n[TA0005][T1027] Obfuscated Files or Information<\/p>\n\n\n\n[TA0005][T1140] Deobfuscate\/Decode Files or Information<\/p>\n\n\n\n[TA0005][T1036] Masquerading<\/p>\n\n\n\n[TA0005][T1497] Virtualization\/Sandbox Evasion<\/p>\n\n\n\n[TA0006][T1552] Unsecured Credentials<\/p>\n\n\n\n[TA0006][T1555] Credentials from Password Stores<\/p>\n\n\n\n[TA0007][T1087] Account Discovery<\/p>\n\n\n\n[TA0007][T1518.001] Security Software Discovery<\/p>\n\n\n\n[TA0007][T1033] System Owner\/User Discovery<\/p>\n\n\n\n[TA0007][T1012] Query Registry<\/p>\n\n\n\n[TA0007][T1016] System Network Configuration Discovery<\/p>\n\n\n\n[TA0007][T1518] Software Discovery<\/p>\n\n\n\n[TA0007][T1082] System Information Discovery<\/p>\n\n\n\n[TA0009][T1074.001] Local Data Staging<\/p>\n\n\n\n[TA0009][T1005] Data from Local System<\/p>\n\n\n\n[TA0009][T1560] Archive Collected Data<\/p>\n\n\n\n[TA0009][T1114] Email Collection<\/p>\n\n\n\n[TA0009][T1115] Clipboard Data<\/p>\n\n\n\n[TA0009][T1113] Screen Capture<\/p>\n\n\n\n[TA0011][T1105] Ingress Tool Transfer<\/p>\n\n\n\n[TA0011][T1071] Application Layer Protocol<\/p>\n\n\n\n[TA0011][T1571] Non-Standard Port<\/p>\n\n\n\n[TA0042][T1583.008] Malvertising<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>IOCs<\/strong><\/h3>\n\n\n\n<p>60fabd1a2509b59831876d5e2aa71a6b<\/p>\n\n\n\n<p>defc51f31f6c4fa89cc6a39a62d8a08f<\/p>\n\n\n\n<p>dea59d578e0e64728780fb67dde7d96d<\/p>\n\n\n\n<p>040058f70ffdee6398f7b64ae1ea46d3<\/p>\n\n\n\n<p>e651dca5c850451cdba7f25cbb4134e7<\/p>\n\n\n\n<p>de823ba5d67de8682e6d7b8b472dbbcb<\/p>\n\n\n\n<p>25a2d98dfcf6a12ea6459882c56aa2e0<\/p>\n\n\n\n<p>179b219afa2ac15b14affd399273148b<\/p>\n\n\n\n<p>38a3cb547a0a19a61534792f572f08b0<\/p>\n\n\n\n<p>addcd85e0126e63e46da09eb8ea97120<\/p>\n\n\n\n<p>0a2f6501a36c1b13532139e3c1843109<\/p>\n\n\n\n<p>addcd85e0126e63e46da09eb8ea97120<\/p>\n\n\n\n<p>06916c9505da82f63a73768c6f336192<\/p>\n\n\n\n<p>ab264deb2563dc4df8b281b18e0861ba<\/p>\n\n\n\n<p>66[.]147[.]236[.]46<\/p>\n\n\n\n<p>204[.]141[.]42[.]56<\/p>\n\n\n\n<p>129[.]204[.]194[.]84<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Editor\u2019s note: The current article is authored by the threat researcher Aaron Jornet Sales, also known as RexorVc0. You can find him on\u00a0X and LinkedIn.\u00a0 HawkEye, also known as PredatorPain (Predator Pain), is a malware categorized as a keylogger, but over the years, it has adopted new functionalities that align it with the capabilities of [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":9819,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[57,10,34,40],"class_list":["post-9801","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-malware-analysis","tag-anyrun","tag-cybersecurity","tag-malware-analysis","tag-malware-behavior"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.10 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>HawkEye Malware: Technical Analysis - ANY.RUN&#039;s Cybersecurity Blog<\/title>\n<meta name=\"description\" content=\"Read a detailed technical analysis of the HawkEye keylogger malware to discover how it operates and learn about its key attack stages.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/any.run\/cybersecurity-blog\/hawkeye-malware-technical-analysis\/\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Aaron Jornet Sales (RexorVc0)\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"21 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/any.run\/cybersecurity-blog\/hawkeye-malware-technical-analysis\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/any.run\/cybersecurity-blog\/hawkeye-malware-technical-analysis\/\"},\"author\":{\"name\":\"Aaron Jornet Sales (RexorVc0)\",\"@id\":\"https:\/\/any.run\/\"},\"headline\":\"HawkEye Malware: Technical Analysis\",\"datePublished\":\"2024-11-13T10:54:29+00:00\",\"dateModified\":\"2024-11-18T08:29:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/any.run\/cybersecurity-blog\/hawkeye-malware-technical-analysis\/\"},\"wordCount\":2994,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/any.run\/\"},\"keywords\":[\"ANYRUN\",\"cybersecurity\",\"malware analysis\",\"malware behavior\"],\"articleSection\":[\"Malware Analysis\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/any.run\/cybersecurity-blog\/hawkeye-malware-technical-analysis\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/any.run\/cybersecurity-blog\/hawkeye-malware-technical-analysis\/\",\"url\":\"https:\/\/any.run\/cybersecurity-blog\/hawkeye-malware-technical-analysis\/\",\"name\":\"HawkEye Malware: Technical Analysis - ANY.RUN&#039;s Cybersecurity Blog\",\"isPartOf\":{\"@id\":\"https:\/\/any.run\/\"},\"datePublished\":\"2024-11-13T10:54:29+00:00\",\"dateModified\":\"2024-11-18T08:29:41+00:00\",\"description\":\"Read a detailed technical analysis of the HawkEye keylogger malware to discover how it operates and learn about its key attack stages.\",\"breadcrumb\":{\"@id\":\"https:\/\/any.run\/cybersecurity-blog\/hawkeye-malware-technical-analysis\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/any.run\/cybersecurity-blog\/hawkeye-malware-technical-analysis\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/any.run\/cybersecurity-blog\/hawkeye-malware-technical-analysis\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/any.run\/cybersecurity-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Malware Analysis\",\"item\":\"https:\/\/any.run\/cybersecurity-blog\/category\/malware-analysis\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"HawkEye Malware: Technical Analysis\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/any.run\/\",\"url\":\"https:\/\/any.run\/\",\"name\":\"ANY.RUN&#039;s Cybersecurity Blog\",\"description\":\"Cybersecurity Blog covers topics for experienced professionals as well as for those new to it.\",\"publisher\":{\"@id\":\"https:\/\/any.run\/\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/any.run\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/any.run\/\",\"name\":\"ANY.RUN\",\"url\":\"https:\/\/any.run\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/any.run\/\",\"url\":\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2020\/08\/ANYRUN-Icon.svg\",\"contentUrl\":\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2020\/08\/ANYRUN-Icon.svg\",\"width\":1,\"height\":1,\"caption\":\"ANY.RUN\"},\"image\":{\"@id\":\"https:\/\/any.run\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/www.any.run\/\",\"https:\/\/twitter.com\/anyrun_app\",\"https:\/\/www.linkedin.com\/company\/30692044\",\"https:\/\/www.youtube.com\/channel\/UCOgCPho7lzmH7m6fPNlukrQ\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/any.run\/\",\"name\":\"Aaron Jornet Sales (RexorVc0)\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/any.run\/\",\"url\":\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/rexor.png\",\"contentUrl\":\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/rexor.png\",\"caption\":\"Aaron Jornet Sales (RexorVc0)\"},\"description\":\"I am a threat researcher who spends his working time analysing TTPs and malwares of criminal groups and APTs and in my spare time, I usually focus on the same kind of stuff. Aaron's website\",\"url\":\"#molongui-disabled-link\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"HawkEye Malware: Technical Analysis - ANY.RUN&#039;s Cybersecurity Blog","description":"Read a detailed technical analysis of the HawkEye keylogger malware to discover how it operates and learn about its key attack stages.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/any.run\/cybersecurity-blog\/hawkeye-malware-technical-analysis\/","twitter_misc":{"Written by":"Aaron Jornet Sales (RexorVc0)","Est. reading time":"21 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/any.run\/cybersecurity-blog\/hawkeye-malware-technical-analysis\/#article","isPartOf":{"@id":"https:\/\/any.run\/cybersecurity-blog\/hawkeye-malware-technical-analysis\/"},"author":{"name":"Aaron Jornet Sales (RexorVc0)","@id":"https:\/\/any.run\/"},"headline":"HawkEye Malware: Technical Analysis","datePublished":"2024-11-13T10:54:29+00:00","dateModified":"2024-11-18T08:29:41+00:00","mainEntityOfPage":{"@id":"https:\/\/any.run\/cybersecurity-blog\/hawkeye-malware-technical-analysis\/"},"wordCount":2994,"commentCount":0,"publisher":{"@id":"https:\/\/any.run\/"},"keywords":["ANYRUN","cybersecurity","malware analysis","malware behavior"],"articleSection":["Malware Analysis"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/any.run\/cybersecurity-blog\/hawkeye-malware-technical-analysis\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/any.run\/cybersecurity-blog\/hawkeye-malware-technical-analysis\/","url":"https:\/\/any.run\/cybersecurity-blog\/hawkeye-malware-technical-analysis\/","name":"HawkEye Malware: Technical Analysis - ANY.RUN&#039;s Cybersecurity Blog","isPartOf":{"@id":"https:\/\/any.run\/"},"datePublished":"2024-11-13T10:54:29+00:00","dateModified":"2024-11-18T08:29:41+00:00","description":"Read a detailed technical analysis of the HawkEye keylogger malware to discover how it operates and learn about its key attack stages.","breadcrumb":{"@id":"https:\/\/any.run\/cybersecurity-blog\/hawkeye-malware-technical-analysis\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/any.run\/cybersecurity-blog\/hawkeye-malware-technical-analysis\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/any.run\/cybersecurity-blog\/hawkeye-malware-technical-analysis\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/any.run\/cybersecurity-blog\/"},{"@type":"ListItem","position":2,"name":"Malware Analysis","item":"https:\/\/any.run\/cybersecurity-blog\/category\/malware-analysis\/"},{"@type":"ListItem","position":3,"name":"HawkEye Malware: Technical Analysis"}]},{"@type":"WebSite","@id":"https:\/\/any.run\/","url":"https:\/\/any.run\/","name":"ANY.RUN&#039;s Cybersecurity Blog","description":"Cybersecurity Blog covers topics for experienced professionals as well as for those new to it.","publisher":{"@id":"https:\/\/any.run\/"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/any.run\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/any.run\/","name":"ANY.RUN","url":"https:\/\/any.run\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/any.run\/","url":"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2020\/08\/ANYRUN-Icon.svg","contentUrl":"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2020\/08\/ANYRUN-Icon.svg","width":1,"height":1,"caption":"ANY.RUN"},"image":{"@id":"https:\/\/any.run\/"},"sameAs":["https:\/\/www.facebook.com\/www.any.run\/","https:\/\/twitter.com\/anyrun_app","https:\/\/www.linkedin.com\/company\/30692044","https:\/\/www.youtube.com\/channel\/UCOgCPho7lzmH7m6fPNlukrQ"]},{"@type":"Person","@id":"https:\/\/any.run\/","name":"Aaron Jornet Sales (RexorVc0)","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/any.run\/","url":"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/rexor.png","contentUrl":"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/11\/rexor.png","caption":"Aaron Jornet Sales (RexorVc0)"},"description":"I am a threat researcher who spends his working time analysing TTPs and malwares of criminal groups and APTs and in my spare time, I usually focus on the same kind of stuff. Aaron's website","url":"#molongui-disabled-link"}]}},"_links":{"self":[{"href":"https:\/\/any.run\/cybersecurity-blog\/wp-json\/wp\/v2\/posts\/9801"}],"collection":[{"href":"https:\/\/any.run\/cybersecurity-blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/any.run\/cybersecurity-blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/any.run\/cybersecurity-blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/any.run\/cybersecurity-blog\/wp-json\/wp\/v2\/comments?post=9801"}],"version-history":[{"count":32,"href":"https:\/\/any.run\/cybersecurity-blog\/wp-json\/wp\/v2\/posts\/9801\/revisions"}],"predecessor-version":[{"id":9929,"href":"https:\/\/any.run\/cybersecurity-blog\/wp-json\/wp\/v2\/posts\/9801\/revisions\/9929"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/any.run\/cybersecurity-blog\/wp-json\/wp\/v2\/media\/9819"}],"wp:attachment":[{"href":"https:\/\/any.run\/cybersecurity-blog\/wp-json\/wp\/v2\/media?parent=9801"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/any.run\/cybersecurity-blog\/wp-json\/wp\/v2\/categories?post=9801"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/any.run\/cybersecurity-blog\/wp-json\/wp\/v2\/tags?post=9801"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}