Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Adversaries may install malicious components that run on Internet Information Services (IIS) web servers to establish persistence.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 57% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 102% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 98% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 326% | 0% |
| case-15 | ✗→✓ | ▲ Improved | -22% | 0% |
> Sub-technique of: T1505
Adversaries may install malicious components that run on Internet Information Services (IIS) web servers to establish persistence. IIS provides several mechanisms to extend the functionality of the web servers. For example, Internet Server Application Programming Interface (ISAPI) extensions and filters can be installed to examine and/or modify incoming and outgoing IIS web requests. Extensions and filters are deployed as DLL files that export three functions: <code>Get{Extension/Filter}Version</code>, <code>Http{Extension/Filter}Proc</code>, and (optionally) <code>Terminate{Extension/Filter}</code>. IIS modules may also be installed to extend IIS web servers.
Adversaries may install malicious ISAPI extensions and filters to observe and/or modify traffic, execute commands on compromised machines, or proxy command and control traffic. ISAPI extensions and filters may have access to all IIS web requests and responses. For example, an adversary may abuse these mechanisms to modify HTTP responses in order to distribute malicious commands/content to previously comprised hosts.
Adversaries may also install malicious IIS modules to observe and/or modify traffic. IIS 7.0 introduced modules that provide the same unrestricted access to HTTP requests and responses as ISAPI extensions and filters. IIS modules can be written as a DLL that exports <code>RegisterModule</code>, or as a .NET application that interfaces with ASP.NET APIs to access IIS HTTP requests.
Platforms: Windows
The following tests are from Atomic Red Team and provide actionable ways to test this technique:
The following Atomic will utilize AppCmd.exe to install a new IIS Module. IIS must be installed. This atomic utilizes a DLL on disk, but to test further suspiciousness, compile and load IIS-Raid. A successful execution will install a module into IIS using AppCmd.exe. Managing and installing Modules Reference IIS Modules
Supported Platforms: windows
cmd%windir%\system32\inetsrv\appcmd.exe install module /name:#{module_name} /image:#{dll_path}
Dependencies:
The following Atomic will utilize PowerShell Cmdlet New-WebGlobalModule to install a new IIS Module. IIS must be installed. This atomic utilizes a DLL on disk, but to test further suspiciousness, compile and load IIS-Raid. A successful execution will install a module into IIS using New-WebGlobalModule. Managing IIS Modules with PowerShell IIS Modules
Supported Platforms: windows
powershellNew-WebGlobalModule -Name #{module_name} -Image #{dll_path}
Dependencies:
If Atomic Red Team tests are not applicable, manually verify the technique by:
Do not allow administrator accounts that have permissions to add IIS components to be used for day-to-day operations that may expose these permissions to potential adversaries and/or other unprivileged systems.
Restrict unallowed ISAPI extensions and filters from running by specifying a list of ISAPI extensions and filters that can run on IIS.
Regularly check installed IIS components to verify the integrity of the web server and identify if unexpected changes have been made.
Ensure IIS DLLs and binaries are signed by the correct application developers.
| Finding | Severity | Impact | | ----------------------------------- | -------- | ----------- | | IIS Components technique applicable | High | Persistence |
| CWE ID | Title | | ------- | ----------------------------- | | CWE-276 | Incorrect Default Permissions |
Other measured skills in the registry, with their headline benchmark lift.