en-US/about_DSInternals.RpcFilters.help.txt
TOPIC
about_dsinternals.rpcfilters SHORT DESCRIPTION Provides PowerShell cmdlets for managing Windows RPC filters to enhance security by restricting remote procedure call access. LONG DESCRIPTION The DSInternals.RpcFilters module enables administrators to configure and manage RPC filters on Windows systems. RPC filters provide a security mechanism to control which RPC interfaces and methods can be accessed remotely, helping to reduce the attack surface of Windows services. This module allows you to: - Add, remove, and query RPC filters - Enable and disable auditing for RPC events - Retrieve RPC audit events from the Security log RPC Filter Basics RPC filters work by intercepting incoming RPC requests and evaluating them against defined rules before allowing execution. Filters can be configured to allow or deny access based on various criteria including interface UUID, authentication level, and client identity. Security Considerations Properly configured RPC filters can significantly improve system security by preventing unauthorized access to sensitive RPC interfaces. This is particularly important for domain controllers and other critical infrastructure servers. EXAMPLES Import-Module -Name DSInternals.RpcFilters # Create 3 RPC filters targeting the Directory Replication Service (DRS) Remote Protocol New-RpcFilter -Name 'DCSync-Allow-DC01' -WellKnownOperation IDL_DRSGetNCChanges -IPAddress 10.0.0.1 -Action Permit -Persistent New-RpcFilter -Name 'DCSync-Allow-DC02' -WellKnownOperation IDL_DRSGetNCChanges -IPAddress 10.0.0.2 -Action Permit -Persistent New-RpcFilter -Name 'DCSync-Block-Default' -WellKnownOperation IDL_DRSGetNCChanges -Action Block -Persistent # Check the current configuration Get-RpcFilter <# Sample output: Name: DCSync-Allow-DC02 Description: RPC Filter FilterId: 99321, FilterKey: 745889a1-207c-4ea0-8207-e97a8ad45b41, ProviderKey: N/A Action: Permit Audit: False, Persistent: True, BootTimeEnforced: False, Disabled: False EffectiveWeight: 0x7e0000000001007, Weight: N/A Conditions: Protocol = MS-DRSR Operation = IDL_DRSGetNCChanges (3) RemoteAddress = 10.0.0.2/32 Name: DCSync-Allow-DC01 Description: RPC Filter FilterId: 99320, FilterKey: bc95f1b0-a1f6-4f01-a2d0-8e3d61619b3b, ProviderKey: N/A Action: Permit Audit: False, Persistent: True, BootTimeEnforced: False, Disabled: False EffectiveWeight: 0x7e0000000001007, Weight: N/A Conditions: Protocol = MS-DRSR Operation = IDL_DRSGetNCChanges (3) RemoteAddress = 10.0.0.1/32 Name: DCSync-Block-Default Description: RPC Filter FilterId: 99322, FilterKey: 5c9a49fd-706c-423d-bddf-75afbb2eb051, ProviderKey: N/A Action: Block Audit: False, Persistent: True, BootTimeEnforced: False, Disabled: False EffectiveWeight: 0x7e0000000000007, Weight: N/A Conditions: Protocol = MS-DRSR Operation = IDL_DRSGetNCChanges (3) #> # Remove the previously created filters Get-RpcFilter | Where-Object Name -like 'DCSync-*' | Remove-RpcFilter NOTE RPC filters require administrative privileges to configure. Changes to RPC filters may require service restarts to take effect. Always test filter configurations in a non-production environment first. TROUBLESHOOTING NOTE If a service becomes inaccessible after applying RPC filters, check the Windows Event Log for RPC-related errors. Overly restrictive filters can prevent legitimate Windows service operations. SEE ALSO Get-RpcFilter New-RpcFilter Remove-RpcFilter Enable-RpcFilterAuditing Disable-RpcFilterAuditing Get-RpcFilterEvent KEYWORDS - RPC - DSInternals |