Welcome to Our Website

Linux NC Commando

bijgewerkt: 03/06/2020 by Computer Hope

op Unix-achtige besturingssystemen draait het NC Commando Netcat, een hulpprogramma voor het verzenden van ruwe data over een netwerkverbinding.

Dit document behandelt de Linux-versie van nc.

beschrijving

Netcat is een hulpprogramma dat Gegevens leest en schrijft over netwerkverbindingen, met behulp van het TCP-of UDP-protocol. Het is ontworpen om een betrouwbare “back-end” tool die direct kan worden gebruikt of gedreven door andere programma ‘ s en scripts., Tegelijkertijd, het is een feature-rijke netwerk debugging en exploratie tool, omdat het bijna elke vorm van verbinding die u nodig zou hebben kan maken en heeft een aantal interessante ingebouwde mogelijkheden. Veelgebruikte toepassingen zijn:

  • eenvoudige TCP-proxy ‘ s
  • HTTP-clients en servers
  • Netwerkdaemon testen
  • A Socks of HTTP-Proxycommando voor ssh

syntaxis

opties

-4 dwingt NC alleen IPv4-adressen te gebruiken.
-6 dwingt nc alleen IPv6-adressen te gebruiken.,
– b broadcast toestaan.
– C stuur CRLF als regeleinde.
-D debuggen op de socket inschakelen.
-d probeer niet van stdin te lezen.
– h drukt NC-hulp af.
– I Lengte geeft de grootte van de TCP-ontvangstbuffer aan.
– I interval specificeert een vertragingstijd tussen regels verzonden en ontvangen tekst. Ook, veroorzaakt een vertraging tijd tussen verbindingen naar meerdere poorten.,
– k dwingt nc om te blijven luisteren naar een andere verbinding nadat de huidige verbinding is voltooid. Het is een fout om deze optie te gebruiken zonder de-l optie.
– l wordt gebruikt om aan te geven dat nc moet luisteren naar een binnenkomende verbinding in plaats van een verbinding met een externe host te starten. Het is een fout om deze optie te gebruiken in combinatie met de opties-p, -s of-z. Daarnaast worden alle time-outs die zijn opgegeven met de optie-w genegeerd.
-n doe geen DNS-of service-lookups op opgegeven adressen, hostnamen of poorten.,
– o lengte geeft de grootte van de TCP-stuurbuffer aan.
-p proxy_username specificeert een gebruikersnaam voor een proxyserver die authenticatie vereist. Als er geen gebruikersnaam is opgegeven, zal authenticatie niet worden geprobeerd. Proxy-authenticatie wordt momenteel alleen ondersteund voor HTTP CONNECT-proxy ‘ s.
– p source_port specificeert de bronpoort die nc moet gebruiken, onder voorbehoud van privilegebeperkingen en beschikbaarheid.,
– Q seconden na EOF op stdin, wacht het opgegeven aantal seconden en sluit af. Als seconden negatief is, wacht dan eeuwig.
– r geeft aan dat bron-of doelpoorten willekeurig moeten worden gekozen in plaats van opeenvolgend binnen een bereik of in de volgorde die het systeem ze toekent.
-S schakelt de optie RFC 2385 TCP MD5-ondertekening in.
– s bron geeft het IP-adres aan van de interface die wordt gebruikt om de pakketten te verzenden., Voor Unix-domein datagram-sockets, geeft u het lokale tijdelijke socket-bestand op dat moet worden gemaakt en gebruikt zodat datagrammen kunnen worden ontvangen. Het is een fout om deze optie te gebruiken in combinatie met de-l optie.
– t toskeyword Wijzig de IPv4 TOS-waarde. toskeyword kan een van critical, inetcontrol, lowcost, lowdelay, netcontrol, throughput, reliability, of een van de DiffServ-Codepunten zijn: ef, af11 … af43, cs0 … cs7; of een getal in hex of decimaal.
-t zorgt ervoor dat nc RFC 854 niet stuurt en zal geen antwoorden op RFC 854 wel doen en zal aanvragen., Dit maakt het mogelijk om NC te gebruiken om telnet sessies te script.
-u geeft aan dat Unix-domein sockets gebruikt moeten worden.
-u gebruik UDP in plaats van de standaardoptie van TCP. Gebruik voor Unix-domein sockets een datagram socket in plaats van een stream socket. Als een UNIX-domain socket wordt gebruikt, wordt een tijdelijke ontvangende socket gemaakt in /tmp, tenzij de vlag-s is gegeven.
– V rtable Stel de te gebruiken routeringstabel in. De standaardwaarde is 0.
– v hebben nc geven meer uitgebreide uitvoer.,
– w timeout verbindingen die niet tot stand kunnen worden gebracht of niet-actieve time-out zijn na Time-outseconden. De-w vlag heeft geen effect op de-l optie, dwz nc zal altijd luisteren naar een verbinding, met of zonder de-w vlag. De standaard is geen time-out.
-X proxy_protocol vraagt dat nc het opgegeven protocol gebruikt bij het praten met de proxyserver. Ondersteunde protocollen zijn ” 4 “(SOCKS V.4),” 5 “(SOCKS V. 5) en” connect ” (HTTPS-proxy). Als het protocol niet is opgegeven, wordt SOCKS versie 5 gebruikt.,
– x proxy_address verzoekt dat nc verbinding maakt met bestemming met behulp van een proxy op proxy_address en poort. Als poort niet is opgegeven, wordt de bekende poort voor het proxy-protocol gebruikt (1080 voor SOCKS, 3128 voor HTTPS).
-Z DCCP-modus.
– z geeft aan dat nc alleen moet scannen op luisterdaemons, zonder er gegevens naar te sturen. Het is een fout om deze optie te gebruiken in combinatie met de-l optie.,

bestemming kan een numeriek IP-adres of een symbolische hostnaam zijn (tenzij de optie-n wordt gegeven). In het algemeen moet een bestemming worden opgegeven, tenzij de optie-l wordt gegeven (in welk geval de lokale host wordt gebruikt). Voor Unix-domain sockets is een doel vereist en is het socket pad om mee te verbinden (of om mee te luisteren als de-l optie is gegeven).

poort kan een enkel geheel getal of een reeks poorten zijn. Bereiken zijn in de vorm nn-mm. in het algemeen moet een bestemmingspoort worden opgegeven, tenzij de optie-U wordt gegeven.,

Client/Server model

Het is vrij eenvoudig om een zeer basic client / server model te bouwen met behulp van nc. Op één console, start NC luisteren op een specifieke poort voor een verbinding. Bijvoorbeeld:

nc -l 1234

nc luistert nu op poort 1234 voor een verbinding. Op een tweede console (of een tweede machine), sluit u aan op de machine en poort waarop wordt geluisterd:

nc 127.0.0.1 1234

Er moet nu een verbinding zijn tussen de poorten. Alles wat op de tweede console wordt getypt, wordt gekoppeld aan de eerste, en vice versa., Nadat de verbinding is opgezet, maakt het nc niet echt uit welke kant als ‘server’ wordt gebruikt en welke kant als ‘client’wordt gebruikt. De verbinding kan worden beëindigd met behulp van een EOF (‘^D’).

Er is geen optie-c of-e in moderne netcat, maar u kunt nog steeds een commando uitvoeren nadat de verbinding tot stand is gebracht door bestandsdescriptoren om te leiden. Wees hier voorzichtig omdat het openen van een poort en laat iedereen verbonden uitvoeren willekeurige commando op uw site is gevaarlijk., Als u dit echt moet doen, is hier een voorbeeld:

Op ‘server’ – zijde:

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

Op’ client ‘- zijde:

nc host.example.com 1234

(shell prompt van host.example.com)

door dit te doen, maak je een fifo aan op /tmp/f en laat je NC luisteren op poort 1234 van adres 127.0.0.1 op ‘server’ Zijde, Wanneer een ‘client’ een verbinding met die poort tot stand brengt, wordt /bin/sh uitgevoerd op ‘server’ zijde en de shell prompt wordt gegeven aan ‘client’ zijde.

