Welcome to Our Website

Linux-nc-kommando

Opdateret: 03/06/2020 af Computer Håber

På Unix-lignende styresystemer, nc-kommando kører Netcat, et værktøj til at sende rå data over en netforbindelse.dette dokument dækker Linu. – versionen af nc.

beskrivelse

Netcat er et værktøj, der læser og skriver data på tværs af netværksforbindelser ved hjælp af TCP-eller UDP-protokollen. Den er designet til at være en pålidelig “back-end” værktøj, der kan bruges direkte eller drevet af andre programmer og scripts., Samtidig er det et funktionsrigt netværksfejlfindings-og efterforskningsværktøj, da det kan skabe næsten enhver form for forbindelse, du har brug for, og har flere interessante indbyggede funktioner. Almindelige anvendelser omfatter:

  • Simple TCP proxies
  • Shell-script-baseret HTTP klienter og servere
  • Netværk daemon test
  • Et Sokker eller HTTP ProxyCommand for ssh

Syntaks

Indstillinger

-4 Tvinger nc til at bruge IPv4-adresser kun.
-6 tvinger nc til kun at bruge IPv6-adresser.,
-B Tillad udsendelse.
-C Send CRLF som line-ending.
-d Aktiv debr fejlfinding på stikket.
-d Forsøg ikke at læse fra stdin.
-h udskriver nc hjælp.
-i længde angiver størrelsen af TCP modtage buffer.
-i interval angiver en forsinkelse tidsinterval mellem linjer af tekst sendt og modtaget. Forårsager også en forsinkelsestid mellem forbindelser til flere porte.,
-K tvinger nc til at blive ved med at lytte efter en anden forbindelse, efter at den nuværende forbindelse er afsluttet. Det er en fejl at bruge denne indstilling uden-l-indstillingen.
-l bruges til at angive, at nc skal lytte efter en indgående forbindelse i stedet for at starte en forbindelse til en ekstern vært. Det er en fejl at bruge denne indstilling i forbindelse med indstillingerne-p, -s eller -.. Derudover ignoreres alle timeouts, der er angivet med indstillingen-option.
-n Foretag ikke DNS-eller serviceopslag på bestemte adresser, værtsnavne eller porte.,
-o længde angiver størrelsen af TCP send buffer.
-P Pro .y_username angiver et brugernavn, der skal præsenteres for en pro .yserver, der kræver godkendelse. Hvis der ikke er angivet noget brugernavn, vil godkendelse ikke blive forsøgt. Pro .y-godkendelse understøttes kun for HTTP CONNECT fuldmagter på nuværende tidspunkt.
-P source_port angiver, hvilken kildeport nc skal bruge, med forbehold af begrænsninger og tilgængelighed.,
-seconds sekunder efter EOF på stdin, vent det angivne antal sekunder og afslut derefter. Hvis sekunder er negativ, vent for evigt.
-r specificerer, at kilde-eller destinationsporte skal vælges tilfældigt i stedet for sekventielt inden for et interval eller i den rækkefølge, som systemet tildeler dem.
-s aktiverer RFC 2385 TCP MD5 signatur mulighed.
-s kilde angiver IP for den grænseflade, der bruges til at sende pakkerne., For Uni. – domæne datagram sockets, angiver den lokale midlertidige socket fil til at oprette og bruge, så datagrammer kan modtages. Det er en fejl at bruge denne indstilling i forbindelse med-L-indstillingen.
-t toskeywordord Skift IPv4 TOS værdi. toskeyword kan være en af kritiske, inetcontrol, lowcost, lowdelay, netcontrol, kapacitet, pålidelighed, eller en af de DiffServ Kode Punkter: ef, af11 … af43, cs0 … cs7; eller et tal i enten he.eller decimal.
-t forårsager nc til at sende RFC 854 ikke Og vil ikke svar på RFC 854 gøre og vil anmodninger., Dette gør det muligt at bruge NC til script telnet sessioner.
-U angiver at bruge uni.-domain sockets.
-u brug UDP i stedet for standardindstillingen for TCP. For Uni. – domæne-stik skal du bruge en datagram-stik i stedet for en strømstik. Hvis der anvendes et UNI.-domæne-stik, oprettes et midlertidigt modtagelsesstik i /tmp, medmindre-s-flaget er angivet.
-v rtable Indstil den routingtabel, der skal bruges. Standarden er 0.
-V har nc giver mere verbose output.,
-Connections timeout forbindelser, som ikke kan etableres eller er inaktiv timeout efter timeout sekunder. – Flag-flaget har ingen effekt på-L-indstillingen, dvs.nc vil lytte for evigt for en forbindelse, med eller uden -. – flaget. Standard er ingen timeout.
-X proxy_protocol Anmoder om, at nc skal bruge den angivne protokol, når de taler til proxy-serveren. Understøttede protokoller er ” 4 “(SOCKS v. 4),” 5 “(SOCKS v. 5) og” connect ” (HTTPS Pro .y). Hvis protokollen ikke er angivet, bruges SOCKS version 5.,
-x proxy_address Anmoder om, at nc skal oprette forbindelse til destinationen ved hjælp af en proxy på proxy_address og port. Hvis port ikke er angivet, bruges den velkendte port til Pro .y-protokollen (1080 til sokker, 3128 til HTTPS).
DCCP-tilstand.
-Specifies specificerer, at nc kun skal scanne efter lyttende dæmoner uden at sende nogen data til dem. Det er en fejl at bruge denne indstilling i forbindelse med-L-indstillingen.,

