Android

Netcat (nc) -komento esimerkein

Netcat Tutorial - The Swiss Army Knife of Network Tools

Netcat Tutorial - The Swiss Army Knife of Network Tools

Sisällysluettelo:

Anonim

Netcat (tai nc) on komentoriviohjelma, joka lukee ja kirjoittaa tietoja verkkoyhteyksien kautta TCP- tai UDP-protokollia käyttämällä. Se on yksi tehokkaimmista verkon ja järjestelmänvalvojien arsenaalin työkaluista, ja sitä pidetään sveitsiläisen armeijan verkkotyökalujen veitsenä.

Netcat on monialustainen ja se on saatavana Linuxille, macOS, Windows ja BSD. Voit käyttää Netcatia verkkoyhteyksien virheenkorjaukseen ja seuraamiseen, avoimien porttien etsimiseen, tiedonsiirtoon välityspalvelimena ja muihin. Netcat-paketti on esiasennettu macOS: iin ja suosittuihin Linux-jakeluihin, kuten Ubuntu.

Netcat-syntaksi

Netcat-apuohjelman perusteellisin syntaksi on seuraavassa muodossa:

nc host port

Ubuntulla voit käyttää joko netcat tai nc . Ne molemmat ovat linkkejä Netcatin OpenBSD-versioon.

Oletuksena Netcat yrittää käynnistää TCP-yhteyden määritettyyn isäntään ja porttiin. Jos haluat luoda UDP-yhteyden, käytä -u vaihtoehtoa:

nc -u host port

Portin skannaus

Porttien skannaaminen on yksi yleisimmistä Netcat-käyttökohteista. Voit skannata yhden portin tai porttialueen.

Esimerkiksi seuraavien komentojen etsimiseksi alueella 20-80 avoimia portteja:

nc -z -v 10.10.8.8 20-80

-z asetus käskee nc : n tarkistamaan vain avoimet portit, lähettämättä niihin tietoja, ja -v vaihtoehto antaa enemmän sanallisia tietoja.

Tulos näyttää tältä:

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!

Voit käyttää Netcat-sovellusta myös palvelinohjelmiston ja sen version löytämiseen. Jos esimerkiksi lähetät “EXIT” -komennon SSH-oletusportin 22 palvelimelle:

echo "EXIT" | nc 10.10.8.8 22

Tulos näyttää tältä:

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

Voit tarkistaa UDP-portit lisäämällä -u vaihtoehdon komentoon seuraavan kuvan mukaisesti:

nc -z -v -u 10.10.8.8 20-80

Useimmissa tilanteissa Nmap on parempi kuin Netcat-työkalu monimutkaiseen porttiskannaukseen.

Tiedostojen lähettäminen Netcatin kautta

Netcat-sovellusta voidaan käyttää tiedon siirtämiseen isäntästä toiseen luomalla perusasiakkaan / palvelimen malli.

Tämä toimii määrittämällä Netcat kuuntelemaan tiettyä vastaanottavan isännän porttia (käyttämällä -l vaihtoehtoa) ja muodostamalla sitten säännöllisen TCP-yhteyden toisesta isäntästä ja lähettämällä tiedoston sen yli.

Seuraava komento, joka avaa portin 5555 tulevaa yhteyttä varten, ohjaa lähtö lähtö tiedostoon:

nc -l 5555 > file_name

Yhdistä lähettävältä isäntältä vastaanottavaan isäntään ja lähetä tiedosto:

nc receiving.host.com 5555 < file_name

Hakemiston siirtämiseksi voit käyttää tar: tä arkistoidaksesi hakemiston lähdepalvelimessa ja purkamalla arkiston kohdeisäntässä.

Aseta vastaanottavaan isäntään Netcat-työkalu kuuntelemaan saapuvaa yhteyttä portissa 5555. Saapuva data johdetaan tar-komentoon, joka purkaa arkiston:

nc -l 5555 | tar xzvf -

Lähettävän isäntäpaketin hakemistoon ja lähetä tiedot yhdistämällä vastaanottavaan isäntään kuuntelemiseen nc prosessi:

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

Voit seurata siirron etenemistä molemmista päistä. Kun olet valmis, kirjoita CTRL+C sulkeaksesi yhteyden.

Yksinkertaisen chat-palvelimen luominen

Verkkokeskustelujen luominen kahden tai useamman isännän välillä on sama kuin tiedostoja siirrettäessä.

Ensimmäisessä isäntänä käynnistä Netcat-prosessi kuunnellaksesi portissa 5555:

nc -l 5555

Toisesta isännästä suorita seuraava komento muodostaaksesi yhteyden kuunteluporttiin:

nc first.host.com 5555

Jos kirjoitat viestin ja painat ENTER painiketta, se näkyy molemmissa koneissa.

Lopeta yhteys kirjoittamalla CTRL+C

Suoritetaan HTTP-pyyntö

Vaikka HTTP-pyyntöihin, kuten kiharaan, on paljon parempia työkaluja, voit käyttää Netcat-ohjelmaa myös lähettämään erilaisia ​​pyyntöjä etäpalvelimille.

Voit esimerkiksi hakea Netcat-man-sivun OpenBSD-verkkosivustolta kirjoittamalla:

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

Koko vastaus, joka sisältää HTTP-otsikot ja HTML-koodin, tulostetaan päätteessä.

johtopäätös

Tässä opetusohjelmassa olet oppinut Netcat-apuohjelman avulla TCP- ja UDP-yhteyksien luomiseen ja testaamiseen.

Lisätietoja on Netcat-man-sivulla ja lukea kaikista muista Netcat-komennon tehokkaista vaihtoehdoista.

netcat-terminaali