Android

Netcat (nc) parancs példákkal

Linux Terminal 101: Netcat

Linux Terminal 101: Netcat

Tartalomjegyzék:

Anonim

A Netcat (vagy nc) egy olyan parancssori segédprogram, amely a TCP vagy az UDP protokollok segítségével olvassa és írja az adatokat a hálózati kapcsolatokon keresztül. Ez a hálózat és a rendszergazdák arzenáljának egyik legerőteljesebb eszköze, és a svájci hadsereg hálózati eszközének tekintik.

A Netcat platformközi, és elérhető Linux, macOS, Windows és BSD számára. A Netcat segítségével megkeresheti és megfigyelheti a hálózati kapcsolatokat, megkeresheti a nyitott portokat, továbbíthatja az adatokat proxyként és így tovább. A Netcat csomag előre telepítve van a macOS és a népszerű Linux disztribúciókhoz, például az Ubuntu.

Netcat szintaxis

A Netcat segédprogram legalapvetõbb szintaxisa a következõ:

nc host port

Az Ubuntu rendszeren netcat vagy nc is használható. Mindketten hivatkoznak a Netcat OpenBSD verziójára.

Alapértelmezés szerint a Netcat megpróbálja TCP kapcsolatot indítani a megadott gazdagéphez és porthoz. Ha UDP kapcsolatot szeretne létrehozni, használja a -u opciót:

nc -u host port

Port szkennelés

A portok szkennelése az egyik leggyakoribb alkalmazás a Netcat számára. Szkennelhet egyetlen portot vagy egy porttartományt.

Például a 20–80 tartományban lévő nyitott portok keresésére a következő parancsot használja:

nc -z -v 10.10.8.8 20-80

A -z opció megmondja az nc hogy csak a nyitott portokat keresse meg anélkül, hogy rájuk -v adatokat, és a -v opció további bővebb információt szolgáltatna.

A kimenet így néz ki:

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!

A Netcat segítségével a kiszolgálószoftvert és annak verzióját is megtalálhatja. Például, ha “EXIT” parancsot küld az alapértelmezett SSH port 22 kiszolgálójára:

echo "EXIT" | nc 10.10.8.8 22

A kimenet így néz ki:

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

UDP-portok kereséséhez egyszerűen adja hozzá a -u beállítást a parancshoz, az alább látható módon:

nc -z -v -u 10.10.8.8 20-80

A legtöbb helyzetben az Nmap jobb eszköz, mint a Netcat, a bonyolult portok szkenneléséhez.

Fájlok küldése a Netcat-en keresztül

A Netcat felhasználható adatátvitelre egyik gazdagépről a másikra egy alapvető kliens / szerver modell létrehozásával.

Ez úgy működik, hogy beállítja a Netcat-ot, hogy hallgasson egy adott porton (az -l opcióval) a fogadó gazdagépen, majd létrehozzon egy szokásos TCP kapcsolatot a másik gazdagépről, és elküldje a fájlt rajta.

A fogadó futtatáskor a következő parancs nyitja meg az 5555 portot a bejövő kapcsolatokhoz és átirányítja a kimenetet a fájlba:

nc -l 5555 > file_name

A küldő gazdagépről csatlakoztassa a fogadó gazdagépet, és küldje el a fájlt:

nc receiving.host.com 5555 < file_name

A könyvtár átviteléhez a tar segítségével archiválhatja a könyvtárat a forrásgépen, és kibonthatja az archívumot a célgazdagépen.

A fogadó gazdagépen állítsa be a Netcat eszközt, hogy figyeljen a bejövő kapcsolatokra az 5555 porton. A bejövő adatokat a tar parancsba továbbítják, amely kinyomtatja az archívumot:

nc -l 5555 | tar xzvf -

A küldő gazdagépen csomagolja a könyvtárat, és küldje el az adatokat úgy, hogy csatlakozik a fogadó gazdagép nc hallgatási folyamatához:

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

A transzfer előrehaladását mindkét végén megnézheti. Ha kész, írja be a CTRL+C billentyűt a kapcsolat bezárásához.

Egyszerű csevegőszerver létrehozása

Két vagy több gazdagép közötti online csevegés létrehozásának folyamata ugyanaz, mint a fájlok átvitelekor.

Az első gazdagépen indítsa el a Netcat folyamatot az 5555-ös porton való meghallgatáshoz:

nc -l 5555

A második gazdagépről futtassa a következő parancsot a csatlakozáshoz a figyelő porthoz:

nc first.host.com 5555

Ha beír egy üzenetet, és megnyomja az ENTER , akkor az mindkét gazdagépen megjelenik.

A kapcsolat bezárásához írja be a CTRL+C .

HTTP kérés végrehajtása

Noha vannak sokkal jobb eszközök a HTTP kérésekhez, mint például a curl, a Netcat segítségével különféle kéréseket is küldhet a távoli szerverekre.

Például, ha le szeretné tölteni a Netcat man oldalt az OpenBSD webhelyről, írja be:

printf "GET /nc.1 HTTP/1.1\r\nHost: man.openbsd.org\r\n\r\n" | nc man.openbsd.org 80

A teljes válasz, amely tartalmazza a HTTP fejléceket és a HTML kódot, a terminálon kerül kinyomtatásra.

Következtetés

Ebben az oktatóanyagban megtanulta, hogyan lehet a Netcat segédprogramot létrehozni és tesztelni a TCP és UDP kapcsolatokat.

További információkért keresse fel a Netcat man oldalt, és olvassa el a Netcat parancs összes többi hatékony opcióját.

netcat terminál