Netcat (of NC in het kort) is een eenvoudige maar krachtige netwerk command-line tool gebruikt voor het uitvoeren van elke operatie in Linux gerelateerd aan TCP, UDP, of UNIX-domein sockets.
Netcat kan gebruikt worden voor het scannen van poorten, het omleiden van poorten, als een port listener (voor binnenkomende verbindingen); het kan ook gebruikt worden om externe verbindingen te openen en zo veel andere dingen. Bovendien kunt u het gebruiken als een achterdeur om toegang te krijgen tot een doelserver.
in dit artikel zullen we netcat gebruik commando ‘ s met voorbeelden uitleggen.,
hoe netcat in Linux te installeren en te gebruiken
om het netcat-pakket op uw systeem te installeren, gebruikt u de standaard pakketbeheerder voor uw Linux-distributie.
$ yum install nc $ dnf install nc $ sudo apt-get install Netcat
zodra het netcat-pakket is geïnstalleerd, kunt u verder gaan om het gebruik van het netcat-commando te leren in de volgende voorbeelden.
Poortscanning
Netcat kan worden gebruikt voor poortscanning: om te weten welke poorten open zijn en services draaien op een doelmachine. Het kan een enkele of meerdere of een reeks open poorten scannen.,
Hier is een voorbeeld, de -z
optie stelt nc in om simpelweg te scannen op luisterdaemons, zonder daadwerkelijk gegevens naar hen te verzenden. De optie -v
schakelt de uitgebreide modus in en -w
specificeert een time-out voor verbinding die niet tot stand kan worden gebracht.,
overdracht van bestanden tussen Linux Servers
met Netcat kunt u bestanden tussen twee Linux computers of servers overbrengen en beide systemen moeten nc hebben geïnstalleerd.
bijvoorbeeld, om een ISO-imagebestand van de ene computer naar de andere te kopiëren en de voortgang van de overdracht te controleren (met behulp van het PV-hulpprogramma), voer je het volgende commando uit op de afzender/server computer (waar het ISO-bestand bestaat).,
Dit zal nc draaien in luistermodus (-l
vlag) op poort 3000.
$ tar -zcf - debian-10.0.0-amd64-xfce-CD-1.iso | pv | nc -l -p 3000 -q 5
en voer op de ontvanger/clientcomputer het volgende commando uit om het bestand te verkrijgen.
$ nc 192.168.1.4 3000 | pv | tar -zxf -
Maak een Command Line Chat Server
U kunt ook gebruik netcat om direct een eenvoudige command-line Messaging server te maken., Net als in het vorige gebruiksvoorbeeld moet nc geïnstalleerd worden op beide systemen die gebruikt worden voor de chatruimte.
voer op één systeem het volgende commando uit om de chatserver aan te maken die luistert op poort 5000.
$ nc -l -vv -p 5000
voer op het andere systeem het volgende commando uit om een chatsessie te starten op een machine waar de messaging server draait.,
$ nc 192.168.56.1 5000
een Basiswebserver aanmaken
met de -l
optie van het NC commando dat gebruikt wordt om een basis, onveilige webserver aan te maken om statische webbestanden aan te bieden voor leerdoeleinden. Om dit aan te tonen, maak je een .html
bestand zoals getoond.
$ vim index.html
voeg de volgende HTML-regels toe aan het bestand.
<html> <head> <title>Test Page</title> </head> <body> <p>Serving this file using Netcat Basic HTTP server!</p> </body></html>
wijzigingen in het bestand opslaan en afsluiten.,
serveer het bovenstaande bestand via HTTP door het volgende commando uit te voeren, waardoor de HTTP-server continu kan draaien.
$ while : ; do ( echo -ne "HTTP/1.1 200 OK\r\n" ; cat index.html; ) | nc -l -p 8080 ; done
open vervolgens een webbrowser en kan toegang krijgen tot de inhoud via het volgende adres.,
merk op dat u de netcat HTTP server kunt stoppen door op .
problemen met de Linux-serververbinding oplossen
een ander nuttig gebruik van Netcat is het oplossen van problemen met de serververbinding. Hier kunt u Netcat gebruiken om te controleren welke gegevens een server verzendt als antwoord op opdrachten van de client.
het volgende commando haalt de startpagina van example.com.,
$ printf "GET / HTTP/1.0\r\n\r\n" | nc text.example.com 80
De uitvoer van het bovenstaande commando bevat de headers die door de web-server worden verzonden en die kunnen worden gebruikt voor het oplossen van problemen.
zoek een Service die draait op Poort
U kunt ook Netcat gebruiken om poortbanners te verkrijgen. In dit geval zal het je vertellen welke service achter een bepaalde poort draait. Om bijvoorbeeld te weten welk type service wordt uitgevoerd achter poort 22 op een specifieke server, voer je het volgende commando uit (vervang 192.168.56.110 door het IP-adres van de doelserver). De-n
vlag betekent het uitschakelen van DNS of service lookups.,
$ nc -v -n 192.168.56.110 80
Create a Stream Sockets
Netcat also supports creation of UNIX-domain stream sockets. The following command will create and listen on a UNIX-domain stream socket.
$ nc -lU /var/tmp/mysocket &$ ss -lpn | grep "/var/tmp/"
Create a Backdoor
You can as well run Netcat as a backdoor., Dit vraagt echter om meer werk. Als Netcat op een doelserver is geà nstalleerd, kunt u het gebruiken om een achterdeur te maken, om een opdrachtprompt op afstand te krijgen.
om een achterdeurtje op te treden heb je Netcat nodig om te luisteren op een gekozen poort (bijv. poort 3001) op de doelserver en dan kun je vanaf je machine als volgt verbinding maken met deze poort.
Dit is het commando dat moet worden uitgevoerd op de server op afstand waar de optie -d
het lezen van stdin uitschakelt, en -e
het commando specificeert dat op het doelsysteem moet worden uitgevoerd.,
$ nc -L -p 3001 -d -e cmd.exe
Last but not least, Netcat kan worden gebruikt als een proxy voor verschillende diensten/protocollen, waaronder HTTP, SSH, en nog veel meer. Voor meer informatie, zie de manpage.
$ man nc
In dit artikel hebben we 8 praktische voorbeelden van netcat commando ‘ s uitgelegd. Als u andere praktische use case(s) kent, deel dit dan met ons via onderstaand feedbackformulier. U kunt ook een vraag stellen.