8 Netcat (nc) Command nga adunay mga Ehemplo


Ang Netcat (o nc sa laktud) usa ka yano apan gamhanan nga himan sa command-line sa networking nga gigamit alang sa paghimo sa bisan unsang operasyon sa Linux nga may kalabutan sa TCP, UDP, o UNIX-domain sockets.

Ang Netcat mahimong gamiton alang sa port scanning, port redirection, isip port listener (alang sa umaabot nga mga koneksyon); mahimo usab kini gamiton sa pag-abli sa hilit nga mga koneksyon ug uban pang mga butang. Gawas pa, mahimo nimo kini gamiton ingon usa ka backdoor aron maka-access sa usa ka target nga server.

Niini nga artikulo, among ipasabut ang mga sugo sa paggamit sa Netcat nga adunay mga pananglitan.

Giunsa ang Pag-install ug Paggamit sa Netcat sa Linux

Aron ma-install ang netcat package sa imong system, gamita ang default package manager para sa imong Linux distribution.

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

Sa higayon nga ma-install ang netcat package, mahimo kang magpadayon sa pagkat-on sa paggamit sa netcat command sa mosunod nga mga pananglitan.

Ang Netcat mahimong magamit alang sa pag-scan sa pantalan: aron mahibal-an kung unsang mga pantalan ang bukas ug nagpadagan sa mga serbisyo sa usa ka target nga makina. Mahimo kini mag-scan sa usa o daghang o lainlaing mga bukas nga pantalan.

Ania ang usa ka pananglitan, ang -z nga kapilian nagtakda sa nc nga yano nga mag-scan alang sa pagpamati sa mga daemon, nga wala gyud magpadala bisan unsang datos sa kanila. Ang -v nga opsyon makapahimo sa verbose mode ug -w nagtakda ug timeout alang sa koneksyon nga dili maestablisar.

$ 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

Gitugotan ka sa Netcat nga ibalhin ang mga file taliwala sa duha nga mga kompyuter o server sa Linux ug ang duha nga kini nga mga sistema kinahanglan nga na-install sa nc.

Pananglitan, aron makopya ang usa ka ISO image file gikan sa usa ka computer ngadto sa lain ug mamonitor ang pag-uswag sa pagbalhin (gamit ang pv utility), padagana ang mosunod nga command sa sender/server computer (diin anaa ang ISO file).

Kini modagan sa nc sa listening mode (-l flag) sa port 3000.

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

Ug sa receiver/client computer, padagana ang mosunod nga command para makuha ang file.

$ nc 192.168.1.4 3000 | pv | tar -zxf -

Mahimo usab nimo gamiton ang Netcat aron makahimo dayon og usa ka yano nga command-line messaging server. Sama sa miaging pananglitan sa paggamit, kinahanglan nga i-install ang nc sa duha nga mga sistema nga gigamit alang sa chat room.

Sa usa ka sistema, padagana ang mosunud nga mando aron mahimo ang chat server nga naminaw sa port 5000.

$ nc -l -vv -p 5000

Sa pikas nga sistema, padagana ang mosunod nga sugo aron maglunsad og chat session sa usa ka makina diin ang messaging server nagdagan.

$ nc 192.168.56.1 5000

Gamit ang -l nga opsyon sa nc command nga gigamit sa paghimo og usa ka batakan, walay kasegurohan nga web server aron sa pag-alagad sa mga static nga web file alang sa mga katuyoan sa pagkat-on. Aron ipakita kini, paghimo ug .html file sama sa gipakita.

$ vim index.html

Idugang ang mosunod nga mga linya sa HTML sa file.

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

I-save ang mga pagbag-o sa file ug paggawas.

Dayon i-serve ang naa sa ibabaw nga file sa HTTP pinaagi sa pagpadagan sa mosunod nga command, nga makapahimo sa HTTP server nga magpadayon sa pagdagan.

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

Dayon ablihi ang usa ka web browser ug ma-access ang sulod gamit ang mosunod nga adres.

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

Timan-i nga mahimo nimong pahunongon ang Netcat HTTP server pinaagi sa pagpindot sa [Ctrl+ C].

Laing mapuslanon nga paggamit sa Netcat mao ang pag-troubleshoot sa mga isyu sa koneksyon sa server. Dinhi, mahimo nimong gamiton ang Netcat aron masusi kung unsang datos ang gipadala sa usa ka server agig tubag sa mga mando nga gi-isyu sa kliyente.

Ang mosunod nga sugo nagkuha sa home page sa example.com.

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

Ang output sa sugo sa ibabaw naglakip sa mga ulohan nga gipadala sa web-server nga mahimong gamiton alang sa mga katuyoan sa pag-troubleshoot.

Mahimo usab nimo gamiton ang Netcat aron makakuha og mga port banner. Sa kini nga kaso, isulti kanimo kung unsang serbisyo ang nagdagan sa luyo sa usa ka pantalan. Pananglitan aron mahibal-an kung unsang klase sa serbisyo ang nagdagan sa luyo sa port 22 sa usa ka piho nga server, padagana ang mosunud nga mando (ilisan ang 192.168.56.110 sa IP address sa target nga server). Ang -n nga bandila nagpasabot sa pag-disable sa DNS o mga pagpangita sa serbisyo.

$ nc -v -n 192.168.56.110 80

Gisuportahan usab sa Netcat ang paghimo sa mga socket sa stream sa UNIX-domain. Ang mosunod nga sugo maghimo ug maminaw sa usa ka UNIX-domain stream socket.

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

Mahimo usab nimo nga ipadagan ang Netcat isip backdoor. Apan, kini nagkinahanglan ug dugang trabaho. Kung ang Netcat na-install sa usa ka target nga server, mahimo nimo kini gamiton sa paghimo og backdoor, aron makakuha usa ka hilit nga command prompt.

Aron molihok sa usa ka backdoor kinahanglan nimo ang Netcat nga maminaw sa usa ka pinili nga pantalan (e.g. port 3001) sa target nga server ug unya makakonektar ka niini nga pantalan gikan sa imong makina sama sa mosunod.

Kini ang sugo nga gituyo nga modagan sa hilit nga server diin ang -d nga opsyon nagpugong sa pagbasa gikan sa stdin, ug ang -e nagtino sa sugo nga modagan sa target nga sistema.

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

Katapusan apan dili labing gamay, ang Netcat mahimong magamit ingon usa ka proxy alang sa lainlaing mga serbisyo/protocol lakip ang HTTP, SSH, ug daghan pa. Para sa dugang nga impormasyon, tan-awa ang man page niini.

$ man nc

Niini nga artikulo, among gipatin-aw ang 8 praktikal nga mga pananglitan sa paggamit sa sugo sa Netcat. Kung nahibal-an nimo ang bisan unsang ubang praktikal nga (mga) kaso sa paggamit, ipaambit kanamo pinaagi sa porma sa feedback sa ubos. Makapangutana ka usab.