Netcat (of nc
) is een command-line utility die data leest en schrijft over netwerkverbindingen, met behulp van de TCP-of UDP-protocollen. Het is een van de meest krachtige tools in het arsenaal van netwerk-en systeembeheerders, en het wordt beschouwd als een Zwitsers zakmes van netwerkhulpmiddelen.
Netcat is platformonafhankelijk en is beschikbaar voor Linux, macOS, Windows en BSD. U kunt Netcat gebruiken om netwerkverbindingen te debuggen en te monitoren, te scannen op open poorten, gegevens over te dragen, als proxy, en meer.,
Het netcat-pakket is voorgeïnstalleerd op macOS en populaire Linux-distributies zoals Ubuntu, Debian of CentOS.
Netcat Syntax #
de meest basale syntaxis van het netcat-hulpprogramma neemt de volgende vorm aan:
nc host port
Op Ubuntu kunt u netcat
of nc
gebruiken. Het zijn beide symlinks naar de openBSD-versie van Netcat.
standaard zal Netcat proberen een TCP-verbinding met de opgegeven host en poort te starten., Als u een UDP-verbinding tot stand wilt brengen, gebruik dan de -u
optie:
nc -u host port
Port Scanning #
Scanpoorten zijn een van de meest voorkomende toepassingen voor Netcat. U kunt een enkele poort of een poortbereik scannen.,
bijvoorbeeld, om te scannen op open poorten in het bereik 20-80 zou je het volgende commando gebruiken:
nc -z -v 10.10.8.8 20-80
de -z
optie zal nc
vertellen om alleen te scannen op open poorten, zonder gegevens naar hen te verzenden en de -v
optie om meer uitgebreide informatie te geven.
De uitvoer ziet er ongeveer zo uit:
Als u alleen de regels met de open poorten wilt afdrukken, kunt u de resultaten filteren met het commando grep
.,
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!
U kunt ook Netcat gebruiken om de serversoftware en zijn versie te vinden. Bijvoorbeeld, als je een ‘EXIT’ – opdracht naar de server van de standaard SSH poort 22 :
echo "EXIT" | nc 10.10.8.8 22
De uitvoer zal er ongeveer zo uitzien:
SSH-2.0-OpenSSH_7.6p1 Ubuntu-4Protocol mismatch.
voor het scannen van UDP-poorten voeg de -u
optie om de opdracht, zoals hieronder weergegeven:
nc -z -v -u 10.10.8.8 20-80
Meestal Nmap is een beter instrument dan Netcat voor complexe port scanning.,
het verzenden van bestanden via Netcat #
Netcat kan worden gebruikt om gegevens van de ene host naar de andere over te dragen door een standaard client/server model te maken.
Dit werkt door de Netcat in te stellen om op een specifieke poort te luisteren (met behulp van de optie -l
) op de ontvangende host en vervolgens een reguliere TCP-verbinding van de andere host tot stand te brengen en het bestand erover te verzenden.,
voer het volgende commando uit dat de poort 5555 opent voor inkomende verbinding en de uitvoer doorstuurt naar het bestand:
nc -l 5555 > file_name
van de verzendende host connect to the ontvangende host and send the file:
nc receiving.host.com 5555 < file_name
om een map over te brengen kunt u tar
om de map op de bronhost te archiveren en het archief op de doelhost uit te pakken.
op de ontvangende host, stel het netcat gereedschap in om te luisteren naar een inkomende verbinding op poort 5555., De binnenkomende gegevens worden doorgeleid naar de opdracht tar
, die het archief zal uitpakken:
nc -l 5555 | tar xzvf -
op het verzendende hostpakket de map en de gegevens verzenden door verbinding te maken met het luisterproces nc
proces op de ontvangende host:
tar czvf - /path/to/dir | nc receiving.host.com 5555
u kunt de voortgang van de overdracht aan beide uiteinden bekijken. Eenmaal voltooid, typ CTRL+C
om de verbinding te sluiten.
een eenvoudige chatserver aanmaken #
de procedure voor het maken van een online chat tussen twee of meer hosts is dezelfde als bij het overzetten van bestanden.,
op de eerste host start een netcat-proces om te luisteren op poort 5555:
nc -l 5555
vanaf de tweede host voer het volgende commando uit om verbinding te maken met de luisterpoort:
nc first.host.com 5555
nu, als u een bericht typt en op ENTER
het zal getoond worden op beide gastheren.
om de verbinding te sluiten, typ CTRL+C
.
het uitvoeren van een HTTP-verzoek #
hoewel er veel betere hulpmiddelen zijn voor HTTP-verzoeken zoals curl
, kunt u Netcat ook gebruiken om verschillende verzoeken naar externe servers te verzenden.,
om bijvoorbeeld de netcat manpage van de OpenBSD-website op te halen, typt u:
printf "GET /nc.1 HTTP/1.1\r\nHost: man.openbsd.org\r\n\r\n" | nc man.openbsd.org 80
het volledige antwoord, inclusief de HTTP-headers en HTML-code, zal in de terminal worden afgedrukt.
conclusie #
In deze tutorial hebt u geleerd hoe u het netcat-hulpprogramma kunt gebruiken om TCP-en UDP-verbindingen tot stand te brengen en te testen.
voor meer informatie, bezoek de netcat manual pagina en lees over alle andere krachtige opties van het netcat Commando.
Leave a Reply