Portscanner mit der Shell: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
=/dev/tcp in Sub-Shell= | =/dev/tcp in Sub-Shell= | ||
| − | * 'bash -c ">/dev/tcp/ | + | * '''bash -c ">/dev/tcp/<IP>/<PORT>"''' - liefert eine true wenn der Port offen ist. |
| − | * | + | * '''bash -c ">/dev/tcp/<IP>/<PORT>"''' - liefert eine false wenn der Port geschlossen ist. |
| − | |||
| − | |||
=Aufgabe= | =Aufgabe= | ||
| − | * Erstelle 'portscanner.sh' mit Aufruf: | + | * Erstelle '''portscanner.sh''' mit Aufruf: |
** ./portscanner.sh <ZIEL> <START_PORT> [END_PORT] | ** ./portscanner.sh <ZIEL> <START_PORT> [END_PORT] | ||
* Anforderungen: | * Anforderungen: | ||
| Zeile 13: | Zeile 11: | ||
** Ausgabe nur für offene Ports, exakt diese Zeile: | ** Ausgabe nur für offene Ports, exakt diese Zeile: | ||
*** Auf dem Ziel: <ZIEL> ist der Port: <PORT> offen | *** Auf dem Ziel: <ZIEL> ist der Port: <PORT> offen | ||
| − | ** Script muss klein, lesbar und ohne externe Tools sein ( | + | ** Script muss klein, lesbar und ohne externe Tools sein. |
| + | <!--- | ||
| + | #!/bin/bash | ||
| + | ZIEL=$1 | ||
| + | PORT_A=$2 | ||
| + | PORT_E=$3 | ||
| + | test $# -eq "2" && PORT_E=$PORT_A | ||
| + | for ((I=$PORT_A;I<=$PORT_E;I++)) | ||
| + | do | ||
| + | if bash -c ">/dev/tcp/$ZIEL/$I" > /dev/null 2>&1 | ||
| + | then | ||
| + | echo Auf dem Ziel: $ZIEL ist der Port: $I offen | ||
| + | fi | ||
| + | done | ||
| + | ---> | ||
Aktuelle Version vom 6. November 2025, 20:20 Uhr
/dev/tcp in Sub-Shell
- bash -c ">/dev/tcp/<IP>/<PORT>" - liefert eine true wenn der Port offen ist.
- bash -c ">/dev/tcp/<IP>/<PORT>" - liefert eine false wenn der Port geschlossen ist.
Aufgabe
- Erstelle portscanner.sh mit Aufruf:
- ./portscanner.sh <ZIEL> <START_PORT> [END_PORT]
- Anforderungen:
- Wenn nur zwei Argumente übergeben werden, prüfe nur START_PORT.
- Nutze die Bash-/dev/tcp-Technik in einer Sub-Shell, z. B. 'bash -c ">/dev/tcp/$ZIEL/$PORT"' und unterdrücke Ausgabe/Fehler mit '> /dev/null 2>&1'.
- Ausgabe nur für offene Ports, exakt diese Zeile:
- Auf dem Ziel: <ZIEL> ist der Port: <PORT> offen
- Script muss klein, lesbar und ohne externe Tools sein.