TMAegis
More rules for iis

TMA-IIS-2.8

Ensure 'credentials' are not stored in configuration files

LowLevel 2Automatediis

Description

The <credentials> element of the <authentication> element allows optional definitions of name and password for IIS Manager User accounts within the configuration file. Forms based authentication also uses these elements to define the users. IIS Manager Users can use the administration interface to connect to sites and applications in which they've been granted authorization. Note ... No forms credentials <user> entries may be stored in the root web.config or any site configuration. PowerShell 5.1 with the WebAdministration module; run elevated.

How it is checked

Audit method: Shell command

shell
Import-Module WebAdministration -ErrorAction Stop; $paths = @('MACHINE/WEBROOT') + @(Get-Website | ForEach-Object { "IIS:\Sites\$($_.Name)" }); $bad = @($paths | Where-Object { @(Get-WebConfiguration -Filter 'system.web/authentication/forms/credentials/user' -PSPath $_).Count -gt 0 }); if ($bad.Count -eq 0) { 'compliant' } else { 'noncompliant' }
Expected output
compliant

How it is fixed

Fix method: Guidance or infrastructure patch

Remove-WebConfigurationProperty -PSPath 'MACHINE/WEBROOT/APPHOST/<site>' -Filter system.web/authentication/forms/credentials -Name '.'

Properties

Operating systems
Any
Tags
iisauthentication
Reference
CIS Microsoft IIS 10 Benchmark v1.2.1 - 2.8 Ensure 'credentials' are not stored in configuration files

Check this host

Run this on a machine you are allowed to audit. The scan is read-only.

shell
tmaegis scan --target iis --level 2