Advertisement
Guest User

block-ransomware.ps1

a guest
Apr 21st, 2016
423
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. param(
  2.     [string] $username,
  3.     [string] $filename,
  4.     [string] $servername
  5. )
  6.  
  7. # Logging
  8. # (Unterschiedliche EventIDs werden bisher nicht unterstützt)
  9. function log ([string] $text) {
  10.     Write-EventLog –LogName Application –Source "block-ransomware" –EntryType Warning –EventID 1 -Category 0 –Message "$text"
  11. }
  12.  
  13. # NetBIOS-DomainName ermitteln
  14. $domain = (gwmi Win32_NTDomain).DomainName
  15.  
  16. # Domain aus Usernamen entfernen
  17. $username = $username -replace "$domain\\"
  18.  
  19. # IP anhand des Usernamens ermitteln.
  20. # IPv6 wird dabei ausgefiltert
  21. $IP = (get-WmiObject Win32_ServerSession | where-object {$_.UserName -eq "$username" -and $_.ComputerName -match "\."} | format-table ComputerName -AutoSize -HideTableHeaders | Out-String).Trim()
  22.  
  23. $logmsg = "User: " + $username + "`r`n" + `
  24. "Domain: " + $domain + "`r`n" + `
  25. "IP: " + $IP + "`r`n" + `
  26. "Datei: " + $filename + "`r`n" + `
  27. "Server: " + $servername
  28. log($logmsg)
  29.  
  30. # IP-Adresse an lokaler Firewall für SMB-Sharing blocken
  31. # (Die Firewall prüft nicht, ob es den anzulegenden Eintrag bereits gibt und erzeugt somit ggf. doppelte Einträge)
  32. if ($IP -ne "") {
  33.     netsh advfirewall firewall add rule name="Block-Ransomware" dir=in action=block protocol=tcp localport=139 remoteip=$IP profile=any enable=yes
  34.     netsh advfirewall firewall add rule name="Block-Ransomware" dir=in action=block protocol=tcp localport=445 remoteip=$IP profile=any enable=yes
  35.     netsh advfirewall firewall add rule name="Block-Ransomware" dir=in action=block protocol=udp localport=137 remoteip=$IP profile=any enable=yes
  36.     netsh advfirewall firewall add rule name="Block-Ransomware" dir=in action=block protocol=udp localport=138 remoteip=$IP profile=any enable=yes
  37. } else {
  38.     $errormsg = "Fehler: Keine IP-Adresse gefunden"
  39.     log($errormsg)
  40.     Write-Host $errormsg
  41.     exit 1
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement