Portscanner mit der Shell: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
 +
=/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
  
=Schnell & exakt: /dev/tcp in Sub-Shell=
+
=Aufgabe=
* '''bash -c ">/dev/tcp/$ZIEL/$I"''' — öffnet eine TCP-Verbindung zum Zielport. **Wahr**
+
* Erstelle 'portscanner.sh' mit Aufruf:
* Die Umleitung '''>/dev/tcp/...''' wird in der aktuellen Shell ausgeführt. **Falsch**
+
** ./portscanner.sh <ZIEL> <START_PORT> [END_PORT]
* 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 &lt;ZIEL&gt; &lt;START_PORT&gt; [END_PORT]
 
 
* Anforderungen:
 
* Anforderungen:
 
** Wenn nur zwei Argumente übergeben werden, prüfe nur START_PORT.
 
** 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'''.
+
** 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:
 
** Ausgabe nur für offene Ports, exakt diese Zeile:
*** Auf dem Ziel: &lt;ZIEL&gt; ist der Port: &lt;PORT&gt; offen
+
*** Auf dem Ziel: <ZIEL> ist der Port: <PORT> offen
** Script muss klein, lesbar und ohne externe Tools sein. (Optional: '''timeout''' gegen Hänger.)
+
** Script muss klein, lesbar und ohne externe Tools sein (optional: 'timeout' gegen Hänger).
 
 
=Aufgabe (knapp)=
 
* Schreibe '''portscanner.sh''' mit Aufruf:
 
** ./portscanner.sh &lt;ZIEL&gt; &lt;START_PORT&gt; [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: &lt;ZIEL&gt; ist der Port: &lt;PORT&gt; offen
 
** Script muss klein, lesbar und ohne externe Tools sein. (Optional: '''timeout''' gegen Hänger.)
 

Version vom 6. November 2025, 19:40 Uhr

/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

  • 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).