Zoeken op website

8 Netcat (nc)-opdracht met voorbeelden


Netcat (of kortweg nc) is een eenvoudig maar krachtig opdrachtregelprogramma voor netwerken dat wordt gebruikt voor het uitvoeren van elke bewerking in Linux die verband houdt met TCP, UDP- of UNIX-domein sockets.

Netcat kan worden gebruikt voor poortscannen, poortomleiding, als poortluisteraar (voor inkomende verbindingen); het kan ook worden gebruikt om externe verbindingen te openen en zoveel andere dingen. Bovendien kunt u het gebruiken als achterdeur om toegang te krijgen tot een doelserver.

In dit artikel leggen we de gebruiksopdrachten van Netcat uit met voorbeelden.

Hoe Netcat onder Linux te installeren en te gebruiken

Om het netcat-pakket op uw systeem te installeren, gebruikt u de standaardpakketbeheerder voor uw Linux-distributie.

yum install nc                  [On CentOS/RHEL]
dnf install nc                  [On Fedora 22+ and RHEL 8]
sudo apt-get install Netcat     [On Debian/Ubuntu]

Zodra het netcat-pakket is geïnstalleerd, kunt u verdergaan met het leren gebruiken van het netcat-commando in de volgende voorbeelden.

Poort scannen

Netcat kan worden gebruikt voor het scannen van poorten: om te weten welke poorten open zijn en welke services actief zijn op een doelmachine. Het kan een enkele of meerdere of een reeks open poorten scannen.

Hier is een voorbeeld. Met de optie -z wordt nc eenvoudigweg gescand op luisterende daemons, zonder daadwerkelijk gegevens naar hen te sturen. De optie -v schakelt de uitgebreide modus in en -w specificeert een time-out voor de verbinding die niet tot stand kan worden gebracht.

nc -v -w 2 z 192.168.56.1 22     #scan a single port
OR
nc -v -w 2 z 192.168.56.1 22 80  #scan multiple ports
OR
nc -v -w 2 z 192.168.56.1 20-25  #scan range of ports

Bestanden overbrengen tussen Linux-servers

Met Netcat kunt u bestanden overbrengen tussen twee Linux-computers of -servers en op beide systemen moet nc zijn geïnstalleerd.

Als u bijvoorbeeld een ISO-imagebestand van de ene computer naar de andere wilt kopiëren en de voortgang van de overdracht wilt controleren (met behulp van het pv-hulpprogramma), voert u de volgende opdracht uit op de afzender/servercomputer (waar het ISO-bestand bestaat).

Hierdoor wordt nc uitgevoerd 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 de volgende opdracht uit om het bestand te verkrijgen.

nc 192.168.1.4 3000 | pv | tar -zxf -

Maak een opdrachtregelchatserver

U kunt Netcat ook gebruiken om direct een eenvoudige berichtenserver op de opdrachtregel te maken. Net als in het vorige gebruiksvoorbeeld moet nc worden geïnstalleerd op beide systemen die voor de chatroom worden gebruikt.

Voer op één systeem de volgende opdracht uit om de chatserver te creëren die luistert op poort 5000.

nc -l -vv -p 5000

Voer op het andere systeem de volgende opdracht uit om een chatsessie te starten op een machine waarop de berichtenserver actief is.

nc 192.168.56.1 5000

Maak een basiswebserver

Met de -l optie van nc command wordt gebruikt om een eenvoudige, onveilige webserver te creëren die statische webbestanden voor leerdoeleinden aanbiedt. Om dit te demonstreren, maakt u een .html-bestand, zoals weergegeven.

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>

Sla de wijzigingen in het bestand op en sluit af.

Bedien het bovenstaande bestand vervolgens via HTTP door de volgende opdracht uit te voeren, waardoor de HTTP-server continu kan werken.


while : ; do ( echo -ne "HTTP/1.1 200 OK\r\n" ; cat index.html; ) | nc -l -p 8080 ; done

Open vervolgens een webbrowser en krijg toegang tot de inhoud via het volgende adres.

http://localhost:8080
OR
http://SERVER_IP:8080

Merk op dat u de Netcat HTTP-server kunt stoppen door op [Ctrl+ C] te drukken.

Problemen met de Linux-serververbinding oplossen

Een ander nuttig gebruik van Netcat is het oplossen van serververbindingsproblemen. Hier kunt u Netcat gebruiken om te verifiëren welke gegevens een server verzendt als reactie op opdrachten van de client.

Met de volgende opdracht wordt de startpagina van example.com opgehaald.

printf "GET / HTTP/1.0\r\n\r\n" | nc text.example.com 80

De uitvoer van de bovenstaande opdracht bevat de headers die door de webserver zijn verzonden en die kunnen worden gebruikt voor probleemoplossingsdoeleinden.

Zoek een service die op poort draait

U kunt Netcat ook gebruiken om poortbanners te verkrijgen. In dit geval zal het u vertellen welke service achter een bepaalde poort draait. Om bijvoorbeeld te weten welk type service achter poort 22 op een specifieke server draait, voert u de volgende opdracht uit (vervang 192.168.56.110 door het IP-adres van de doelserver). De vlag -n betekent dat DNS- of servicezoekopdrachten worden uitgeschakeld.

nc -v -n 192.168.56.110 80

Maak een Stream Sockets

Netcat ondersteunt ook het maken van UNIX-domeinstreamsockets. Met de volgende opdracht wordt een UNIX-domeinstreamsocket gemaakt en beluisterd.

nc -lU /var/tmp/mysocket &
ss -lpn | grep "/var/tmp/"

Creëer een achterdeur

U kunt Netcat net zo goed als achterdeur gebruiken. Dit vergt echter meer werk. Als Netcat op een doelserver is geïnstalleerd, kunt u deze gebruiken om een achterdeur te maken en een opdrachtprompt op afstand te verkrijgen.

Om als achterdeur te fungeren heeft u Netcat nodig om te luisteren op een gekozen poort (bijvoorbeeld poort 3001) op de doelserver en vervolgens kunt u vanaf uw machine als volgt verbinding maken met deze poort.

Dit is de opdracht die bedoeld is om op de externe server te worden uitgevoerd, waarbij de optie -d het lezen van stdin uitschakelt, en -e de opdracht specificeert die op het doelsysteem moet worden uitgevoerd.

nc -L -p 3001 -d -e cmd.exe 

Last but not least kan Netcat worden gebruikt als proxy voor verschillende services/protocollen, waaronder HTTP, SSH en nog veel meer. Voor meer informatie, zie de manpagina ervan.

man nc

In dit artikel hebben we acht praktische voorbeelden van het gebruik van Netcat-opdrachten uitgelegd. Als u nog andere praktische toepassingen kent, kunt u deze met ons delen via het onderstaande feedbackformulier. Je kunt ook een vraag stellen.