Portscanner nur mit Linuxboardmitteln: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 20: Zeile 20:
 
scan_port() {
 
scan_port() {
 
     PORT="$1"
 
     PORT="$1"
     (echo >/dev/tcp/$HOST/$PORT) >/dev/null 2>&1
+
     if (echo >/dev/tcp/$HOST/$PORT) >/dev/null 2>&1
     if [ $? -eq 0 ]; then
+
     then
 
         echo "Host: $HOST - Port: $PORT open"
 
         echo "Host: $HOST - Port: $PORT open"
 
     fi
 
     fi
 
}
 
}
 
 
export -f scan_port
 
export -f scan_port
 
export HOST
 
export HOST
 
 
seq $START $STOP | xargs -P $THREADS -I{} bash -c 'scan_port "$@"' _ {}
 
seq $START $STOP | xargs -P $THREADS -I{} bash -c 'scan_port "$@"' _ {}
 
 
</syntaxhighlight>
 
</syntaxhighlight>

Version vom 27. November 2025, 08:02 Uhr

Einfache sequentielle Methode

#!/bin/bash
HOST="$1"
for PORT in $(seq 1 1024); do
    if (echo >/dev/tcp/$HOST/$PORT) 2>/dev/null
      then
        echo "OPEN: $PORT"
    fi
done

Multithread Methode

#!/bin/bash
HOST="$1"
START="$2"
STOP="$3"
THREADS=50   # Anzahl paralleler Jobs

scan_port() {
    PORT="$1"
    if (echo >/dev/tcp/$HOST/$PORT) >/dev/null 2>&1
    then
        echo "Host: $HOST - Port: $PORT open"
    fi
}
export -f scan_port
export HOST
seq $START $STOP | xargs -P $THREADS -I{} bash -c 'scan_port "$@"' _ {}