Netcat
Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från
versionen som granskades den 11 juni 2015; kontroller kräver
15 redigeringar .
netcat ( engelska net network + cat ) ä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 ingår inte detta verktyg i någon standard (till exempel POSIX ).
Åtgärd
I ett enkelt fall kallas NetCat som:
nc
värdport _
Detta resulterar i att en TCP-anslutning skapas med de angivna referenserna och kortsluter standardingång till nätverksutgång och vice versa, standardutgång till nätverksingång. Denna funktion påminner om kommandot cat , vilket ledde till valet av namnet "netcat". Om anslutningen misslyckas skriver programmet ut ett felmeddelande till stderr .
Verktyget känner igen följande nycklar:
-h
|
Referens; ingenting görs
|
-v
|
Ytterligare diagnostik (omfattande)
|
-o output_fil
|
Utdatadumpar _ _
|
-i nummer
|
Fördröjning mellan skickade data (i sekunder )
|
-t
|
Telnet -kompatibel
|
-z
|
Skicka inte data (portskanning)
|
-u
|
Anslut via UDP (istället för TCP)
|
-l
|
Passivt läge (lyssnar på en port)
|
-p nummer
|
* Lokalt portnummer (för -l)
|
-s värd
|
Använd den angivna lokala ("egen") IP-adressen
|
-n
|
Inaktivera DNS- och portnummersökningar i /etc/services
|
-w nummer
|
Ställ in timeout (i sekunder)
|
-q nummer
|
Ställ in timeout efter EOF på ingång (i sekunder) **
|
-e körbar
|
! Kör det angivna programmet för att kommunicera med nätverket (istället för standardinmatning och -utgång)
|
-c kommando
|
! Samma, som ett kommando för /bin/sh
|
-k
|
Fortsätt att lyssna efter andra anslutningar efter att den aktuella anslutningen har avslutats.
|
! - kräver en speciell sammansättning, inaktiverad i de medföljande körbara filerna (skapar enkelt en nätverkssårbarhet).
* - i vissa implementeringar ställs portnumret för avlyssning via -l och -p-omkopplaren saknas.
** - inte tillgänglig i alla versioner.
Alternativ:
- -d. Endast tillgängligt på Windows. Gör Netcat osynlig. Du kan köra programmet i lyssningsläge utan att öppna MS-DOS-lägesfönstret. Det gör det också möjligt för crackers att bättre maskera ett program som körs från systemadministratörer.
- -e <kommando>. Om Netcat är kompilerad med alternativet GAPING_SECURITY_HOLE kan ett program köra ett <kommando> när någon upprättar en anslutning på lyssningsporten, så länge som Netcat-klienten omdirigerar I/O till det program som körs. Att använda det här alternativet är ganska farligt om du inte helt förstår vad du gör. Detta är ett snabbt och enkelt sätt att öppna en "bakdörr" till ditt system. Ett exempel kommer att ges härnäst.
- -i <sekunder>. Fördröjningsintervall mellan överföringar av databitar. Om en fil skickas genom Netcat-pipelinen, väntar programmet <sekunder> sekunder innan nästa rad skickas som indata. Om du använder Netcat för att hantera flera portar på samma värd, väntar Netcat <second> sekunder innan den ansluter till nästa port listad på linjen. Detta gör det möjligt att något maskera en dataöverföring eller en systemtjänstattack, och det gör att portskanningar kan maskeras från vissa intrångsanalysprogram och från systemadministratörer.
- -g <ruttlista>. Att använda det här alternativet kan vara ganska otrivialt. Netcat stöder möjligheten att maskera ursprunget till routing (diskuterat mer i detalj i Make a Friend: IP-adressförfalskning). Du kan ange upp till åtta -g-alternativ på kommandoraden för att tvinga Netcat att dirigera trafik genom specifika IP-adresser, som vanligtvis används om du förfalskar den ursprungliga IP-adressen som din trafik kommer från (till exempel för att försöka kringgå en brandvägg eller letar efter tillåtna värdar). Genom att använda detta trick på maskinen du styr processen från, kan du få överförda paket att returnera till den adress du anger istället för att vidarebefordra dem i den verkliga riktningen. Observera att detta vanligtvis inte fungerar eftersom de flesta routrar ignorerar alternativ för routingkälla, och många filter och brandväggar loggar sådana försök.
- -G <hopppekare>. Det här alternativet låter dig ändra ruttlistan som anges av alternativet -g för att bestämma vilken adress du ska hoppa till. Eftersom en IP-adress är ett nummer på fyra byte är detta argument alltid en multipel av fyra, där 4 är den första IP-adressen i listan, 8 är den andra och så vidare. Det här alternativet används vanligtvis om du försöker fejka en routinglista så att det ser ut som om paketen kommer från någon annanstans. Genom att ignorera de två första IP-adresserna i listan som anges av alternativet -g och ange siffran 12 i alternativet -G, kommer du att få paket dirigerad direkt till den tredje adressen i din routinglista. Det faktiska innehållet i paketet kommer fortfarande att innehålla de IP-adresser som hoppades över, vilket gör att det ser ut som om paketen kom från en adress när de faktiskt kom från någon annanstans. Denna teknik låter dig dölja var du kom ifrån till värden när du använder adresspoofing eller en routinglista, men det är inte garanterat att du kommer att kunna få ett svar, eftersom det kommer att dirigeras tillbaka genom dina falska IP-adresser.
- -l. Det här alternativet växlar Netcats "lyssnande"-läge. Den används tillsammans med alternativet -p för att binda Netcat till en specifik TCP-port och lyssna efter inkommande anslutningar. För att använda UDP-porten, använd alternativet -u.
- -L. Endast tillgängligt i Windows-versionen av programmet, ett mer restriktivt "lyssningsläge"-alternativ än -l. Den säger åt programmet att starta om med samma parametrar om anslutningen stängdes. Detta ger Netcat möjlighet att övervaka efterföljande anslutningar utan användaringripande, varje gång den initiala anslutningen avslutas. Som med alternativet -l, måste detta alternativ användas tillsammans med alternativet -p.
- -n säger åt Netcat att inte söka upp några värdar. Om du använder det här alternativet bör du inte ange några värdnamn som argument.
- -o <hexfil> gör att en hexadecimal dump av data genereras och lagras i en hexfil. Kommandot nc -o hexfile skriver data som går i båda riktningarna och startar varje rad med < eller > för att indikera inmatning respektive utgång. För att bara skriva inkommande data till en fil, bör du använda kommandot nc -o <hexfile. Följaktligen, för att bara skriva utgående data, använd kommandot nc -o >hexfile.
- -p <port>. Det här alternativet låter dig ange det lokala portnummer som Netcat ska använda. Detta argument krävs om du använder alternativen -l eller -L för lyssningsläge. Om detta alternativ inte är specificerat för en utgående anslutning kommer Netcat att använda porten som är definierad för detta på systemet, vilket är vad de flesta TCP- eller UDP-klienter gör. Tänk på att på Unix-system är det bara rotanvändaren som kan definiera portnummer mindre än 1024.
- -r. Netcat väljer de lokala och fjärranslutna portarna slumpmässigt. Det här alternativet är användbart när Netcat används för att få information om ett stort antal portnummer på ett system och presentera situationen på ett sätt som är mindre som en portskanning. Om den här funktionen används i kombination med -i-alternativet och med ett tillräckligt stort intervall, är det troligt att portskanningen inte kommer att upptäckas utan noggrann undersökning av systemloggen av administratören.
- -s Anger den utgående IP-adress som Netcat använder för att upprätta en anslutning. Det här alternativet låter hackare utföra några snygga trick: dölja sin IP-adress eller fejka något annat. Men för att få informationen skickad till den falska adressen måste de använda routingbeställningsalternativet -g. Vidare, med hjälp av lyssningsläget, kan du upprepade gånger binda till en redan lyssnad tjänst. Alla TCP- och UDP-tjänster fungerar på portar, men alla fungerar inte på en specifik IP-adress. Många tjänster lyssnar på alla tillgängliga gränssnitt som standard. Syslog, till exempel, lyssnar på UDP-port 514 för att läsa syslog-trafik. Samtidigt, om du börjar Netcat-lyssna på port 514 och använder alternativet -s för att fastställa den utgående IP-adressen, kommer all trafik som passerar genom den IP-adress du anger att dirigeras genom Netcat i första hand. Varför? Om en socket anger både en IP-adress och ett portnummer, anger det dess prioritet framför en socket som inte anger båda. Senare kommer vi att prata om detta mer i detalj och visa hur man bestämmer vilken tjänst i systemet som kan fördefinieras.
- -t. Sammanställt med TELNET-alternativet kan Netcat kommunicera med telnet-servern enligt etablerade konventioner genom att svara med tom information, men låter dig ange information som svar på en inloggningsfråga när du använder en TCP-anslutning på port 23.
- -u. Alternativet talar om för programmet att använda UDP-protokollet istället för TCP, som fungerar i både lyssnings- och klientläge.
- -v bestämmer hur detaljerat programmet informerar dig om vad det gör. Om du inte använder alternativet -v, matar Netcat bara ut den mottagna informationen. Om alternativet -v används en gång kommer du att kunna ta reda på vilken adress som var ansluten till eller vilken adress som övervakas om det skulle uppstå några problem. Om du återanvänder alternativet får du veta hur mycket data som skickades eller togs emot innan anslutningen avslutades.
- -w <sekunder> Anger hur lång tid Netcat väntar på en anslutning. Det här alternativet talar om för dig hur länge du ska vänta efter att ha mottagit en EOF-signal (filslut) på standardingången innan du bryter anslutningen och avslutar. Detta är särskilt viktigt om du skickar kommandon till en fjärrserver med Netcat och förväntar dig att få en stor mängd information (till exempel genom att skicka ett kommando till en HTTP-webbserver för att ladda ner en stor fil).
- -z. Om du bara är intresserad av att avgöra vilken port som är öppen bör du använda nmap (se Port Scanners-föreläsningen). Men det här alternativet säger åt Netcat att skicka tillräckligt med data för att leta efter öppna portar i det givna värdeintervallet. [ett]
Applikation
- Testning och manuellt arbete med nätverksprotokoll ;
- Kontrollera tillgången på hamnar;
- Nätverksgränssnitt för UNIX-skalet (dock kan vissa versioner av bash ansluta till TCP och UDP på egen hand);
- (Med -l-växeln) skapa enkla servrar, vanligtvis testservrar;
- (Delas med inetd ) portvidarebefordran.
Exempel
Under Windows:
Kör CMD gå till mappen med netCat (till exempel C:\netcat\)
För att skapa en chatt mellan värdar
På en maskin (10.10.10.1), öppna port 1234 för att lyssna: nc -l -p 1234 På en annan maskin, anslut till värd 10.10.10.1 på port 1234 nc 10.10.10.1 1234
Skickar text med Enter. Bryt anslutningen CTRL+C
För ubuntu , ta bort "-p" från omkopplarna.
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\nContent-Type: text/html\n\n Hello World";) | 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 OK\nContent-Disposition: attachment; filename=целевое-имя-которое-увидит-клиент\nContent-Type: application/octet-stream\nConnection: close\n"; cat имя-файла-на-диске ) | nc -vv -l -p 8080
Överföra den aktuella katalogen med alla filer och underkataloger över Internet eller intranät, port 3333, med uppackning till den aktuella katalogen:
nc -l -p 3333 | tar xv (выполняется на приёмной стороне)
tar cv * | nc -q 0 ip.адрес.приёмной.стороны 3333 (выполняется на передающей стороне)
Lagnamn
nc , netcat , ncat , pnetcat (på olika system ).
Se även
Anteckningar
- ↑ fker. allt om NETCAT (engelska) . ANTICHAT - Säkerhet online-gemenskap (23 februari 2009). Hämtad 5 december 2019. Arkiverad från originalet 5 december 2019.
Länkar