destination kan være en numerisk IP-adresse eller et symbolsk værtsnavn (medmindre-n-indstillingen er angivet). Generelt skal en destination angives, medmindre-l-indstillingen er angivet (i hvilket tilfælde den lokale vært bruges). For Uni.- domæne stik, en destination er påkrævet, og er stikket sti til at oprette forbindelse til (eller lytte på, hvis indstillingen-l er givet).

port kan være et enkelt heltal eller en række porte. Intervaller er i form nn-mm. generelt skal en destinationsport angives, medmindre-u-indstillingen er angivet.,

klient/Servermodel

det er ganske enkelt at opbygge en meget grundlæggende klient / servermodel ved hjælp af nc. På en konsol skal du starte nc-lytning på en bestemt port for en forbindelse. For eksempel:

nc -l 1234

nc lytter nu på port 1234 for en forbindelse. På en anden konsol (eller en anden maskine) skal du oprette forbindelse til maskinen og porten, der lyttes på:

nc 127.0.0.1 1234

der skulle nu være en forbindelse mellem portene. Alt, hvad der er skrevet på den anden konsol, vil blive sammenkædet til den første og vice versa., Efter at forbindelsen blev oprettet, er nc ligeglad med, hvilken side der bruges som en’ server’, og hvilken side der bruges som en’klient’. Forbindelsen kan afsluttes ved hjælp af en EOF (‘^D’).

Der er ingen-C eller-e mulighed i moderne netcat, men du kan stadig udføre en kommando, når forbindelsen er etableret ved at omdirigere filbeskrivelser. Vær forsigtig her, fordi det er farligt at åbne en port og lade nogen, der er tilsluttet, udføre vilkårlig kommando på dit .ebsted., Hvis du virkelig har brug for at gøre dette, her er et eksempel:

På ‘server’ side:

rm -f /tmp/f; mkfifo /tmp/f
cat /tmp/f | /bin/sh -i 2>&1 | nc -l 127.0.0.1 1234 > /tmp/f

På ‘kunde’ side:

nc host.example.com 1234

(shell host.example.com)

Ved at gøre dette, du opretter en fifo på /tmp/f og gøre nc lytte på port 1234 på adressen 127.0.0.1 på ‘server’ side, når en ‘klient’ etablerer en forbindelse med held til at port, /bin/sh bliver henrettet på ‘server’ side, og skallen er givet til ‘klient’ side.

Når forbindelsen afsluttes, afslutter nc også., Brug-k, hvis du vil have det, skal du fortsætte med at lytte, men hvis kommandoen afslutter, vil denne indstilling ikke genstarte den eller holde nc kørende. Glem heller ikke at fjerne filbeskrivelsen, når du ikke har brug for den mere:

