8 Netcat (nc) -komento esimerkkien avulla


Netcat (tai lyhyesti sanottuna nc) on yksinkertainen mutta tehokas verkon komentorivityökalu, jota käytetään suorittamaan Linuxissa kaikki TCP-, UDP- tai UNIX-toimialueisiin liittyvät toiminnot.

Netcatia voidaan käyttää porttien skannaukseen, porttien uudelleenohjaamiseen, porttien kuuntelijana (saapuviin yhteyksiin) sitä voidaan käyttää myös etäyhteyksien avaamiseen ja niin moniin muihin asioihin. Lisäksi voit käyttää sitä takaovena päästäksesi kohdepalvelimeen.

Tässä artikkelissa selitämme Netcatin käyttökomentoja esimerkeillä.

Netcatin asentaminen ja käyttö Linuxissa

Asenna netcat-paketti järjestelmääsi käyttämällä Linux-jakelusi oletuspakettien hallintaa.

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

Kun netcat-paketti on asennettu, voit oppia netcat-komennon käytön seuraavissa esimerkeissä.

Netcatia voidaan käyttää porttien skannaukseen: tietää, mitkä portit ovat auki ja käyttävät palveluja kohdekoneessa. Se voi skannata yhden tai useita tai useita avoimia portteja.

Tässä on esimerkki, että -z -asetus asettaa nc: n yksinkertaisesti etsimään kuuntelevien deemonien lähettämättä heille mitään dataa. Vaihtoehto -v sallii tarkan tilan ja -w määrittää aikakatkaisun yhteydelle, jota ei voida muodostaa.

$ 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

Netcatin avulla voit siirtää tiedostoja kahden Linux-tietokoneen tai palvelimen välillä, ja molemmissa järjestelmissä on oltava asennettuna nc.

Jos haluat esimerkiksi kopioida ISO-kuvatiedoston tietokoneesta toiseen ja seurata siirron edistymistä (pv-apuohjelman avulla), suorita seuraava komento lähettäjä/palvelin-tietokoneessa (missä ISO-tiedosto on olemassa).

Tämä suorittaa nc: n kuuntelutilassa ( -l lippu) portissa 3000.

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

Suorita seuraava komento vastaanottimessa/asiakastietokoneessa tiedoston saamiseksi.

$ nc 192.168.1.4 3000 | pv | tar -zxf -

Voit myös luoda Netcatin avulla yksinkertaisen komentorivipalvelinpalvelimen välittömästi. Kuten edellisessä käyttöesimerkissä, nc on asennettava molempiin keskusteluhuoneessa käytettäviin järjestelmiin.

Suorita seuraava komento yhdellä järjestelmällä luodaksesi chat-palvelimen kuuntelemalla porttia 5000.

$ nc -l -vv -p 5000

Suorita seuraava järjestelmä käynnistämällä chat-istunto tietokoneelle, jossa viestipalvelin on käynnissä, suorittamalla seuraava komento.

$ nc 192.168.56.1 5000

Napsauta nc-komennon -l vaihtoehtoa, jota käytetään luomaan perus, epävarma verkkopalvelin staattisten verkkotiedostojen palvelemiseksi oppimistarkoituksiin. Tämän osoittamiseksi luo .html -tiedosto kuvan mukaisesti.

$ vim index.html

Lisää seuraavat HTML-rivit tiedostoon.

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

Tallenna muutokset tiedostoon ja poistu.

Palauta sitten yllä oleva tiedosto HTTP: n kautta suorittamalla seuraava komento, jonka avulla HTTP-palvelin voi toimia jatkuvasti.

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

Avaa sitten verkkoselain ja pääset sisältöön seuraavalla osoitteella.

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

Huomaa, että voit pysäyttää Netcat HTTP -palvelimen painamalla [Ctrl + C] .

Toinen hyödyllinen Netcatin käyttö on palvelimen yhteysongelmien vianmääritys. Tässä voit tarkistaa Netcatin avulla, mitä tietoja palvelin lähettää vastauksena asiakkaan antamiin komentoihin.

Seuraava komento hakee esimerkin.com kotisivun.

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

Yllä olevan komennon lähtö sisältää verkkopalvelimen lähettämät otsikot, joita voidaan käyttää vianmääritystarkoituksiin.

Voit myös Netcatin avulla hankkia porttibannerit. Tässä tapauksessa se kertoo sinulle, mikä palvelu toimii tietyn portin takana. Jos haluat esimerkiksi tietää, minkä tyyppinen palvelu on käynnissä portin 22 takana tietyllä palvelimella, suorita seuraava komento (korvaa 192.168.56.110 kohdepalvelimen IP-osoitteella). -n -lippu tarkoittaa DNS- tai palveluhakujen poistamista käytöstä.

$ nc -v -n 192.168.56.110 80

Netcat tukee myös UNIX-verkkotunnuksen stream-pistorasioiden luomista. Seuraava komento luo ja kuuntelee UNIX-toimialueen virtapistoketta.

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

Voit käyttää Netcatia yhtä hyvin kuin takaovea. Tämä edellyttää kuitenkin lisää työtä. Jos Netcat on asennettu kohdepalvelimeen, voit käyttää sitä luodaksesi takaoven, saadaksesi etäkomennokehotteen.

Takaoven käyttö edellyttää, että Netcat kuuntelee kohdepalvelimen valittua porttia (esim. Portti 3001), ja voit sitten muodostaa yhteyden tähän porttiin koneeltasi seuraavasti.

Tämä on komento, joka on tarkoitettu suoritettavaksi etäpalvelimessa, jossa -d -vaihtoehto estää stdinistä lukemisen, ja -e määrittää komentojärjestelmän suoritettavan komennon.

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

Viimeisenä mutta ei vähäisimpänä, Netcatia voidaan käyttää välityspalvelimena erilaisille palveluille/protokollille, mukaan lukien HTTP, SSH ja monet muut. Lisätietoja on sen man-sivulla.

$ man nc

Tässä artikkelissa olemme selittäneet 8 käytännön esimerkkiä Netcat-komentojen käytöstä. Jos tiedät muita käytännön käytäntöjä, jaa kanssamme alla olevan palautelomakkeen kautta. Voit myös esittää kysymyksen.