Ich suchte im Netz eine Möglichkeit in einem Fremden Netzwerk die erlaubten offenen Ports zu entdecken, leider fand ich keine „out of the box“ Lösung im Internet und baute mir die hier dokumentierte Lösung.
Der Netzwerk Computer ist in der folgenden Konfiguration mit meinem Testserver verbunden.:
Auf der Laptop Seite hinterlege ich einen neuen SSH Private Key übertrage einen zugehörigen Public aus dem Server in die Datei ~/.ssh/authorized_keys:
ssh-keygen -b 4096 scp ~/.ssh/id_rsa.pub root@: ssh root@ mkdir ~/.ssh cat ~/id_rsa.pub >> ~/.ssh/authorized_keys rm ~/id_rsa.pub chmod 600 ~/.ssh/authorized_keys
Auf der zu testenden Seite legte ich mir dieses kleine Shellscript ab, das nach und nach Netcat lokal auf verschiedene Ports lauschen lässt und im Anschluss versucht die Ports von der Serverseite aus zu erreichen.:
#!/bin/bash COMPUTER="85.214.70.215" ME=$(/usr/bin/curl http://shortip.de/txt) 1>/dev/null 2>/dev/null for ((PORT=1; PORT< =65535; PORT++)) do /bin/nc -l $PORT 2>/dev/null & ssh root@$COMPUTER -t "/bin/netcat -vv -n -z -w 3 $ME $PORT" done
Um Netcat an UDP-Ports senden, oder auf UDP Ports lauschen zu lassen kann die Option -u mit angegeben werden.
Diese Methode dauert selbstverständlich ewig und ist nur anwendbar wen wenige Ports zu durchsuchen sind und nicht wie im Beispielscript angegeben alle 65535.