Ncat: The Network Swiss Army Knife


Du kan allerede være kjent med katten verktøyet, som kan sende filer til standard inngang og utgang. Ncat gjør noe lignende, bortsett fra det er for å sende data over nettverket eller godta data til en lokal maskin. I de rette hender, kan ncat være et svært nyttig verktøy for systemadministrasjon og feilsøking.

Sette opp Ncat bør være ganske lett. Den er pakket for de fleste store Linux-distribusjoner, så ingen kompilering bør kreves. Avhengig av distribusjonen, kan det pakkes separat eller som en del av Nmap pakken. Ncat er en del av nmap pakken på Ubuntu 9.10, og er ncat på opensuse. Merk at du også kan kjøre inn varianter av ncat kalt NetCat og andre. Det har blitt gjennomført på en rekke måter, men ncat er sannsynligvis den mest populære versjonen i bruk i dag. Du kan gjøre det meste de samme tingene med andre versjoner, men alternativene kan variere

Ncat er også tilgjengelig for andre plattformer. Hvis du arbeider med et blandet nettverk, sjekk ut Nmap.org nedlastingsside for å finne kildekoden og binærfiler for andre operativsystemer.

La oss ta en rask titt på noen av de tingene som ncat kan gjøre.

Kopiere filer

Du kan bruke ncat å overføre filer over nettverket i fravær av SSH /SFTP eller FTP. Jeg vet egentlig ikke anbefale det som en langsiktig erstatning, men du kan gjøre det. Slik gjør du: På maskinen å kopiere filen til, kjøre ncat -l 8080 > test.txt og på maskinen for å kopiere fra, bruker ncat remotehost
8080 --send-only < filnavn.

Hvis du utelater --send-bare, så ncat vil bare holde forbindelsen åpen inntil du trykker Ctrl-c på en av maskinene.

Så, hvorfor ville du bruke ncat snarere enn velprøvde scp eller sftp eller noen annen metode for å kopiere filer? Primært er dette et siste metoden når en av maskinene kan ikke ha SSH installert eller når en bruker ikke har tilgang til det eksterne systemet. Ønsker å la en venn eller klient kopiere en fil som er for store til å sende e-post til din server eller desktop uten å måtte opprette en konto for dem? Bruk ncat.

En annen bruk tilfellet kopierer resultatet av en kommando direkte til en annen maskin i stedet for å lage en fil lokalt og deretter overføre den. Du kan faktisk gjøre alle slags interessante ting som bruker ncat å kopiere data mellom maskiner, til og med kopiere hele diskbilder. Snarere enn å lage filer fra en disk image, kan du bare bruke ncat å kopiere en hel partisjon over en nettverksforbindelse direkte til en partisjon. Brukes med forsiktighet!

Testing Services

Min favoritt bruk av ncat er som en måte å teste hvordan tjenestene oppfører. Hvis du ønsker å " snakke " direkte til en tjeneste over nettverket, kan ncat brukes til å koble direkte til porten som du arbeider med, slik at du kan manuelt søke i tjenesten.

For eksempel kan du bruke ncat å teste SMTP, POP3 , IMAP, HTTP, eller bare om noen annen tjeneste der du kan " snakke " protokollen. For eksempel, hvis du ønsket å sende en e-post til å teste en SMTP-server du kan koble til serveren med ncat mail.localhost.net 25 og deretter følge standarden skript for å sende e-post.

Vil du se overskriftene sendt av en webserver? Koble til serveren med ncat servername.com 80 og deretter sende følgende kommandoer:


 GET /sidenavn HTTP /1.1host: www.servername.com 

Den blanke linjen er der du trykker på Enter igjen etter den andre linjen. Du skal se omtrent slik ut:


 HTTP /1.1 200 OKDate: Sol, 28 mars 2010 02:53:55 GMTServer: Apache /2.2.8 (Ubuntu) PHP /5.2.4 -2ubuntu5.10 med Suhosin-PatchX-Powered-By: PHP /5.2.4-2ubuntu5.10Set-Cookie: bb2_screener_ = 1269744842 + 163.160.113.196; path = /X-Pingback: http://www.host.net/xmlrpc.phpLink: < http: //wp.me/kH9O>; rel = shortlinkTransfer-Encoding: chunkedContent-Type: text /html; charset = utf-8 

Men hva om du ønsker å se hva din nettleser sender
til en server. Du kan gjøre det også. Kjør ncat på din lokale maskin som så: ncat -l 8080 < filnavn > browserheaders.txt og deretter peke nettleseren din til localhost: 8080. Merk at du kan utelate å sende en fil til nettleseren, men du vil få færre resultater. Du skal se omtrent slik ut:


 GET /HTTP /1.1Host: localhost: 8080User-Agent: Mozilla /5.0 (X11; U; Linux i686, en-US; rv: 1.9 .1.8) Gecko /20100214 Linux Mint /8 (Helena) Firefox /3.5.8Accept: text /html, application /xhtml + xml, application /xml; q = 0,9, * /*; q = 0.8Accept-Language: en- oss, no; q = 0.5Accept-Encoding: gzip, deflateAccept-Charset: ISO-8859-1, utf-8; q = 0,7, *; q = 0.7Keep-Alive: 300Connection: keep-alive 

Hvis du vil ha en fullverdig nettverk sniffer, så vil du kanskje se på tcpdump stedet. Men for en rask header sjekk eller snakke til nettverkstjenester for å få en helsesjekk, vil du vite veien rundt ncat.

Alt i alt, er ncat et svært nyttig verktøy å ha rundt. Det er en ganske komplisert verktøy som har vel flere alternativer enn jeg har berørt her. Hvis det høres interessant ut, sørg for å lese opp på Ncat Brukere 'Guide for å lære alt om hva ncat kan gjøre for deg.