rm -f /tmp/f

dataoverførsel

eksemplet i det foregående afsnit kan udvides til at opbygge en grundlæggende dataoverførselsmodel. Enhver information input til den ene ende af forbindelsen vil blive output til den anden ende, og input og output kan nemt fanget for at efterligne filoverførsel.,

Start ved hjælp af nc til at lytte på en bestemt port, med udgang fanget i en fil:

nc -l 1234 > filename.out

ved Hjælp af en anden maskine, skal du tilslutte til at lytte nc processen, at fodre den fil, der skal overføres til:

nc host.example.com 1234 < filename.in

Når filen er overført, i den forbindelse vil lukke automatisk.

at tale med servere

det er undertiden nyttigt at tale med servere “for hånd” snarere end gennem en brugergrænseflade., Det kan hjælpe med fejlfinding, når det kan være nødvendigt at kontrollere, hvilke data en server sender som svar på kommandoer udstedt af klienten. For eksempel for at hente hjemmesiden til et websiteebsted:

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

Bemærk, at dette også viser overskrifterne sendt af webebserveren. De kan filtreres ved hjælp af et værktøj som sed, hvis det er nødvendigt.

mere komplicerede eksempler kan opbygges, når brugeren kender formatet af anmodninger, der kræves af serveren., Som et andet eksempel kan en e-mail sendes til en SMTP-server ved hjælp af:

portscanning

det kan være nyttigt at vide, hvilke porte der er åbne og kører tjenester på en målmaskine. – Flag flag kan bruges til at fortælle nc at rapportere åbne porte, snarere end at starte en forbindelse. Normalt er det nyttigt at tænde verbose output til stderr ved at bruge denne indstilling i forbindelse med-V option.

For eksempel:

nc -zv host.example.com 20-30
Connection to host.example.com 22 port succeeded!Connection to host.example.com 25 port succeeded!

portområdet blev specificeret for at begrænse søgningen til Porte 20 – 30 og scannes ved at øge rækkefølgen.,

Du kan også angive en liste over porte, der skal scannes, for eksempel:

nc -zv host.example.com 80 20 22

portene scannes af den rækkefølge, du har givet.

Alternativt kan det være nyttigt at vide, hvilken serversoft .are der kører, og hvilke versioner. Disse oplysninger er ofte indeholdt i hilsen bannere. For at hente disse er det nødvendigt først at oprette forbindelse og derefter bryde forbindelsen, når banneret blev hentet., Dette kan opnås ved at angive en lille timeout med -w flag, eller måske ved at udstede en “AFSLUT” – kommando til serveren er:

echo "QUIT" | nc host.example.com 20-30
SSH-1.99-OpenSSH_3.6.1p2 Protocol mismatch. 220 host.example.com IMS SMTP Receiver Version 0.84 Ready

Eksempler

nc -p 31337 -w 5 host.example.com 42

Åbner en TCP-forbindelse til port 42 host.example.com, ved hjælp af port 31337 som kilde port, med en timeout på 5 sekunder.

nc -u host.example.com 53

Åbner en UDP forbindelse til port 53 host.example.com.

nc -s 10.1.2.3 host.example.com 42

Åbner en TCP-forbindelse til port 42 host.example.com hjælp 10.1.2.3 som IP til den lokale ende af forbindelsen.,

nc -lU /var/tmp/dsocket

opretter og lytter på en uni.-domæne stream socket.

nc -x10.2.3.4:8080 -Xconnect host.example.com 42

Forbinder til en port 42 host.example.com via en HTTP-proxy på 10.2.3.4, port 8080. Dette eksempel kunne også bruges af ssh.

nc -x10.2.3.4:8080 -Xconnect -Pruser host.example.com 42

Det samme som ovenstående eksempel, men denne gang giver proxy-autentifikation med brugernavn “ruser” hvis proxy ‘ en kræver det.

ifconfig — se eller ændre konfigurationen af netværksgrænseflader.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *