DVWA - Command Injection
Inhaltsverzeichnis:
- Netcat-Syntax
- Port-Scanning
- Senden von Dateien über Netcat
- Erstellen eines einfachen Chat-Servers
- Durchführen einer HTTP-Anfrage
- Fazit
Netcat (oder nc) ist ein Befehlszeilendienstprogramm, das Daten über Netzwerkverbindungen mit dem TCP- oder UDP-Protokoll liest und schreibt. Es ist eines der mächtigsten Werkzeuge im Arsenal der Netzwerk- und Systemadministratoren und gilt als Schweizer Taschenmesser für Netzwerkwerkzeuge.
Netcat ist plattformübergreifend und für Linux, MacOS, Windows und BSD verfügbar. Mit Netcat können Sie Netzwerkverbindungen debuggen und überwachen, nach offenen Ports suchen, Daten übertragen, als Proxy fungieren und vieles mehr. Das Netcat-Paket ist auf MacOS und gängigen Linux-Distributionen wie Ubuntu vorinstalliert.
Netcat-Syntax
Die grundlegendste Syntax des Netcat-Dienstprogramms hat die folgende Form:
nc host port
Unter Ubuntu können Sie entweder
netcat
oder
nc
. Sie sind beide symbolische Links zur openBSD-Version von Netcat.
Standardmäßig versucht Netcat, eine TCP-Verbindung zum angegebenen Host und Port herzustellen. Wenn Sie eine UDP-Verbindung herstellen möchten, verwenden Sie die Option
-u
:
Port-Scanning
Das Scannen von Ports ist eine der häufigsten Anwendungen für Netcat. Sie können einen einzelnen Port oder einen Portbereich scannen.
Um beispielsweise nach offenen Ports im Bereich von 20 bis 80 zu suchen, verwenden Sie den folgenden Befehl:
nc -z -v 10.10.8.8 20-80
Die Option
-z
weist
nc
an, nur nach offenen Ports zu suchen, ohne Daten an diese zu senden, und die Option
-v
, um ausführlichere Informationen bereitzustellen.
Die Ausgabe sieht ungefähr so aus:
nc: connect to 10.10.8.8 port 20 (tcp) failed: Connection refused nc: connect to 10.10.8.8 port 21 (tcp) failed: Connection refused Connection to 10.10.8.8 22 port succeeded! nc: connect to 10.10.8.8 port 23 (tcp) failed: Connection refused… nc: connect to 10.10.8.8 port 79 (tcp) failed: Connection refused Connection to 10.10.8.8 80 port succeeded!
nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded
Connection to 10.10.8.8 22 port succeeded! Connection to 10.10.8.8 80 port succeeded!
Sie können Netcat auch verwenden, um die Serversoftware und ihre Version zu ermitteln. Wenn Sie beispielsweise einen EXIT-Befehl an den Server über den Standard-SSH-Port 22 senden:
echo "EXIT" | nc 10.10.8.8 22
Die Ausgabe sieht ungefähr so aus:
SSH-2.0-OpenSSH_7.6p1 Ubuntu-4 Protocol mismatch.
Um nach UDP-Ports zu suchen, fügen Sie dem Befehl einfach die Option
-u
(siehe unten):
nc -z -v -u 10.10.8.8 20-80
In den meisten Situationen ist Nmap ein besseres Tool als Netcat für das Scannen komplexer Ports.
Senden von Dateien über Netcat
Mit Netcat können Daten von einem Host auf einen anderen übertragen werden, indem ein grundlegendes Client / Server-Modell erstellt wird.
Dies funktioniert, indem Netcat so eingestellt wird, dass es einen bestimmten Port (mit der Option
-l
) auf dem empfangenden Host überwacht und dann eine reguläre TCP-Verbindung vom anderen Host herstellt und die Datei über diesen sendet.
Führen Sie beim Empfang den folgenden Befehl aus, der den Port 5555 für eingehende Verbindungen öffnet und die Ausgabe in die Datei umleitet:
nc -l 5555 > file_name
Stellen Sie vom sendenden Host eine Verbindung zum empfangenden Host her und senden Sie die Datei:
nc receiving.host.com 5555 < file_name
Um ein Verzeichnis zu übertragen, können Sie tar verwenden, um das Verzeichnis auf dem Quellhost zu archivieren und das Archiv auf dem Zielhost zu extrahieren.
Stellen Sie auf dem empfangenden Host das Netcat-Tool so ein, dass es auf eine eingehende Verbindung an Port 5555 wartet. Die eingehenden Daten werden an den Befehl tar weitergeleitet, der das Archiv extrahiert:
nc -l 5555 | tar xzvf -
Packen Sie auf dem sendenden Host das Verzeichnis und senden Sie die Daten, indem Sie auf dem empfangenden Host eine Verbindung zum empfangenden
nc
Prozess herstellen:
tar czvf - /path/to/dir | nc receiving.host.com 5555
Sie können den Übertragungsfortschritt an beiden Enden verfolgen. Wenn Sie fertig sind,
CTRL+C
, um die Verbindung zu schließen.
Erstellen eines einfachen Chat-Servers
Das Verfahren zum Erstellen eines Online-Chats zwischen zwei oder mehr Hosts ist dasselbe wie beim Übertragen von Dateien.
Starten Sie auf dem ersten Host einen Netcat-Prozess, um Port 5555 abzuhören:
nc -l 5555
Führen Sie auf dem zweiten Host den folgenden Befehl aus, um eine Verbindung zum Überwachungsport herzustellen:
nc first.host.com 5555
Wenn Sie nun eine Nachricht
ENTER
und die
ENTER
drücken, wird diese auf beiden Hosts angezeigt.
CTRL+C
um die Verbindung zu schließen.
Durchführen einer HTTP-Anfrage
Es gibt zwar viel bessere Tools für HTTP-Anforderungen wie Curl, Sie können jedoch auch Netcat verwenden, um verschiedene Anforderungen an Remoteserver zu senden.
Um beispielsweise die Netcat-Manpage von der OpenBSD-Website abzurufen, geben Sie Folgendes ein:
printf "GET /nc.1 HTTP/1.1\r\nHost: man.openbsd.org\r\n\r\n" | nc man.openbsd.org 80
Die vollständige Antwort mit den HTTP-Headern und dem HTML-Code wird im Terminal gedruckt.
Fazit
In diesem Tutorial haben Sie gelernt, wie Sie mit dem Dienstprogramm Netcat TCP- und UDP-Verbindungen herstellen und testen.
Weitere Informationen finden Sie auf der Netcat-Manpage. Dort finden Sie Informationen zu allen anderen leistungsstarken Optionen des Netcat-Befehls.
Netcat-TerminalPeru mit neuem OLPC Laptop mit Windows

Peru wird das erste Land sein, das jemals eine Testversion von OLPC-Laptops unter Windows getestet hat XP.
Nutzer mit geringem Einkommen Locken mit IPhone

US-Verbraucher mit niedrigeren Einkommen strömen laut dem Forschungsunternehmen ComScore Mobile auf das iPhone von Apple.
Der Math-Eingabebereich verwendet den in Windows 7 integrierten mathematischen Erkenner, um handschriftliche mathematische Ausdrücke zu erkennen. Sie können es dann problemlos mit Textverarbeitungsprogrammen oder Computertabellen verwenden. Der Math-Eingabebereich ist für die Verwendung mit einem Tablet-Stift auf einem Tablet PC vorgesehen, Sie können ihn jedoch mit jedem Eingabegerät wie einem Touchscreen oder sogar einer Maus verwenden.

Der Math-Eingabebereich verwendet den in Windows integrierten Mathematik-Erkenner 7 um handgeschriebene mathematische Ausdrücke zu erkennen. Sie können es dann problemlos mit Textverarbeitungsprogrammen oder Computertabellen verwenden.