Netcat Tutorial - The Swiss Army Knife of Network Tools
Sisällysluettelo:
- Netcat-syntaksi
- Portin skannaus
- Tiedostojen lähettäminen Netcatin kautta
- Yksinkertaisen chat-palvelimen luominen
- Suoritetaan HTTP-pyyntö
- johtopäätös
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:
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-terminaaliDocker-ajokomento esimerkein
Telakointiajurin komento luo säilön annetusta kuvasta ja käynnistää säilön annetulla komennolla. Se on yksi ensimmäisistä komennoista, jotka sinun tulee perehtyä työskennellessäsi Dockerin kanssa.
Linuxin leikkauskomento esimerkein
Leikkaa on komentorivi-apuohjelma, jonka avulla voit leikata rivien osia määritellyistä tiedostoista tai pipedistä ja tulostaa tuloksen vakiotulosteeseen. Tässä opetusohjelmassa näytämme sinulle kuinka käyttää Linuxin leikkauskomentoa käytännön esimerkkien ja yksityiskohtaisten selitysten avulla yleisimmistä leikkausvaihtoehdoista.
Linux päiväyskomento esimerkein
Päivämääräkomento näyttää tai asettaa järjestelmän päivämäärän. Sitä käytetään yleisimmin päivämäärän ja ajan tulostamiseen eri muodoissa sekä tulevien ja viimeisten päivämäärien laskemiseen.







