Advertisement
neggles

Blackhole-AWS.ps1

Apr 14th, 2020
1,279
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # Add or remove?
  2. $AddRoutes = $True
  3. # Which interface to screw with routes on?
  4. $InterfaceName = "Ethernet"
  5. # Where is JSON?
  6. $PrefixURI = "https://ip-ranges.amazonaws.com/ip-ranges.json"
  7. # What region do we want to keep?
  8. $RegionToKeep = "us-west-1"
  9.  
  10.  
  11. # Download and convert to PSObject
  12. $PrefixJSON = $(Invoke-WebRequest $PrefixURI | ConvertFrom-JSON).prefixes | Sort-Object -Property region
  13.  
  14. # Filter out everything we want to keep
  15. $PrefixesToBlock = $PrefixJSON | Select ip_prefix,region -Unique | Where-Object {$_.region -NotLike $RegionToKeep}
  16.  
  17. # get ifIndex of adapter
  18. $InterfaceIndex = $(Get-NetAdapter -Name $InterfaceName).ifIndex
  19.  
  20. if ($AddRoutes) {
  21.     # add blackhole routes
  22.     foreach ($Prefix in $PrefixesToBlock) {
  23.         New-NetRoute -DestinationPrefix $Prefix.ip_prefix -NextHop 127.0.0.1 -InterfaceIndex $InterfaceIndex
  24.     }
  25. } else {
  26.     # remove blackhole routes
  27.     foreach ($Prefix in $PrefixesToBlock) {
  28.         Remove-NetRoute -DestinationPrefix $Prefix.ip_prefix -NextHop 127.0.0.1 -InterfaceIndex $InterfaceIndex
  29.     }
  30. }
  31.  
  32. # show routes
  33. Get-NetRoute -InterfaceIndex $InterfaceIndex -AddressFamily IPv4 | Out-GridView
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement