我第一次被要求提供一个powershell查询来确定IIS中是否启用了目录浏览。我发现,目录浏览不仅可以在站点级别启用,还可以在应用程序级别或Web服务级别启用。
这对我来说有点先进。 有谁知道这是如何工作的?
由于
答案 0 :(得分:1)
您可以使用powershell IIS Snapin,以下示例将获取默认网站的值:
Get-WebConfigurationProperty -filter /system.webServer/directoryBrowse -name enabled -PSPath 'IIS:\Sites\Default Web Site'
ItemXPath : /system.webServer/directoryBrowse
IsInheritedFromDefaultValue : False
IsProtected : False
Name : enabled
TypeName : System.Boolean
Schema : Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema
Value : False
IsExtended : False
答案 1 :(得分:0)
这是我的第一个解决方案,因为它更简单,即使我不喜欢在PowerShell脚本中使用appcmd.exe,因为它对我来说似乎并不“优雅”。
有必要创建一个包含要检查的服务器列表的文件:serverList.txt。只需逐行输入主机名。
此脚本检查所有应用程序的配置,因为更改这些应用程序的配置更为常见。但是此验证尚不完整,因为您也可以更改公用目录的配置。我将在下一版本中对此进行修复。
结果只是有关DirectoryBrowse功能是否启用的信息。如果启用此功能,则可能是安全问题。因此,实现一个禁用此功能的功能可能是一个好主意。
<#
: IIS Security ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
: Verifica desvios de seguranca nos site/app
: - DirectoryBrowse
:
#>
$serverList = Get-Content -Path C:\Middleware\serverList.txt
foreach ($server in $serverList){
$appList = Invoke-Command -ComputerName $server -ScriptBlock {C:\Windows\System32\inetsrv\appcmd.exe list app}
foreach($app in $appList){
$siteApp = ($app -split '"')[1]
# SECTION:directoryBrowse
$appConfig = Invoke-Command -ComputerName $server -ScriptBlock {C:\Windows\System32\inetsrv\appcmd.exe list config "$siteApp" -SECTION:directoryBrowse}
$result = (($appConfig | Select-String -Pattern 'directoryBrowse enabled="false"') -split '"')[1]
if ($result -eq "false"){
Write-Output "$($server): $($siteApp) - Directory Browsing desabilitado"
}
else {
Write-Output "$($server): $($siteApp) - Directory Browsing HABILITADO <<<<<"
}
}
}
结果...
PS C:\Middleware> C:\Middleware\IIS_Security_v1.ps1
WIN-UNDBQ49VK01: Default Web Site/ - Directory Browsing desabilitado
WIN-UNDBQ49VK01: SorveteriaBruna/ - Directory Browsing desabilitado
WIN-UNDBQ49VK01: SorveteriaBruna/Contrato - Directory Browsing desabilitado
WIN-UNDBQ49VK01: AcougueLindoBoi/ - Directory Browsing desabilitado
WIN-UNDBQ49VK01: AcougueLindoBoi/Contrato - Directory Browsing desabilitado
WIN-UNDBQ49VK01: FunerariaStones/ - Directory Browsing desabilitado
WIN-UNDBQ49VK01: FunerariaStones/Contrato - Directory Browsing desabilitado
WIN-UNDBQ49VK01: FtpHome/ - Directory Browsing desabilitado
PS C:\Middleware>