wanneer de verbinding wordt beëindigd, stopt nc ook., Gebruik -k als je wilt dat het blijft luisteren, maar als het commando stopt zal deze optie het niet herstarten of nc draaiende houden. Vergeet ook niet om de bestandsdescriptor te verwijderen als je het niet meer nodig hebt:

rm -f /tmp/f

gegevensoverdracht

het voorbeeld in de vorige sectie kan worden uitgebreid om een basismodel voor gegevensoverdracht te bouwen. Alle informatie-invoer in het ene uiteinde van de verbinding zal worden uitgevoerd naar het andere uiteinde, en input en output kunnen gemakkelijk worden vastgelegd om bestandsoverdracht te emuleren.,

begin met nc om te luisteren op een specifieke poort, met uitvoer vastgelegd in een bestand:

nc -l 1234 > filename.out

gebruik een tweede machine, maak verbinding met het luisteren NC proces, voer het bestand dat moet worden overgedragen:

nc host.example.com 1234 < filename.in

nadat het bestand wordt overgedragen, wordt de verbinding automatisch gesloten.

praten met servers

Het is soms nuttig om met servers “met de hand” te praten in plaats van via een gebruikersinterface., Het kan helpen bij het oplossen van problemen, wanneer het nodig kan zijn om te controleren welke gegevens een server verzendt in reactie op opdrachten van de client. Om bijvoorbeeld de homepage van een website op te halen:

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

merk op dat dit ook de headers toont die door de webserver worden verzonden. Ze kunnen worden gefilterd, met behulp van een tool zoals sed, indien nodig.

meer ingewikkelde voorbeelden kunnen worden opgebouwd wanneer de gebruiker het formaat van de verzoeken kent dat door de server wordt vereist., Een ander voorbeeld: een e-mail kan naar een SMTP-server worden verzonden met behulp van:

Poortscanning

Het kan nuttig zijn om te weten welke poorten open zijn en welke services op een doelmachine draaien. De vlag-z kan gebruikt worden om nc te vertellen open poorten te rapporteren, in plaats van een verbinding te starten. Meestal is het handig om uitgebreide uitvoer in te schakelen naar stderr door deze optie te gebruiken in combinatie met de optie-v.

bijvoorbeeld:

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

het poortbereik werd opgegeven om de zoekopdracht te beperken tot poorten 20 – 30, en wordt gescand in toenemende volgorde.,

u kunt ook een lijst van poorten opgeven om te scannen, bijvoorbeeld:

nc -zv host.example.com 80 20 22

de poorten worden gescand op basis van de door u opgegeven volgorde.

Het kan ook nuttig zijn om te weten welke serversoftware draait en welke versies. Deze informatie is vaak opgenomen in de groet banners. Om deze op te halen, is het noodzakelijk om eerst een verbinding te maken, en vervolgens de verbinding te verbreken wanneer de banner werd opgehaald., Dit kan worden bereikt door een kleine time-out op te geven met de vlag-w, of misschien door een “QUIT” commando uit te geven aan de server:

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

voorbeelden

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

opent een TCP-verbinding met poort 42 van host.example.com, met poort 31337 als bronpoort, met een time-out van 5 seconden.

nc -u host.example.com 53

opent een UDP-verbinding met poort 53 van host.example.com.

nc -s 10.1.2.3 host.example.com 42

opent een TCP-verbinding met poort 42 van host.example.com gebruik 10.1.2.3 als IP Voor het lokale einde van de verbinding.,

nc -lU /var/tmp/dsocket

maakt en luistert op een UNIX-domein stream socket.

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

verbindt met poort 42 van host.example.com via een HTTP proxy op 10.2.3.4, poort 8080. Dit voorbeeld kan ook gebruikt worden door ssh.

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

hetzelfde als het bovenstaande voorbeeld, maar deze keer het inschakelen van proxy authenticatie met gebruikersnaam” ruser ” als de proxy vereist.

ifconfig-de configuratie van netwerkinterfaces weergeven of wijzigen.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *