Weboldal keresés

8 Netcat (nc) parancs példákkal


A Netcat (vagy röviden az nc) egy egyszerű, de hatékony hálózati parancssori eszköz, amely a TCP-vel kapcsolatos bármilyen művelet végrehajtására használható Linuxban.UDP vagy UNIX-domain socketekkel.

A Netcat használható portkereséshez, port átirányításhoz, portfigyelőként (bejövő kapcsolatokhoz); távoli kapcsolatok megnyitására és sok más dologra is használható. Ezenkívül használhatja hátsó ajtóként, hogy hozzáférjen egy célkiszolgálóhoz.

Ebben a cikkben példákkal magyarázzuk el a Netcat használati parancsokat.

A Netcat telepítése és használata Linux alatt

A netcat csomag telepítéséhez használja a Linux disztribúció alapértelmezett csomagkezelőjét.

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

A netcat csomag telepítése után továbbléphet, hogy megtanulja a netcat parancs használatát a következő példákban.

Port szkennelés

A Netcat portellenőrzéshez használható: megtudhatja, hogy mely portok vannak nyitva, és mely szolgáltatásokat futnak a célgépen. Egyetlen vagy több vagy egy sor nyitott portot képes beolvasni.

Íme egy példa, a -z opció úgy állítja be az nc-t, hogy egyszerűen megkeresse a figyelő démonokat anélkül, hogy adatokat küldene nekik. A -v opció engedélyezi a bőbeszédű módot, a -w pedig időtúllépést ad meg a kapcsolathoz, amelyet nem lehet létrehozni.

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

Fájlok átvitele Linux szerverek között

A Netcat lehetővé teszi a fájlok átvitelét két Linux-számítógép vagy szerver között, és mindkét rendszeren telepíteni kell az nc programot.

Például egy ISO-képfájl egyik számítógépről a másikra másolásához és az átvitel folyamatának figyeléséhez (a pv segédprogram segítségével), futtassa a következő parancsot a küldő/kiszolgáló számítógépen (ahol az ISO fájl létezik).

Ez az nc programot hallgatási módban fogja futtatni (-l jelző) a 3000 porton.

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

A vevő/kliens számítógépen futtassa a következő parancsot a fájl beszerzéséhez.

nc 192.168.1.4 3000 | pv | tar -zxf -

Hozzon létre egy parancssori csevegőkiszolgálót

A Netcat segítségével azonnal létrehozhat egy egyszerű, parancssori üzenetküldő szervert. Az előző használati példához hasonlóan az nc-t telepíteni kell a csevegőszobához használt mindkét rendszerre.

Az egyik rendszeren futtassa a következő parancsot az 5000 porton figyelő csevegőkiszolgáló létrehozásához.

nc -l -vv -p 5000

A másik rendszeren futtassa a következő parancsot, hogy csevegést indítson egy olyan gépen, amelyen az üzenetküldő kiszolgáló fut.

nc 192.168.56.1 5000

Hozzon létre egy alap webszervert

Az nc parancs -l opciójával egy alapvető, nem biztonságos webszervert hozhat létre statikus webfájlok tanulási célú kiszolgálására. Ennek demonstrálásához hozzon létre egy .html fájlt az ábra szerint.

vim index.html

Adja hozzá a következő HTML-sorokat a fájlhoz.

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

Mentse el a változtatásokat a fájlban, és lépjen ki.

Ezután szolgálja ki a fenti fájlt HTTP-n keresztül a következő parancs futtatásával, amely lehetővé teszi a HTTP-kiszolgáló folyamatos futtatását.


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

Ezután nyissa meg a webböngészőt, és a következő címen érheti el a tartalmat.

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

Ne feledje, hogy leállíthatja a Netcat HTTP-kiszolgálót a [Ctrl+C] megnyomásával.

A Linux Server Connection hibaelhárítása

A Netcat másik hasznos felhasználási módja a szerverkapcsolati problémák elhárítása. Itt a Netcat segítségével ellenőrizheti, hogy a szerver milyen adatokat küld az ügyfél által kiadott parancsokra válaszul.

A következő parancs lekéri az example.com kezdőlapját.

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

A fenti parancs kimenete tartalmazza a webszerver által küldött fejléceket, amelyek hibaelhárítási célokra használhatók.

Keressen egy porton futó szolgáltatást

A Netcat segítségével portbannereket is szerezhet. Ebben az esetben megmondja, hogy egy bizonyos port mögött milyen szolgáltatás fut. Ha például meg szeretné tudni, hogy egy adott szerveren milyen típusú szolgáltatás fut a 22-es port mögött, futtassa a következő parancsot (a 192.168.56.110 helyére cserélje ki a célszerver IP-címét). A -n jelző a DNS- vagy szolgáltatáskeresések letiltását jelenti.

nc -v -n 192.168.56.110 80

Hozzon létre egy Stream Socketet

A Netcat támogatja a UNIX tartománybeli adatfolyam socketek létrehozását is. A következő parancs létrehoz egy UNIX-tartománybeli adatfolyam-socketet, és meghallgatja azt.

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

Hozzon létre egy hátsó ajtót

A Netcat programot hátsó ajtóként is futtathatja. Ez azonban több munkát igényel. Ha a Netcat telepítve van egy célszerveren, használhatja hátsó ajtó létrehozására, és távoli parancssort kaphat.

A hátsó ajtó működéséhez Netcat szükséges, hogy figyeljen a célszerver kiválasztott portjára (pl. 3001), majd a következő módon csatlakozhat ehhez a porthoz a gépéről.

Ez az a parancs, amely a távoli kiszolgálón fut, ahol a -d opció letiltja az stdin olvasást, a -e pedig a célrendszeren futtatandó parancsot határozza meg.

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

Végül, de nem utolsósorban, a Netcat különböző szolgáltatások/protokollok proxyjaként használható, beleértve a HTTP-t, az SSH-t és még sok mást. További információkért tekintse meg a kézikönyv oldalát.

man nc

Ebben a cikkben 8 gyakorlati Netcat parancshasználati példát ismertetünk. Ha tud más gyakorlati felhasználási eset(eke)t, ossza meg velünk az alábbi visszajelzési űrlapon keresztül. Feltehetsz egy kérdést is.