Android

Netcat (nc) -opdracht met voorbeelden

Use Netcat to Spawn Reverse Shells & Connect to Other Computers [Tutorial]

Use Netcat to Spawn Reverse Shells & Connect to Other Computers [Tutorial]

Inhoudsopgave:

Anonim

Netcat (of nc) is een opdrachtregelprogramma dat gegevens leest en schrijft over netwerkverbindingen, met behulp van de TCP- of UDP-protocollen. Het is een van de krachtigste tools in het arsenaal van netwerk- en systeembeheerders en wordt beschouwd als een Zwitsers zakmes met netwerkhulpmiddelen.

Netcat is platformonafhankelijk en beschikbaar voor Linux, macOS, Windows en BSD. U kunt Netcat gebruiken voor het opsporen van fouten en het controleren van netwerkverbindingen, zoeken naar open poorten, gegevens overdragen, als proxy en meer. Het Netcat-pakket is vooraf geïnstalleerd op macOS en populaire Linux-distributies zoals Ubuntu.

Netcat-syntaxis

De meest elementaire syntaxis van het hulpprogramma Netcat heeft de volgende vorm:

nc host port

Op Ubuntu kunt u netcat of nc . Ze zijn beide symlinks naar de openBSD-versie van Netcat.

Standaard probeert Netcat een TCP-verbinding met de opgegeven host en poort te starten. Als u een UDP-verbinding tot stand wilt brengen, gebruikt u de optie -u :

nc -u host port

Poort scannen

Scannen van poorten is een van de meest voorkomende toepassingen voor Netcat. U kunt een enkele poort of een poortbereik scannen.

Als u bijvoorbeeld wilt zoeken naar open poorten in het bereik 20-80, gebruikt u de volgende opdracht:

nc -z -v 10.10.8.8 20-80

De optie -z zal nc vertellen dat alleen naar open poorten moet worden gescand, zonder dat er gegevens naar moeten worden verzonden, en de optie -v biedt meer uitgebreide informatie.

De uitvoer ziet er ongeveer zo uit:

nc: connect to 10.10.8.8 port 20 (tcp) failed: Connection refused nc: connect to 10.10.8.8 port 21 (tcp) failed: Connection refused Connection to 10.10.8.8 22 port succeeded! nc: connect to 10.10.8.8 port 23 (tcp) failed: Connection refused… nc: connect to 10.10.8.8 port 79 (tcp) failed: Connection refused Connection to 10.10.8.8 80 port succeeded!

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 Netcat ook gebruiken om de serversoftware en de versie ervan te vinden. Als u bijvoorbeeld een "EXIT" -opdracht naar de server op de standaard SSH-poort 22 verzendt:

echo "EXIT" | nc 10.10.8.8 22

De uitvoer ziet er ongeveer zo uit:

SSH-2.0-OpenSSH_7.6p1 Ubuntu-4 Protocol mismatch.

Om naar UDP-poorten te scannen, voegt u eenvoudig de optie -u aan de opdracht zoals hieronder wordt weergegeven:

nc -z -v -u 10.10.8.8 20-80

In de meeste situaties is Nmap een betere tool dan Netcat voor complexe poortscans.

Bestanden verzenden 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 normale TCP-verbinding tot stand te brengen vanaf de andere host en het bestand eroverheen te verzenden.

Voer bij ontvangst de volgende opdracht uit die de poort 5555 voor inkomende verbinding opent en de uitvoer naar het bestand omleidt:

nc -l 5555 > file_name

Maak vanaf de verzendende host verbinding met de ontvangende host en verzend het bestand:

nc receiving.host.com 5555 < file_name

Om een ​​map over te dragen, kunt u tar gebruiken om de map op de bronhost te archiveren en om het archief op de doelhost uit te pakken.

Stel op de ontvangende host het hulpprogramma Netcat in om te luisteren naar een inkomende verbinding op poort 5555. De inkomende gegevens worden doorgestuurd naar de opdracht tar die het archief zal extraheren:

nc -l 5555 | tar xzvf -

Op het verzendende hostpakket de map en verzend de gegevens door verbinding te maken met het luisterproces op de ontvangende host:

tar czvf - /path/to/dir | nc receiving.host.com 5555

U kunt de overdracht aan beide kanten bekijken. Typ na voltooiing CTRL+C om de verbinding te sluiten.

Een eenvoudige chatserver maken

De procedure voor het maken van een onlinechat tussen twee of meer hosts is dezelfde als bij het overbrengen van bestanden.

Start op de eerste host een Netcat-proces om te luisteren op poort 5555:

nc -l 5555

Voer vanaf de tweede host de volgende opdracht uit om verbinding te maken met de luisterpoort:

nc first.host.com 5555

Als u nu een bericht typt en op ENTER drukt, wordt dit op beide hosts weergegeven.

Typ CTRL+C om de verbinding te sluiten.

Een HTTP-verzoek uitvoeren

Hoewel er veel betere tools zijn voor HTTP-aanvragen zoals curl, kunt u Netcat ook gebruiken om verschillende aanvragen naar externe servers te verzenden.

Als u bijvoorbeeld de Netcat-manpagina van de OpenBSD-website wilt ophalen, 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 wordt in de terminal afgedrukt.

Conclusie

In deze zelfstudie hebt u geleerd hoe u het hulpprogramma Netcat kunt gebruiken om TCP- en UDP-verbindingen tot stand te brengen en te testen.

Ga voor meer informatie naar de Netcat-manpagina en lees over alle andere krachtige opties van de opdracht Netcat.

netcat-terminal