{"id":19686,"date":"2022-07-26T10:01:09","date_gmt":"2022-07-26T18:01:09","guid":{"rendered":"https:\/\/www.palada.net\/index.php\/2022\/07\/26\/news-13419\/"},"modified":"2022-07-26T10:01:09","modified_gmt":"2022-07-26T18:01:09","slug":"news-13419","status":"publish","type":"post","link":"http:\/\/www.palada.net\/index.php\/2022\/07\/26\/news-13419\/","title":{"rendered":"Malicious IIS extensions quietly open persistent backdoors into servers"},"content":{"rendered":"<p><strong>Credit to Author: Katie McCafferty| Date: Tue, 26 Jul 2022 17:00:00 +0000<\/strong><\/p>\n<p>Attackers are increasingly leveraging Internet Information Services (IIS) extensions as covert backdoors into servers, which hide deep in target environments and provide a durable persistence mechanism for attackers. While prior research has been published on specific incidents and variants, little is generally known about how attackers leverage the IIS platform as a backdoor.<\/p>\n<p>Malicious IIS extensions are less frequently encountered in attacks against servers, with attackers often only using script <a href=\"https:\/\/www.microsoft.com\/security\/blog\/2021\/02\/11\/web-shell-attacks-continue-to-rise\/\">web shells<\/a> as the first stage payload. This leads to a relatively lower detection rate for malicious IIS extensions compared to script web shells. IIS backdoors are also harder to detect since they mostly reside in the same directories as legitimate modules used by target applications, and they follow the same code structure as clean modules. In most cases, the actual backdoor logic is minimal and cannot be considered malicious without a broader understanding of how legitimate IIS extensions work, which also makes it difficult to determine the source of infection.<\/p>\n<p>Typically, attackers first exploit a critical vulnerability in the hosted application for initial access before dropping a script web shell as the first stage payload. At a later point in time, the attackers then install an IIS backdoor to provide highly covert and persistent access to the server. Attackers can also install customized IIS modules to fit their purposes, as we observed in a campaign targeting Exchange servers between January and May 2022, as well as in our prior research on the custom IIS backdoors <a href=\"https:\/\/www.microsoft.com\/security\/blog\/2021\/11\/08\/threat-actor-dev-0322-exploiting-zoho-manageengine-adselfservice-plus\/\">ScriptModule.dll<\/a> and <a href=\"https:\/\/www.microsoft.com\/security\/blog\/2020\/12\/18\/analyzing-solorigate-the-compromised-dll-file-that-started-a-sophisticated-cyberattack-and-how-microsoft-defender-helps-protect\/\">App_Web_logoimagehandler.ashx.b6031896.dll<\/a>. Once registered with the target application, the backdoor can monitor incoming and outgoing requests and perform additional tasks, such as running remote commands or dumping credentials in the background as the user authenticates to the web application.<\/p>\n<p>As we expect attackers to continue to increasingly leverage IIS backdoors, it\u2019s vital that incident responders understand the basics of how these attacks function to successfully identify and defend against them. Organizations can further improve their defenses with <a href=\"https:\/\/www.microsoft.com\/security\/business\/threat-protection\/microsoft-365-defender\">Microsoft 365 Defender<\/a>, whose protection capabilities are informed by research like this and our unique visibility into server attacks and compromise. With critical protection features like <a href=\"https:\/\/docs.microsoft.com\/microsoft-365\/security\/defender-vulnerability-management\/defender-vulnerability-management?view=o365-worldwide\">threat and vulnerability management<\/a> and antivirus capabilities, Microsoft 365 Defender provides organizations with a comprehensive solution that coordinates protection across domains, spanning email, identities, cloud, and endpoints.<\/p>\n<p>In this blog post, we detail how IIS extensions work and provide insight into how they are being leveraged by attackers as backdoors. We also share some of our observations on the IIS threat landscape over the last year to help defenders identify and protect against this threat and prepare the larger security community for any increased sophistication. More specifically, the blog covers the following topics:<\/p>\n<ul>\n<li><a href=\"#Understanding-IIS\">Understanding IIS extensions<\/a><\/li>\n<li><a href=\"#Attack-flow\">Attack flow using a custom IIS backdoor<\/a>\n<ul>\n<li><a href=\"#Command-runs\">Command runs<\/a><\/li>\n<li><a href=\"#Credential-access\">Credential access<\/a><\/li>\n<li><a href=\"#Remote-access\">Remote access<\/a><\/li>\n<li><a href=\"#Exfiltration\">Exfiltration<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#Types-of\">Types of IIS backdoors<\/a>\n<ul>\n<li><a href=\"#Web-shell-based\">Web shell-based variants<\/a><\/li>\n<li><a href=\"#Open-source\">Open-source variants<\/a><\/li>\n<li><a href=\"#IIS-handlers\">IIS handlers<\/a><\/li>\n<li><a href=\"#Credential-stealers\">Credential stealers<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#Improving-defenses\">Improving defenses against server compromise<\/a><\/li>\n<\/ul>\n<h2 id=\"Understanding-IIS\">Understanding IIS extensions<\/h2>\n<p>IIS is a flexible, general purpose web server that has been a core part of the Windows platform for many years now. As an easy-to-manage, modular, and extensible platform for hosting websites, services, and applications, IIS serves critical business logic for numerous organizations. The modular architecture of IIS allows users to extend and customize web servers according to their needs. These extensions can be in the form of native (C\/C++) and managed (C#, VB.NET) code structures, with the latter being our focus on this blog post. The extensions can further be categorized as modules and handlers.<\/p>\n<p>The IIS pipeline is a series of extensible objects that are initiated by the ASP.NET runtime to process a request. IIS modules and handlers are .NET components that serve as the main points of extensibility in the pipeline. Each request is processed by multiple IIS modules before being processed by a single IIS handler. Like a set of building blocks, modules and handlers are added to provide the desired functionality for the target application. In addition, handlers can be configured to respond to specific attributes in the request such a URL, file extension, and HTTP method. For example, <em>Aspnet_isapi.dll <\/em>is a pre-configured IIS handler for common <em>.aspx<\/em> extensions.<\/p>\n<h3 id=\"Creating-custom\">Creating custom managed IIS modules<\/h3>\n<p>To create a managed IIS module, the code must implement the <em>IHttpModule<\/em> interface. The <em>IHttpModule<\/em> interface has two methods with the following signatures: <em>Init() <\/em>and<em> Dispose()<\/em>.<\/p>\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"229\" src=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig1n-IIS-module-skeleton-1024x229.png\" alt=\"Graphical user interface, text, application \" class=\"wp-image-119156\" srcset=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig1n-IIS-module-skeleton-1024x229.png 1024w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig1n-IIS-module-skeleton-300x67.png 300w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig1n-IIS-module-skeleton-768x172.png 768w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig1n-IIS-module-skeleton-1536x344.png 1536w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig1n-IIS-module-skeleton.png 1800w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em>Figure 1. IIS module skeleton<\/em><\/figcaption><\/figure>\n<p>Inside <em>Init()<\/em>, the module can synchronize with any number of <a href=\"https:\/\/docs.microsoft.com\/troubleshoot\/developer\/webapps\/aspnet\/development\/http-modules-handlers\">HTTP events available<\/a> in the request pipeline, listed here in sequential order:<\/p>\n<ul>\n<li>BeginRequest<\/li>\n<li>AuthenticateRequest<\/li>\n<li>AuthorizeRequest<\/li>\n<li>ResolveRequestCache<\/li>\n<li>AcquireRequestState<\/li>\n<li>PreRequestHandlerExecute<\/li>\n<li>PostRequestHandlerExecute<\/li>\n<li>ReleaseRequestState<\/li>\n<li>UpdateRequestCache<\/li>\n<li>EndRequest<\/li>\n<li>PreSendRequestHeaders<\/li>\n<li>PreSendRequestContent<\/li>\n<\/ul>\n<p>The newly created extension should then be mapped with the target application to complete the registration. Generally, there are several methods that can be used to <a href=\"https:\/\/docs.microsoft.com\/iis\/get-started\/introduction-to-iis\/iis-modules-overview\">map managed modules<\/a> for legitimate purposes. On the other hand, we observed that attackers used the following techniques to register malicious IIS extensions during attacks:<\/p>\n<p><strong>Register with global assembly cache (GAC) PowerShell API:<\/strong> Every device with Common Language Runtime (CLR) hosts a device-wide cache called the global assembly cache (GAC). The GAC stores assemblies specifically designated to be shared by several applications on the device. <em>GacInstall()<\/em> is a PowerShell API to add modules into the global cache. Once installed, the module is available under the path <em>%windir%Microsoft.NETassembly <\/em>and is mapped to IIS (<em>w3wp.exe<\/em>) using <em>appcmd.exe<\/em>.<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"129\" src=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig2-Attacker-command-using-the-GAC-PowerShell-API-1024x129.png\" alt=\"Text of attacker's command\" class=\"wp-image-119066\" srcset=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig2-Attacker-command-using-the-GAC-PowerShell-API-1024x129.png 1024w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig2-Attacker-command-using-the-GAC-PowerShell-API-300x38.png 300w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig2-Attacker-command-using-the-GAC-PowerShell-API-768x97.png 768w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig2-Attacker-command-using-the-GAC-PowerShell-API-1536x193.png 1536w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig2-Attacker-command-using-the-GAC-PowerShell-API.png 1890w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em>Figure 2. Attacker command using the GAC PowerShell API<\/em><\/figcaption><\/figure>\n<p><strong>Register using <em>appcmd.exe<\/em>: <\/strong><em>Appcmd.exe<\/em> is the single command line tool for managing IIS. All critical aspects, such as adding or removing modules and handlers, can be performed using the utility. In this case, the attackers drop the malicious extension in the target application\u2019s <em>\/bin<\/em> folder and map it using the <em>add module<\/em> command.<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"76\" src=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig3-Attacker-command-using-appcmd.exe_-1024x76.png\" alt=\"Text of attacker's command\" class=\"wp-image-119069\" srcset=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig3-Attacker-command-using-appcmd.exe_-1024x76.png 1024w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig3-Attacker-command-using-appcmd.exe_-300x22.png 300w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig3-Attacker-command-using-appcmd.exe_-768x57.png 768w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig3-Attacker-command-using-appcmd.exe_-1536x114.png 1536w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig3-Attacker-command-using-appcmd.exe_.png 1890w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em>Figure 3. Attacker command using appcmd.exe<\/em><\/figcaption><\/figure>\n<p><strong>Register using <em>gacutil.exe<\/em>: <\/strong><em>Gacutil.exe<\/em> is a Visual Studio shipped .NET GAC utility. The tool allows the user to view and manipulate the contents of the GAC, including installing new modules using the <em>-I<\/em> option.<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"61\" src=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig4-Attacker-command-using-gacutil.exe_-1024x61.png\" alt=\"Text of attacker's command\" class=\"wp-image-119072\" srcset=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig4-Attacker-command-using-gacutil.exe_-1024x61.png 1024w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig4-Attacker-command-using-gacutil.exe_-300x18.png 300w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig4-Attacker-command-using-gacutil.exe_-768x46.png 768w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig4-Attacker-command-using-gacutil.exe_-1536x91.png 1536w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig4-Attacker-command-using-gacutil.exe_.png 1890w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em>Figure 4. Attacker command using gacutil.exe<\/em><\/figcaption><\/figure>\n<p><strong>Register using <em>web.config<\/em>:<\/strong> After dropping the module in the application\u2019s <em>\/bin<\/em> folder, attackers can also edit the <em>web.config<\/em> of the target application or the global config file, <em>applicationHost.config<\/em>, to register the module.<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"114\" src=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig5-Malicious-web.config-entry-1024x114.png\" alt=\"Text of attacker's command\" class=\"wp-image-119075\" srcset=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig5-Malicious-web.config-entry-1024x114.png 1024w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig5-Malicious-web.config-entry-300x33.png 300w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig5-Malicious-web.config-entry-768x85.png 768w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig5-Malicious-web.config-entry-1536x171.png 1536w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig5-Malicious-web.config-entry.png 1890w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em>Figure 5. Malicious web.config entry<\/em><\/figcaption><\/figure>\n<p>Upon successful registration, the module is visible inside the IIS manager application.<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"253\" src=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig6-Installed-module-visible-in-the-list-1024x253.png\" alt=\"IIS manager app with installed module\" class=\"wp-image-119078\" srcset=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig6-Installed-module-visible-in-the-list-1024x253.png 1024w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig6-Installed-module-visible-in-the-list-300x74.png 300w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig6-Installed-module-visible-in-the-list-768x190.png 768w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig6-Installed-module-visible-in-the-list-1536x379.png 1536w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig6-Installed-module-visible-in-the-list.png 1831w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em>Figure 6. Installed module visible in the list<\/em><\/figcaption><\/figure>\n<h2 id=\"Attack-flow\">Attack flow using a custom IIS backdoor<\/h2>\n<p>Between January and May 2022, our IIS-related detections picked up an interesting campaign targeting Microsoft Exchange servers. Web shells were dropped in the path <em>%ExchangeInstallPath%FrontEndHttpProxyowaauth <\/em>via <a href=\"https:\/\/techcommunity.microsoft.com\/t5\/exchange-team-blog\/proxyshell-vulnerabilities-and-your-exchange-server\/ba-p\/2684705\">ProxyShell exploit<\/a>.<\/p>\n<p>After a period of doing reconnaissance, dumping credentials, and establishing a remote access method, the attackers installed a custom IIS backdoor called <em>FinanceSvcModel.dll <\/em>in the folder <em>C:inetpubwwwrootbin<\/em>. The backdoor had built-in capability to perform Exchange management operations, such as enumerating installed mailbox accounts and exporting mailboxes for exfiltration, as detailed below. &nbsp;<\/p>\n<h3 id=\"Command-runs\">Command runs<\/h3>\n<p><em>PowerShDLL<\/em> toolkit, an open-source project to run PowerShell without invoking <em>powershell.exe,<\/em> was used to run remote commands. The attacker avoided invoking common living-off-the-land binaries (LOLBins), such as <em>cmd.exe<\/em> or <em>powershell.exe<\/em> in the context of the Exchange application pool (<em>MSExchangeOWAAppPool<\/em>) to evade related detection logic.<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"62\" src=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig7-Using-PowerShDLL-to-run-remote-commands-1024x62.png\" alt=\"Attacker's command via PowerShDLL toolkit\" class=\"wp-image-119081\" srcset=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig7-Using-PowerShDLL-to-run-remote-commands-1024x62.png 1024w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig7-Using-PowerShDLL-to-run-remote-commands-300x18.png 300w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig7-Using-PowerShDLL-to-run-remote-commands-768x46.png 768w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig7-Using-PowerShDLL-to-run-remote-commands-1536x93.png 1536w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig7-Using-PowerShDLL-to-run-remote-commands.png 1890w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em>Figure 7. Using PowerShDLL to run remote commands<\/em><\/figcaption><\/figure>\n<h3 id=\"Credential-access\">Credential access<\/h3>\n<p>The attackers enabled WDigest registry settings, which forced the system to use WDigest protocol for authentication, resulting in <em>lsass.exe<\/em> retaining a copy of the user\u2019s plaintext password in memory. This change allowed the attackers to steal the actual password, not just the hash. Later, Mimikatz was run to dump local credentials and perform a <a href=\"https:\/\/attack.mitre.org\/techniques\/T1003\/\">DCSYNC<\/a> attack.<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"66\" src=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig8-Mimikatz-usage-1024x66.png\" alt=\"Attacker command to steal user's password\" class=\"wp-image-119084\" srcset=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig8-Mimikatz-usage-1024x66.png 1024w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig8-Mimikatz-usage-300x19.png 300w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig8-Mimikatz-usage-768x50.png 768w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig8-Mimikatz-usage-1536x99.png 1536w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig8-Mimikatz-usage.png 1890w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em>Figure 8. Mimikatz usage<\/em><\/figcaption><\/figure>\n<h3 id=\"Remote-access\">Remote access<\/h3>\n<p>The attackers used <em>plink.exe<\/em>, a command-line connection tool like SSH. The tool allowed the attackers to bypass network restrictions and remotely access the server through tunneled RDP traffic.<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"117\" src=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig9-Bypassing-network-restrictions-1024x117.png\" alt=\"Attacker command to bypass network restrictions\" class=\"wp-image-119087\" srcset=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig9-Bypassing-network-restrictions-1024x117.png 1024w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig9-Bypassing-network-restrictions-300x34.png 300w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig9-Bypassing-network-restrictions-768x88.png 768w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig9-Bypassing-network-restrictions-1536x176.png 1536w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig9-Bypassing-network-restrictions.png 1890w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em>Figure 9. Bypassing network restrictions<\/em><\/figcaption><\/figure>\n<h3 id=\"Exfiltration\">Exfiltration<\/h3>\n<p>The attacker invoked the IIS backdoor by sending a crafted <em>POST<\/em> request with a cookie <em>EX_TOKEN<\/em>. The module extracts the cookie value and initiates a mailbox export request with the supplied filter.<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"152\" src=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig10-Attacker-generated-POST-request-1024x152.png\" alt=\"Attacker's POST request\" class=\"wp-image-119099\" srcset=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig10-Attacker-generated-POST-request-1024x152.png 1024w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig10-Attacker-generated-POST-request-300x44.png 300w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig10-Attacker-generated-POST-request-768x114.png 768w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig10-Attacker-generated-POST-request-1536x228.png 1536w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig10-Attacker-generated-POST-request.png 1890w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em>Figure 10. Attacker-generated POST request<\/em><\/figcaption><\/figure>\n<p>The value decodes to: <strong><em>ep,06\/21\/2022,06\/21\/2022,C:WindowsWeb,Administrator<\/em><\/strong>, where <em>ep<\/em> is the command to initiate the mailbox export request with filters determining the start and end dates followed by the export path. The final command has the following syntax:<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"116\" src=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig11-Attacker-generated-mailbox-export-request-1024x116.png\" alt=\"Attacker's mailbox export request\" class=\"wp-image-119093\" srcset=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig11-Attacker-generated-mailbox-export-request-1024x116.png 1024w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig11-Attacker-generated-mailbox-export-request-300x34.png 300w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig11-Attacker-generated-mailbox-export-request-768x87.png 768w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig11-Attacker-generated-mailbox-export-request-1536x174.png 1536w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig11-Attacker-generated-mailbox-export-request.png 1890w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em>Figure 11. Attacker-generated mailbox export request<\/em><\/figcaption><\/figure>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"463\" src=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig12-Mailbox-export-code-snippet-1024x463.png\" alt=\"Code snippet\" class=\"wp-image-119096\" srcset=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig12-Mailbox-export-code-snippet-1024x463.png 1024w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig12-Mailbox-export-code-snippet-300x136.png 300w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig12-Mailbox-export-code-snippet-768x347.png 768w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig12-Mailbox-export-code-snippet-1536x694.png 1536w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig12-Mailbox-export-code-snippet.png 1800w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em>&nbsp;Figure 12. Mailbox export code snippet<\/em><\/figcaption><\/figure>\n<p>The table below details all the commands found in the backdoor:<\/p>\n<figure class=\"wp-block-table\">\n<table>\n<tbody>\n<tr>\n<td><strong>Command<\/strong><\/td>\n<td><strong>Description<\/strong><\/td>\n<\/tr>\n<tr>\n<td><em>test<\/em><\/td>\n<td>Attempts to load Exchange Management Shell (EMS)- <em>Add-PSSnapin Microsoft.Exchange.Management.Powershell.SnapIn<\/em><\/td>\n<\/tr>\n<tr>\n<td><em>box<\/em><\/td>\n<td>List all <em>UserPrincipalNames-<\/em> &nbsp;<em>foreach ($name in Get-Mailbox -ResultSize unlimited){ Write-Output $name.UserPrincipalName}<\/em><\/td>\n<\/tr>\n<tr>\n<td><em>ep<\/em><\/td>\n<td>Run <em>New-MailboxExportRequest<\/em> cmdlet with supplied mailbox name, start and end date, and export path as filters.<\/td>\n<\/tr>\n<tr>\n<td><em>gep<\/em><\/td>\n<td>Get the task ID associated with the export request<\/td>\n<\/tr>\n<tr>\n<td><em>ruh<\/em><\/td>\n<td>Tamper with Exchange logs<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<h2 id=\"Types-of\">Types of IIS backdoors<\/h2>\n<p>Reviewing the malicious managed (.NET) IIS extensions observed over the past year, we grouped these extensions based on various factors such as similar capabilities and sources of origin, as further detailed in the below sections.&nbsp;<\/p>\n<h3 id=\"Web-shell-based\">Web shell-based variants<\/h3>\n<p><a href=\"https:\/\/www.microsoft.com\/security\/blog\/2021\/02\/11\/web-shell-attacks-continue-to-rise\/\">Web shells<\/a> like China Chopper have been widely used in numerous targeted attacks. As China Chopper\u2019s usage increased over the years, so did the detections. As a result, the attackers evolved and added IIS module-based versions of these web shells that maintain the same functionality. The module uses the same <em>eval()<\/em> technique that\u2019s used in the script version for running the code. While most antivirus solutions would detect the one-liner web shell, such as <em>&lt; %@page language=js%&gt;&lt;%eval(request.item(&lt;password&gt;),&#8221;unsafe&#8221;);%&gt;<\/em>, embedding the same code in an IIS module generates lower detection rates.<\/p>\n<p>In the module version, the attacker-initiated <em>POST<\/em> request contains the code along with the arguments in parameters <em>z1<\/em> and <em>z2<\/em>, like the script-based version.<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"92\" src=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/MicrosoftTeams-image-1024x92.png\" alt=\"China Chopper code snippet\" class=\"wp-image-119183\" srcset=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/MicrosoftTeams-image-1024x92.png 1024w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/MicrosoftTeams-image-300x27.png 300w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/MicrosoftTeams-image-768x69.png 768w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/MicrosoftTeams-image-1536x138.png 1536w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/MicrosoftTeams-image-2048x184.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em>Figure 13. China chopper IIS module &#8211; version 1<\/em><\/figcaption><\/figure>\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig14-Attacker-generated-POST-data-version-1-1024x82.png\" alt=\"Attacker's POST request\" class=\"wp-image-119105\" width=\"840\" height=\"67\" srcset=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig14-Attacker-generated-POST-data-version-1-1024x82.png 1024w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig14-Attacker-generated-POST-data-version-1-300x24.png 300w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig14-Attacker-generated-POST-data-version-1-768x62.png 768w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig14-Attacker-generated-POST-data-version-1-1536x124.png 1536w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig14-Attacker-generated-POST-data-version-1.png 1890w\" sizes=\"auto, (max-width: 840px) 100vw, 840px\" \/><figcaption><em>Figure 14. Attacker generated POST data &#8211; version 1<\/em><\/figcaption><\/figure>\n<p>In a different version, the module has the backdoor logic hardcoded inside the DLL and only waits for parameters <em>z1 and z2<\/em>. The parameter <em>kfaero<\/em> has the command exposed as sequential alphabets from \u2018A-Q\u2019.<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"171\" src=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig15-China-chopper-IIS-module-version-2-1024x171.png\" alt=\"China Chopper code snippet\" class=\"wp-image-119108\" srcset=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig15-China-chopper-IIS-module-version-2-1024x171.png 1024w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig15-China-chopper-IIS-module-version-2-300x50.png 300w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig15-China-chopper-IIS-module-version-2-768x128.png 768w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig15-China-chopper-IIS-module-version-2-1536x256.png 1536w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig15-China-chopper-IIS-module-version-2.png 1800w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em>Figure 15. China chopper IIS module &#8211; version 2<\/em><\/figcaption><\/figure>\n<p>Like the script version, the IIS module has similar capabilities, such as listing and creating directories, downloading and uploading files, running queries using SQL adaptors, and running commands. To run commands, the attacker-initiated <em>POST<\/em> request contains the command \u201c<em>M\u201d<\/em> along with the arguments.<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"43\" src=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig16-An-example-of-an-attacker-generated-POST-data-\u2013-version-2-1024x43.png\" alt=\"Attacker's POST request\" class=\"wp-image-119111\" srcset=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig16-An-example-of-an-attacker-generated-POST-data-\u2013-version-2-1024x43.png 1024w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig16-An-example-of-an-attacker-generated-POST-data-\u2013-version-2-300x13.png 300w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig16-An-example-of-an-attacker-generated-POST-data-\u2013-version-2-768x33.png 768w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig16-An-example-of-an-attacker-generated-POST-data-\u2013-version-2-1536x65.png 1536w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig16-An-example-of-an-attacker-generated-POST-data-\u2013-version-2.png 1890w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em>Figure 16. An example of an attacker generated POST data \u2013 version 2<\/em><\/figcaption><\/figure>\n<p>Antsword is another popular web shell widely used in various targeted attacks. Custom IIS modules inspired from the web shell\u2019s code have been observed in the wild, which include similar architecture and capabilities. Interesting new features of these malicious modules include fileless execution of C# code and remote access via TCP socket connection.<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"278\" src=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig17-Antsword-IIS-module-code-snippet-1024x278.png\" alt=\"Antsword module code snippet\" class=\"wp-image-119114\" srcset=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig17-Antsword-IIS-module-code-snippet-1024x278.png 1024w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig17-Antsword-IIS-module-code-snippet-300x82.png 300w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig17-Antsword-IIS-module-code-snippet-768x209.png 768w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig17-Antsword-IIS-module-code-snippet-1536x417.png 1536w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig17-Antsword-IIS-module-code-snippet.png 1800w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em>Figure 17. Antsword IIS module code snippet<\/em><\/figcaption><\/figure>\n<p>Based on the request, the module can take one of the two code paths. In case of <em>\/server-status<\/em>, a socket connection is initiated from values in the custom header <em>Lhposzrp<\/em>.<\/p>\n<figure class=\"wp-block-table\">\n<table>\n<tbody>\n<tr>\n<td><strong>Command<\/strong><\/td>\n<td><strong>Description<\/strong><\/td>\n<\/tr>\n<tr>\n<td><em>FSoaij7_03Ip3QuzbIhvuilKIsoM9a48DTkvQKdwtKNA<\/em><\/td>\n<td>Socket connection<\/td>\n<\/tr>\n<tr>\n<td><em>8CDztbQb4fsQeU5AAuBs9OmRokoyFJ7F5Z<\/em><\/td>\n<td>Close connection<\/td>\n<\/tr>\n<tr>\n<td><em>31FKvk8VDcqZMA3iAq3944wjg<\/em><\/td>\n<td>Send data<\/td>\n<\/tr>\n<tr>\n<td><em>TU_LDzOsv<\/em><\/td>\n<td>Receive data<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p>For any other URL, the module follows a China Chopper-style architecture of commands, ranging from \u201c<em>A\u201d<\/em> through \u201c<em>R<\/em>\u201d. The additional \u201c<em>R<\/em>\u201d command allows the attackers to run C# code reflectively.<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"313\" src=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig18-Command-R-to-invoke-code-reflectively-1024x313.png\" alt=\"Command to invoke code reflectively\" class=\"wp-image-119117\" srcset=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig18-Command-R-to-invoke-code-reflectively-1024x313.png 1024w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig18-Command-R-to-invoke-code-reflectively-300x92.png 300w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig18-Command-R-to-invoke-code-reflectively-768x235.png 768w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig18-Command-R-to-invoke-code-reflectively-1536x470.png 1536w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig18-Command-R-to-invoke-code-reflectively.png 1800w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em>Figure 18. Command \u201cR\u201d to invoke code reflectively<\/em><\/figcaption><\/figure>\n<h3 id=\"Open-source\">Open-source variants<\/h3>\n<p>GitHub projects on creating backdoors for IIS have been available for some time now. Though mostly shared to educate the red team community, threat actors have also taken interest and lifted code from these projects. Using a public project that has been actively leveraged by attackers as an example, the original code includes the following capabilities:<\/p>\n<figure class=\"wp-block-table\">\n<table>\n<tbody>\n<tr>\n<td><strong>Command<\/strong><\/td>\n<td><strong>Implementation<\/strong><\/td>\n<\/tr>\n<tr>\n<td><em>cmd<\/em><\/td>\n<td>Run command via <em>cmd.exe \/c<\/em><\/td>\n<\/tr>\n<tr>\n<td><em>powershell<\/em><\/td>\n<td>Run powershell via <em>RunspaceFactory.CreateRunspace()<\/em><\/td>\n<\/tr>\n<tr>\n<td><em>shellcode<\/em><\/td>\n<td>Inject supplied shellcode into <em>userinit.exe<\/em><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p>In this case, the in-the-wild variants change the cookie names, keeping the rest of the code intact:<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"463\" src=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig19-Side-to-side-comparison-of-code-from-an-open-source-project-left-and-code-used-by-attackers-right-1024x463.png\" alt=\"Comparison of public GitHub project's code (left) to the attacker's modified code (right)\" class=\"wp-image-119120\" srcset=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig19-Side-to-side-comparison-of-code-from-an-open-source-project-left-and-code-used-by-attackers-right-1024x463.png 1024w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig19-Side-to-side-comparison-of-code-from-an-open-source-project-left-and-code-used-by-attackers-right-300x136.png 300w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig19-Side-to-side-comparison-of-code-from-an-open-source-project-left-and-code-used-by-attackers-right-768x347.png 768w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig19-Side-to-side-comparison-of-code-from-an-open-source-project-left-and-code-used-by-attackers-right-1536x695.png 1536w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig19-Side-to-side-comparison-of-code-from-an-open-source-project-left-and-code-used-by-attackers-right.png 1800w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em>Figure 19. Side to side comparison of code from an open-source project (left) and code used by attackers (right)<\/em><\/figcaption><\/figure>\n<p>On supplying a <em>whoami<\/em> command to the backdoor, the generated cookie has the following format:<\/p>\n<p><em>Cookie: BDUSS=P6zUsk\/1xJyW4PPufWsx5w==<\/em><\/p>\n<p>The backdoor responds with an AES encrypted blob wrapped in base64. The decoded output has the following format:<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"102\" src=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig20-Decoded-response-from-the-server-1024x102.png\" alt=\"Server's decoded response\" class=\"wp-image-119123\" srcset=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig20-Decoded-response-from-the-server-1024x102.png 1024w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig20-Decoded-response-from-the-server-300x30.png 300w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig20-Decoded-response-from-the-server-768x76.png 768w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig20-Decoded-response-from-the-server-1536x153.png 1536w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig20-Decoded-response-from-the-server.png 1890w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em>Figure 20. Decoded response from the server<\/em><\/figcaption><\/figure>\n<h3 id=\"IIS-handlers\">IIS handlers<\/h3>\n<p>As mentioned earlier, IIS handlers have the same visibility as modules into the request pipeline. Handlers can be configured to respond to certain extensions or requests. To create a managed IIS handler, the code must implement the&nbsp;<em>IHttpHandler<\/em>&nbsp;interface. The&nbsp;<em>IHttpHandler<\/em>&nbsp;interface has one method and one property with the following signatures:<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"195\" src=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig21-IIS-handler-skeleton-1024x195.png\" alt=\"IIS handler skeleton\" class=\"wp-image-119126\" srcset=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig21-IIS-handler-skeleton-1024x195.png 1024w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig21-IIS-handler-skeleton-300x57.png 300w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig21-IIS-handler-skeleton-768x146.png 768w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig21-IIS-handler-skeleton-1536x293.png 1536w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig21-IIS-handler-skeleton.png 1800w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em>Figure 21. IIS handler skeleton<\/em><\/figcaption><\/figure>\n<p>Handlers can be registered by directly editing the <em>web.config<\/em> file or using the <em>appcmd<\/em> utility. The handler config takes a few important fields like <em>path<\/em>, which specifies the URL or extensions the handler should respond to, and <em>verb<\/em>, which specifies the HTTP request type. In the example below, the handler only responds to image requests ending with a .gif extension:<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"114\" src=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig22-Malicious-web.config-entry-1024x114.png\" alt=\"Attacker's malicious entry\" class=\"wp-image-119129\" srcset=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig22-Malicious-web.config-entry-1024x114.png 1024w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig22-Malicious-web.config-entry-300x33.png 300w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig22-Malicious-web.config-entry-768x85.png 768w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig22-Malicious-web.config-entry-1536x171.png 1536w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig22-Malicious-web.config-entry.png 1890w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em>Figure 22. Malicious web.config entry<\/em><\/figcaption><\/figure>\n<p>The handler is visible in the IIS manager application once successfully installed:<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"377\" src=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig23-Installed-handler-visible-in-the-list-1024x377.png\" alt=\"Installed handler visible in IIS manager app\" class=\"wp-image-119132\" srcset=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig23-Installed-handler-visible-in-the-list-1024x377.png 1024w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig23-Installed-handler-visible-in-the-list-300x111.png 300w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig23-Installed-handler-visible-in-the-list-768x283.png 768w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig23-Installed-handler-visible-in-the-list-1536x566.png 1536w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig23-Installed-handler-visible-in-the-list.png 1683w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em>Figure 23. Installed handler visible in the list<\/em><\/figcaption><\/figure>\n<p>Most of the handlers analyzed were relatively simple, only including the capability to run commands:<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"333\" src=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig24-IIS-handler-running-commands-via-cmd.exe_-1024x333.png\" alt=\"Commands running via cmd.exe\" class=\"wp-image-119135\" srcset=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig24-IIS-handler-running-commands-via-cmd.exe_-1024x333.png 1024w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig24-IIS-handler-running-commands-via-cmd.exe_-300x98.png 300w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig24-IIS-handler-running-commands-via-cmd.exe_-768x250.png 768w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig24-IIS-handler-running-commands-via-cmd.exe_-1536x499.png 1536w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig24-IIS-handler-running-commands-via-cmd.exe_.png 1800w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em>Figure 24. IIS handler running commands via cmd.exe<\/em><\/figcaption><\/figure>\n<p>Interestingly, the response <em>Content-Type<\/em> is set to <em>image\/gif<\/em> or <em>image\/jpeg<\/em>, which presents a default image when browsing the image URL with the output hidden in <em>&lt;pre&gt;<\/em> tags. A possible reason for this could be to bypass network inspection since image files are generally considered non-malicious and are filtered and identified based on extensions.<\/p>\n<h3 id=\"Credential-stealers\">Credential stealers<\/h3>\n<p>This subset of modules monitors sign-in patterns in outgoing requests and dumps extracted credentials in an encrypted format. The stolen credentials allow the attackers to remain persistent in the environment, even if the primary backdoor is detected. &nbsp;<\/p>\n<p>The modules monitor for specific requests to determine a sign-in activity, such as \/<em>auth.owa<\/em> default URL for OWA application. On inspecting the request, the module dumps the credentials in a <em>.dat<\/em> file. The contents are encrypted using XOR with a hardcoded value and wrapped with base64 encoding. The below image depicts a decoded sample output:<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"81\" src=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig25-Sample-decrypted-entry-1024x81.png\" alt=\"Decrypted entry sample\" class=\"wp-image-119138\" srcset=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig25-Sample-decrypted-entry-1024x81.png 1024w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig25-Sample-decrypted-entry-300x24.png 300w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig25-Sample-decrypted-entry-768x61.png 768w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig25-Sample-decrypted-entry-1536x122.png 1536w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig25-Sample-decrypted-entry.png 1890w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em>Figure 25. Sample decrypted entry <\/em><\/figcaption><\/figure>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"339\" src=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig26-Backdoor-looking-for-OWA-sign-in-URL-1024x339.png\" alt=\"Backdoor code \" class=\"wp-image-119141\" srcset=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig26-Backdoor-looking-for-OWA-sign-in-URL-1024x339.png 1024w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig26-Backdoor-looking-for-OWA-sign-in-URL-300x99.png 300w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig26-Backdoor-looking-for-OWA-sign-in-URL-768x254.png 768w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig26-Backdoor-looking-for-OWA-sign-in-URL-1536x509.png 1536w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig26-Backdoor-looking-for-OWA-sign-in-URL.png 1800w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em>Figure 26. Backdoor looking for OWA sign-in URL<\/em><\/figcaption><\/figure>\n<p>In another variant, the module looks for common placeholder variables for passing credentials used in different ASP.Net applications. The dumped credentials are AES encrypted and wrapped with Base64 encoding, located in <em>%programdata%log.txt.<\/em><\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"236\" src=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig27-Backdoor-looking-for-common-credential-placeholder-variables-1024x236.png\" alt=\"Backdoor code \" class=\"wp-image-119144\" srcset=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig27-Backdoor-looking-for-common-credential-placeholder-variables-1024x236.png 1024w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig27-Backdoor-looking-for-common-credential-placeholder-variables-300x69.png 300w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig27-Backdoor-looking-for-common-credential-placeholder-variables-768x177.png 768w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig27-Backdoor-looking-for-common-credential-placeholder-variables-1536x353.png 1536w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig27-Backdoor-looking-for-common-credential-placeholder-variables.png 1800w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em>Figure 27. Backdoor looking for common credential placeholder variables<\/em><\/figcaption><\/figure>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"77\" src=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig28-Sample-decrypted-entry-1024x77.png\" alt=\"Decrypted entry sample\" class=\"wp-image-119147\" srcset=\"https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig28-Sample-decrypted-entry-1024x77.png 1024w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig28-Sample-decrypted-entry-300x23.png 300w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig28-Sample-decrypted-entry-768x58.png 768w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig28-Sample-decrypted-entry-1536x115.png 1536w, https:\/\/www.microsoft.com\/security\/blog\/uploads\/securityprod\/2022\/07\/Fig28-Sample-decrypted-entry.png 1890w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em>Figure 28. Sample decrypted entry<\/em><\/figcaption><\/figure>\n<h2 id=\"Improving-defenses\">Improving defenses against server compromise<\/h2>\n<p>As we expect to observe more attacks using IIS backdoors, organizations must ensure to follow security practices to help defend their servers.<\/p>\n<h3 id=\"Apply-the-latest\">Apply the latest security updates<\/h3>\n<p>Identify and remediate vulnerabilities or misconfigurations impacting servers. Deploy the latest security updates, especially for server components like Exchange as soon as they become available. Use&nbsp;<a href=\"https:\/\/docs.microsoft.com\/microsoft-365\/security\/defender-vulnerability-management\/defender-vulnerability-management?view=o365-worldwide\">Microsoft Defender Vulnerability Management<\/a>&nbsp;to audit these servers regularly for vulnerabilities, misconfigurations, and suspicious activity.<\/p>\n<h3 id=\"Keep-antivirus\">Keep antivirus and other protections enabled<\/h3>\n<p>It\u2019s critical to protect servers with&nbsp;<a href=\"https:\/\/docs.microsoft.com\/exchange\/antispam-and-antimalware\/windows-antivirus-software?view=exchserver-2019\">Windows antivirus software<\/a>&nbsp;and other security solutions like firewall protection and MFA.&nbsp;<a href=\"https:\/\/docs.microsoft.com\/microsoft-365\/security\/defender-endpoint\/cloud-protection-microsoft-antivirus-sample-submission\">Turn on cloud-delivered protection<\/a>&nbsp;and automatic sample submission in <a href=\"https:\/\/docs.microsoft.com\/microsoft-365\/security\/defender-endpoint\/microsoft-defender-antivirus-windows?view=o365-worldwide\">Microsoft Defender Antivirus<\/a> to use artificial intelligence and machine learning to quickly identify and stop new and unknown threats. Use&nbsp;<a href=\"https:\/\/docs.microsoft.com\/windows\/security\/threat-protection\/windows-defender-exploit-guard\/attack-surface-reduction-exploit-guard\">attack surface reduction rules<\/a>&nbsp;to automatically block behaviors like credential theft and suspicious use of PsExec and Windows Management Instrumentation (WMI). Turn on&nbsp;<a href=\"https:\/\/docs.microsoft.com\/microsoft-365\/security\/defender-endpoint\/prevent-changes-to-security-settings-with-tamper-protection?view=o365-worldwide\">tamper protection<\/a>&nbsp;features to prevent attackers from stopping security services.<\/p>\n<p>If you are worried that these security controls will affect performance or disrupt operations, engage with IT professionals to help determine the true impact of these settings. Security teams and IT professionals should collaborate on applying mitigations and appropriate&nbsp;<a href=\"https:\/\/docs.microsoft.com\/exchange\/antispam-and-antimalware\/windows-antivirus-software\">settings<\/a>.<\/p>\n<h3 id=\"Review-sensitive\">Review sensitive roles and groups<\/h3>\n<p>Review highly privileged groups like Administrators, Remote Desktop Users, and Enterprise Admins. Attackers add accounts to these groups to gain foothold on a server. Regularly review these groups for suspicious additions or removal. To identify Exchange-specific anomalies, review the list of users in sensitive roles such as&nbsp;<em>mailbox import export<\/em>&nbsp;and&nbsp;<em>Organization Management<\/em>&nbsp;using the<a>&nbsp;<\/a><a href=\"https:\/\/docs.microsoft.com\/powershell\/module\/exchange\/get-managementroleassignment\">Get-ManagementRoleAssignment&nbsp;<\/a>cmdlet in Exchange PowerShell.<\/p>\n<h3 id=\"Restrict-access\">Restrict access<\/h3>\n<p>Practice the principle of least-privilege and maintain good credential hygiene. Avoid the use of domain-wide, admin-level service accounts. Enforce&nbsp;<a href=\"https:\/\/docs.microsoft.com\/windows-server\/identity\/securing-privileged-access\/securing-privileged-access#2-just-in-time-local-admin-passwords\">strong randomized, just-in-time local administrator passwords<\/a>&nbsp;and enable MFA. Use tools like <a href=\"https:\/\/www.microsoft.com\/security\/business\/siem-and-xdr\/microsoft-defender-for-identity\">Microsoft Defender for Identity\u2019s<\/a>&nbsp;<a href=\"https:\/\/docs.microsoft.com\/defender-for-identity\/security-assessment-laps\">Local Administrator Password Solution (LAPS)<\/a>.<\/p>\n<p>Place access control list restrictions on virtual directories in IIS. Also, <a href=\"https:\/\/docs.microsoft.com\/Exchange\/manage-hybrid-exchange-recipients-with-management-tools\">remove the presence of on-premises Exchange servers<\/a> when only used for recipient management in Exchange Hybrid environments.<\/p>\n<h3 id=\"Prioritize-alerts\">Prioritize alerts<\/h3>\n<p>The distinctive patterns of server compromise aid in detecting malicious behaviors and inform security operations teams to quickly respond to the initial stages of compromise. Pay attention to and immediately investigate alerts indicating suspicious activities on servers. Catching attacks in the exploratory phase, the period in which attackers spend several days exploring the environment after gaining access, is key. Prioritize alerts related to processes such as&nbsp;<em>net.exe<\/em>,&nbsp;<em>cmd.exe<\/em>&nbsp;originating from&nbsp;<em>w3wp.exe<\/em>&nbsp;in general.<\/p>\n<h3 id=\"Inspect-config\">Inspect config file and bin folder<\/h3>\n<p>Regularly inspect <a href=\"https:\/\/docs.microsoft.com\/aspnet\/core\/host-and-deploy\/iis\/web-config\">web.config<\/a> of your target application and <a href=\"https:\/\/docs.microsoft.com\/iis\/get-started\/planning-your-iis-architecture\/introduction-to-applicationhostconfig\">ApplicationHost.config<\/a> to identify any suspicious additions, such as a handler for image files\u2014which is suspicious itself, if not outright malicious. Also, regularly scan installed paths like the application\u2019s <em>bin<\/em> directory and default GAC location. Regularly inspecting the list of installed modules using the <em>appcmd.exe<\/em> or <em>gacutil.exe<\/em> utilities is also advisable.<\/p>\n<\/p>\n<p><em><strong>Hardik Suri<\/strong><br \/>Microsoft 365 Defender Research Team<\/em><\/p>\n<\/p>\n<h2 id=\"Appendix\">Appendix<\/h2>\n<p>Microsoft Defender Antivirus detects these threats and related behaviors as the following malware: <\/p>\n<ul>\n<li>Backdoor:MSIL\/SuspIISModule.G!gen<\/li>\n<li>Backdoor:MSIL\/SuspIISModule.H!gen<\/li>\n<li>Backdoor:MSIL\/SuspIISModule.K!gen<\/li>\n<li>Backdoor:MSIL\/OWAStealer.B<\/li>\n<li>Backdoor:MSIL\/OWAStealer.C<\/li>\n<li>Behavior:Win32\/SuspGacInstall.B<\/li>\n<\/ul>\n<h3 id=\"Endpoint-detection\">Endpoint detection and response (EDR)<\/h3>\n<ul>\n<li>Suspicious IIS AppCmd Usage<\/li>\n<\/ul>\n<h3 id=\"Hunting-queries\">Hunting queries<\/h3>\n<p>To locate malicious activity related to suspicious IIS module registration, run the following queries:<\/p>\n<h4><strong>Suspicious IIS module registration<\/strong><\/h4>\n<pre class=\"wp-block-preformatted\">DeviceProcessEvents | where ProcessCommandLine has \u201cappcmd.exe add module\u201d | where InitiatingProcessParentFileName == \u201cw3wp.exe\u201d <\/pre>\n<pre class=\"wp-block-preformatted\">DeviceProcessEvents | where InitiatingProcessFileName == \u201cpowershell.exe\u201d |where ProcessCommandLine has \u201d system.enterpriseservices.internal.publish\u201d | where InitiatingProcessParentFileName == \u201cw3wp.exe\u201d <\/pre>\n<pre class=\"wp-block-preformatted\">DeviceProcessEvents |where ProcessCommandLine has \u201d \\gacutil.exe \/I\u201d | where InitiatingProcessParentFileName == \u201cw3wp.exe\u201d<\/pre>\n<h2 id=\"Indicators-of\">Indicators of compromise (IOCs)<\/h2>\n<figure class=\"wp-block-table\">\n<table>\n<tbody>\n<tr>\n<td><strong>File name<\/strong><\/td>\n<td><strong>SHA-256<\/strong><\/td>\n<\/tr>\n<tr>\n<td>HttpCompress.dll&nbsp;<\/td>\n<td>4446f5fce13dd376ebcad8a78f057c0662880fdff7fe2b51706cb5a2253aa569<\/td>\n<\/tr>\n<tr>\n<td>HttpSessionModule.dll&nbsp;<\/td>\n<td>1d5681ff4e2bc0134981e1c62ce70506eb0b6619c27ae384552fe3bdc904205c<\/td>\n<\/tr>\n<tr>\n<td>RewriterHttpModule.dll<\/td>\n<td>c5c39dd5c3c3253fffdd8fee796be3a9361f4bfa1e0341f021fba3dafcab9739<\/td>\n<\/tr>\n<tr>\n<td>Microsoft.Exchange.HttpProxy.<br \/>HttpUtilities.dll<\/td>\n<td>d820059577dde23e99d11056265e0abf626db9937fc56afde9b75223bf309eb0<\/td>\n<\/tr>\n<tr>\n<td>HttpManageMoudle.dll<\/td>\n<td>95721eedcf165cd74607f8a339d395b1234ff930408a46c37fa7822ddddceb80<\/td>\n<\/tr>\n<tr>\n<td>IIS_backdoor.dll<\/td>\n<td>e352ebd81a0d50da9b7148cf14897d66fd894e88eda53e897baa77b3cc21bd8a<\/td>\n<\/tr>\n<tr>\n<td>FinanceSvcModel.dll<\/td>\n<td>5da41d312f1b4068afabb87e40ad6de211fa59513deb4b94148c0abde5ee3bd5<\/td>\n<\/tr>\n<tr>\n<td>App_Web_system_web.ashx.dll<\/td>\n<td>290f8c0ce754078e27be3ed2ee6eff95c4e10b71690e25bbcf452481a4e09b9d<\/td>\n<\/tr>\n<tr>\n<td>App_Web_error.ashx.dll<\/td>\n<td>2996064437621bfecd159a3f71166e8c6468225e1c0189238068118deeabaa3d<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p>The post <a rel=\"nofollow\" href=\"https:\/\/www.microsoft.com\/security\/blog\/2022\/07\/26\/malicious-iis-extensions-quietly-open-persistent-backdoors-into-servers\/\">Malicious IIS extensions quietly open persistent backdoors into servers<\/a> appeared first on <a rel=\"nofollow\" href=\"https:\/\/www.microsoft.com\/security\/blog\">Microsoft Security Blog<\/a>.<\/p>\n<p><a href=\"https:\/\/www.microsoft.com\/security\/blog\/2022\/07\/26\/malicious-iis-extensions-quietly-open-persistent-backdoors-into-servers\/\" target=\"bwo\" >https:\/\/blogs.technet.microsoft.com\/mmpc\/feed\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p><strong>Credit to Author: Katie McCafferty| Date: Tue, 26 Jul 2022 17:00:00 +0000<\/strong><\/p>\n<p>Attackers are increasingly leveraging managed IIS extensions as covert backdoors into servers, providing a durable persistence mechanism for attacks. <\/p>\n<p>The post <a rel=\"nofollow\" href=\"https:\/\/www.microsoft.com\/security\/blog\/2022\/07\/26\/malicious-iis-extensions-quietly-open-persistent-backdoors-into-servers\/\">Malicious IIS extensions quietly open persistent backdoors into servers<\/a> appeared first on <a rel=\"nofollow\" href=\"https:\/\/www.microsoft.com\/security\/blog\">Microsoft Security Blog<\/a>.<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","footnotes":""},"categories":[10759,10378],"tags":[4500,27094,3764,22453,714],"class_list":["post-19686","post","type-post","status-publish","format-standard","hentry","category-microsoft","category-security","tag-cybersecurity","tag-iis","tag-malware","tag-microsoft-security-intelligence","tag-security"],"_links":{"self":[{"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/posts\/19686","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/comments?post=19686"}],"version-history":[{"count":0,"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/posts\/19686\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/media?parent=19686"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/categories?post=19686"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/tags?post=19686"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}