Portscanner mit der Shell: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „=Kurzcheck: /dev/tcp in Sub-Shell= * '''bash -c ">/dev/tcp/$ZIEL/$I"''' — öffnet eine TCP-Verbindung zum Zielport. **Wahr** * Die Umleitung '''>/dev/tcp/...…“)
 
Zeile 1: Zeile 1:
=Kurzcheck: /dev/tcp in Sub-Shell=
+
 
 +
=Schnell & exakt: /dev/tcp in Sub-Shell=
 
* '''bash -c ">/dev/tcp/$ZIEL/$I"''' — öffnet eine TCP-Verbindung zum Zielport. **Wahr**
 
* '''bash -c ">/dev/tcp/$ZIEL/$I"''' — öffnet eine TCP-Verbindung zum Zielport. **Wahr**
 
* Die Umleitung '''>/dev/tcp/...''' wird in der aktuellen Shell ausgeführt. **Falsch**
 
* Die Umleitung '''>/dev/tcp/...''' wird in der aktuellen Shell ausgeführt. **Falsch**
 
* Mit '''bash -c ">/dev/tcp/$ZIEL/$I" > /dev/null 2>&1''' siehst du keine "Connection refused"-Fehler in der äußeren Shell. **Wahr**
 
* Mit '''bash -c ">/dev/tcp/$ZIEL/$I" > /dev/null 2>&1''' siehst du keine "Connection refused"-Fehler in der äußeren Shell. **Wahr**
 
* '''>/dev/tcp/...''' ist POSIX-standard und in jeder Shell verfügbar. **Falsch**
 
* '''>/dev/tcp/...''' ist POSIX-standard und in jeder Shell verfügbar. **Falsch**
 +
 +
=Aufgabe (knapp)=
 +
* 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. (Optional: '''timeout''' gegen Hänger.)
  
 
=Aufgabe (knapp)=
 
=Aufgabe (knapp)=

Version vom 6. November 2025, 19:38 Uhr

Schnell & exakt: /dev/tcp in Sub-Shell

  • bash -c ">/dev/tcp/$ZIEL/$I" — öffnet eine TCP-Verbindung zum Zielport. **Wahr**
  • Die Umleitung >/dev/tcp/... wird in der aktuellen Shell ausgeführt. **Falsch**
  • Mit bash -c ">/dev/tcp/$ZIEL/$I" > /dev/null 2>&1 siehst du keine "Connection refused"-Fehler in der äußeren Shell. **Wahr**
  • >/dev/tcp/... ist POSIX-standard und in jeder Shell verfügbar. **Falsch**

Aufgabe (knapp)

  • 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. (Optional: timeout gegen Hänger.)

Aufgabe (knapp)

  • Schreibe portscanner.sh mit Aufruf:
    • ./portscanner.sh <ZIEL> <START_PORT> [END_PORT]
  • Anforderungen:
    • Wenn nur zwei Argumente, 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.
    • Gib nur für offene Ports genau diese Zeile aus:
      • Auf dem Ziel: <ZIEL> ist der Port: <PORT> offen
    • Script muss klein, lesbar und ohne externe Tools sein. (Optional: timeout gegen Hänger.)