Mantén Seguro tu PC bloqueando estas IP

Es inevitable permanecer seguros hoy en día, cada día enfrentamos nuevos desafíos y nuevas formas en caer para secuestrar un equipo y/o información que tengamos. Los delincuentes hoy en día nunca paran de buscar nuevas formas de conseguir mas publico.

Sin embargo nosotros los usuarios tenemos la responsabilidad de mantenernos informados y agregar las defensas necesarias para no caer en la trampa.

Hoy les comparto un pequeño Script en Windows para bloquear las IP maliciosas a la fecha que se pueden bloquear, ya que dichas IPs fueron catalogadas como IPs para uso malicioso. De esta manera agregamos un defensa adicional independientemente de cualquier App de seguridad poseas instalado o para aquellas personas que no usan App adicionales de Firewall y Antivirus como yo, es genial.

El Script es bastante sencillo, solo bloquea la entrada y salida que intente conectar a esas IPs, asi que cualquier URL que accidentalmente hagamos click se bloquea inmediatamente. Esto lo logra agregando reglas en el Firewall de Windows. Actualmente fue probado en Windows 10 y sin ningún tipo de problema. Aclaro que esto es una capa adicional a tus medidas de seguridad, esto no reemplaza al Antivirus o Firewall que poseas.

Para empazar debemos permitir la ejecución de Script en Windows 10, para ello tenemos que abrir la consola PowerShell en modo administrador y ejecutar:

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

De esta manera se permite la ejecución de Script en Windows y ahora debemos descargar el siguiente Script, si por alguna razón la pagina no se encuentra disponible comparto el Script:

# Script by Kevin Feenstra (Kevin@remixed.nl)
# Please keep in mind that this script isn't a replacement for antivirus software or a firewall appliance!
# This script is a extra layer of defense by blocking inbound and outbound traffic to your computer based on malicious ip lists

# Feedback? or just happy with my script, please let me know; kevin@remixed.nl


#Retrieve IP Blacklist from malc0de and safe copy daily (if you don't want to keep track of your list changes don't set the date in the filename).
#You might want to change the destination folder.
$SetDate = Get-Date -format "yyyyMMdd"
$source = "http://malc0de.com/bl/IP_Blacklist.txt"
$destination = "c:\temp\IP_blacklist_$SetDate.txt" 
Invoke-WebRequest $source -OutFile $destination

#regex to make sure we only retrieve the ip's from the file
$regex = "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}"
$maliciousIPs = get-content -Path $destination | Select-String $regex
$maliciousIPs.count

#Create outbound rules for all ip's in blacklist


foreach ($maliciousIP in $maliciousIPs){
    #Checking if rule is exists
    $counterob++
    Write-Progress -Activity 'Processing IPs outbound' -CurrentOperation $maliciousIP -PercentComplete (($counterob / $maliciousIPs.count) * 100)
    $checkrule = Get-NetFirewallRule -Name "Network Security Outbound Blacklist $maliciousIP" -erroraction 'silentlycontinue'
    if ($checkrule -ne $Null) {Write-Host "Rule exists, skipping " -nonewline; Write-Host "$maliciousIP" -foregroundcolor green -backgroundcolor black -nonewline; Write-Host " !!"}

        #create rule
        else {
        Write-Host "Creating new rule for " -nonewline; Write-Host "$maliciousIP" -foregroundcolor red -backgroundcolor yellow -nonewline; Write-Host " !!"
        New-NetFirewallRule -Name "Network Security Outbound Blacklist $maliciousIP"  -Description "Block outbound traffic to malicious IP's" -Profile Any -Direction Outbound -Action Block -DisplayName "Network Security Outbound Blacklist $maliciousIP" -Group "NSOB" -RemoteAddress $maliciousIP}
}


#Create inbound rules for all ip's in blacklist

foreach ($maliciousIP in $maliciousIPs){
    #Checking if rule is exists
    $counterib++
    Write-Progress -Activity 'Processing IPs inbound' -CurrentOperation $maliciousIP -PercentComplete (($counterib / $maliciousIPs.count) * 100)
    $checkrule = Get-NetFirewallRule -Name "Network Security Inbound Blacklist $maliciousIP" -erroraction 'silentlycontinue'
    if ($checkrule -ne $Null) {Write-Host "Rule exists, skipping " -nonewline; Write-Host "$maliciousIP" -foregroundcolor green -backgroundcolor black -nonewline; Write-Host " !!"}

        #create rule
        else {
        Write-Host "Creating new rule for " -nonewline; Write-Host "$maliciousIP" -foregroundcolor red -backgroundcolor yellow -nonewline; Write-Host " !!"
        New-NetFirewallRule -Name "Network Security Inbound Blacklist $maliciousIP"  -Description "Block inbound traffic to malicious IP's" -Profile Any -Direction inbound -Action Block -DisplayName "Network Security Inbound Blacklist $maliciousIP" -Group "NSIB" -RemoteAddress $maliciousIP}
}



#Failsafe: uncomment rules to delete rules created by this script
# Delete inbound Blacklist rules
#Get-NetFirewallRule -group NSIB | Remove-NetFirewallRule
# Delete outbound Blacklist rules
#Get-NetFirewallRule -group NSOB | Remove-NetFirewallRule

Y no olviden bloquear nuevamente la ejecución de Scripts en Windows 10:

Set-ExecutionPolicy -ExecutionPolicy Restricted