Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  0 640
Hei,

Jeg driver å lager autoblock script,
altså en "Honeypot" som blokkerer maskiner som kjører et fullt tcp handshake mot en spesifisert port på en windows maskin, har allerede laget for windows.

Har ønske om at det skal være lett leselig for alle, og tilgjengelig for alle windows maskiner (xp -> 2008) derfor bruker jeg powershell 1.0
dette er mitt første powershell script, derfor trenger jeg litt feedback på om det er noen store sikkerhets feil i det, har fuzzet litt selv, men kan ikke se noen problemer.

dette scriptet lytter på spesifisert port(default 23 hvis ikke spesifisert) og en adresse (default 0.0.0.0, hvis ikke spesifisert.)
derretter legger den til en windows firewall regel dersom en klient kobler seg mot denne porten (aka nmap eller "auto angrep".)

Kode

$ErrorActionPreference = 'Continue'
function Honey-Port([int]$port=23, [string]$IPAdress="0.0.0.0", [switch]$Echo=$false){
    $listener = new-object System.Net.Sockets.TcpListener([System.Net.IPAddress]::Parse($IPAdress), $port)
    $listener.start()
    [byte[]]$bytes = 0..255|%{0}
    $client = $listener.AcceptTcpClient()
    echo "Connection from $($client.Client.RemoteEndPoint)" | %{$_ -replace ":.*$",""}
    $rechostblock = $($($client.Client.RemoteEndPoint) | %{$_ -replace ":.*$",""})
    $stream = $client.GetStream()
    $client.Close()
    $listener.Stop()
	if (!(($rechostblock -eq $IPAdress) -or ($rechostblock -eq "127.0.0.1"))) {
		echo "Blocking $rechostblock"
		netsh advfirewall firewall add rule name="Block incomming $rechostblock" dir=in protocol=any action=block remoteip=$rechostblock
		netsh advfirewall firewall add rule name="Block outgoing $rechostblock" dir=out protocol=any action=block remoteip=$rechostblock
	}
	
	
}
$i=1
while($i=1) {

Honey-Port -ipadress 0.0.0.0 -port 23

sleep 1
}
Test selv:
lagr det som en eks "honeyport23.ps1" så kjører du det med følgende kommando:

Kode

PowerShell.exe -ExecutionPolicy Unrestricted -NoProfile -Command "$ErrorActionPreference = 'SilentlyContinue'; ./honeyport23.ps1"
deretter kobler du deg med telnet fra en annen maskin, du skal da bli blokkert av windows firewall på maskinen du kobler deg mot.

Har kjørt denne på en gammel laptop hos meg nå i ca 3 timer(og portforwarded mot denne maskinen), har så langt blokkert 4 adresser.

har også laget et php scrit, så hvis du laster en php side på en maskin (/admin/index.php) så legger den ip adressen til klienten i en database, som blir "parset" av en service også blokkert. (har selvsagt en robots.txt som disallower /admin/, slik at ikke google blir blokkert)

Feedback takk!