Netcat
Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od
verze recenzované 11. června 2015; kontroly vyžadují
15 úprav .
netcat ( anglicky net network + cat ) je unixová utilita, která umožňuje navazovat TCP a UDP spojení, přijímat odtud data a přenášet je. Navzdory své užitečnosti a jednoduchosti není tato utilita zahrnuta v žádném standardu (například POSIX ).
Akce
V jednoduchém případě se NetCat nazývá:
nc
hostitelský port
Výsledkem je vytvoření TCP spojení se zadanými pověřeními a zkratování standardního vstupu na síťový výstup a naopak standardního výstupu na síťový vstup. Tato funkce připomíná příkaz cat , který vedl k volbě názvu „netcat“. Pokud se připojení nezdaří, program vypíše chybovou zprávu na stderr .
Nástroj rozpozná následující klíče:
-h
|
Odkaz; nic se nedělá
|
-proti
|
Další diagnostika (podrobná)
|
-o výstupní_soubor
|
Výstupní výpisy dat
|
-i číslo
|
Prodleva mezi odeslanými daty (v sekundách )
|
-t
|
Kompatibilní s Telnetem
|
-z
|
Neposílat data (skenování portů)
|
-u
|
Připojení přes UDP (místo TCP)
|
-l
|
Pasivní režim (poslech na portu)
|
-p číslo
|
* Číslo místního portu (pro -l)
|
-s hostitel
|
Použijte zadanou místní ("vlastní") IP adresu
|
-n
|
Zakažte DNS a vyhledávání čísel portů v /etc/services
|
-w číslo
|
Nastavit časový limit (v sekundách)
|
-q číslo
|
Nastavit časový limit po EOF na vstupu (v sekundách) **
|
-e spustitelný
|
! Spusťte určený program pro komunikaci se sítí (místo standardního vstupu a výstupu)
|
-c tým
|
! Totéž jako příkaz pro /bin/sh
|
-k
|
Po ukončení aktuálního připojení pokračujte v naslouchání dalším připojením.
|
! - vyžaduje speciální sestavení, zakázané v dodaných spustitelných souborech (snadno vytvoří zranitelnost sítě).
* - v některých implementacích je číslo portu pro naslouchání nastaveno pomocí -l a chybí přepínač -p.
** - není k dispozici ve všech verzích.
Možnosti:
- -d. Dostupné pouze v systému Windows. Činí Netcat neviditelným. Program můžete spustit v režimu poslechu bez otevření okna režimu MS-DOS. Umožňuje také crackerům lépe maskovat běžící program před správci systému.
- -e <příkaz>. Pokud je Netcat zkompilován s volbou GAPING_SECURITY_HOLE, může program spustit <příkaz>, kdykoli někdo naváže spojení na naslouchajícím portu, pokud klient Netcat přesměruje I/O na běžící program. Použití této možnosti je docela nebezpečné, pokud plně nerozumíte tomu, co děláte. Jedná se o rychlý a snadný způsob, jak otevřít „zadní vrátka“ do vašeho systému. Dále bude uveden příklad.
- -i <vteřiny>. Interval zpoždění mezi přenosy datových bloků. Pokud je soubor předán potrubím Netcat, program čeká <sekund> sekund, než předá další řádek jako vstup. Pokud používáte Netcat ke správě více portů na stejném hostiteli, Netcat čeká <sekundu> sekund, než se připojí k dalšímu portu uvedenému na řádku. To umožňuje mírně maskovat přenos dat nebo útok systémových služeb a umožňuje maskování skenování portů některým softwarem pro analýzu narušení a správci systému.
- -g <seznam-tras>. Použití této možnosti může být docela netriviální. Netcat podporuje schopnost maskovat původ směrování (podrobněji popsáno v Make a Friend: Spoofing IP Address). Na příkazovém řádku můžete zadat až osm voleb -g, abyste přinutili Netcat směrovat provoz přes konkrétní IP adresy, které se obvykle používají, pokud falšujete původní IP adresu, ze které váš provoz přichází (například při pokusu obejít firewall nebo kontrola povolených hostitelů). Pomocí tohoto triku na stroji, ze kterého řídíte proces, můžete nechat přenášené pakety vracet se na vámi zadanou adresu místo toho, abyste je přeposílali skutečným směrem. Všimněte si, že to obvykle nefunguje, protože většina směrovačů ignoruje možnosti zdroje směrování a mnoho filtrů a firewallů takové pokusy zaznamenává.
- -G <ukazatel skoku>. Tato volba vám umožňuje upravit seznam směrování určený volbou -g, abyste určili, na kterou adresu se má přeskočit. Protože adresa IP je čtyřbajtové číslo, je tento argument vždy násobkem čtyř, kde 4 je první adresa IP v seznamu, 8 je druhá a tak dále. Tato možnost se obvykle používá, pokud se pokoušíte zfalšovat směrovací seznam tak, aby to vypadalo, že pakety přicházejí odjinud. Ignorováním prvních dvou IP adres v seznamu určeném volbou -g a zadáním čísla 12 ve volbě -G budete mít pakety směrovány přímo na třetí adresu ve vašem seznamu směrování. Skutečný obsah paketu bude stále obsahovat IP adresy, které byly přeskočeny, takže to bude vypadat, že pakety pocházejí z jedné adresy, i když ve skutečnosti přišly odjinud. Tato technika vám umožňuje skrýt, odkud jste přišli k hostiteli, když používáte falšování adresy nebo seznam směrování, ale není zaručeno, že budete schopni získat odpověď, protože bude směrována zpět přes vaše falešné IP adresy.
- -l. Tato volba přepíná režim „naslouchání“ Netcatu. Používá se ve spojení s volbou -p k navázání Netcatu na konkrétní port TCP a naslouchání příchozím připojením. Chcete-li použít port UDP, použijte volbu -u.
- -L. K dispozici pouze ve verzi programu pro Windows, více omezující možnost režimu „naslouchání“ než -l. Říká programu, aby se restartoval se stejnými parametry, pokud bylo spojení uzavřeno. To dává Netcatu možnost sledovat následná připojení bez zásahu uživatele při každém ukončení počátečního připojení. Stejně jako u volby -l musí být tato volba použita ve spojení s volbou -p.
- -n říká Netcatu, aby nevyhledával žádné hostitele. Pokud použijete tuto možnost, neměli byste jako argumenty uvádět žádné názvy hostitelů.
- -o <hexsoubor> způsobí, že se vygeneruje hexadecimální výpis dat a uloží se do hexadecimálního souboru. Příkaz nc -o hexfile zapisuje data v obou směrech a každý řádek začíná znakem < nebo >, který označuje vstup nebo výstup. Chcete-li do souboru zapsat pouze příchozí data, měli byste použít příkaz nc -o <hexsoubor. Chcete-li tedy zapisovat pouze odchozí data, použijte příkaz nc -o >hexfile.
- -p <port>. Tato volba vám umožňuje zadat číslo místního portu, který má Netcat používat. Tento argument je povinný, pokud pro režim poslechu používáte volby -l nebo -L. Není-li tato možnost pro odchozí připojení uvedena, Netcat použije port, který je pro toto v systému definován, což dělá většina klientů TCP nebo UDP. Mějte na paměti, že na systémech Unix může pouze uživatel root definovat čísla portů menší než 1024.
- -r. Netcat vybírá místní a vzdálené porty náhodně. Tato možnost je užitečná, když se Netcat používá k získání informací o velkém rozsahu čísel portů v systému a prezentuje situaci způsobem, který je méně podobný skenování portů. Pokud je tato funkce použita ve spojení s volbou -i a v dostatečně velkém intervalu, pak je pravděpodobné, že skenování portu nebude detekováno bez pečlivého prozkoumání systémového protokolu administrátorem.
- -s Udává odchozí IP adresu, kterou Netcat používá k navázání spojení. Tato možnost umožňuje hackerům provádět několik elegantních triků: skrýt svou IP adresu nebo předstírat něco jiného. Ale aby se informace odeslaly na podvrženou adresu, musí použít volbu -g směrování. Dále pomocí režimu poslechu se můžete opakovaně vázat na již poslouchanou službu. Všechny služby TCP a UDP fungují na portech, ale ne všechny fungují na konkrétní IP adrese. Mnoho služeb ve výchozím nastavení naslouchá na všech dostupných rozhraních. Syslog například naslouchá na portu UDP 514 a čte provoz syslog. Pokud zároveň spustíte naslouchání Netcatu na portu 514 a použijete volbu -s k určení odchozí IP adresy, veškerý provoz procházející přes vámi zadanou IP adresu bude směrován především přes Netcat. Proč? Pokud soket určuje IP adresu i číslo portu, určuje to jeho prioritu před soketem, který neurčuje obojí. Později o tom budeme hovořit podrobněji a předvedeme, jak určit, která služba v systému může být předdefinována.
- -t. Netcat, zkompilovaný s možností TELNET, může komunikovat se serverem telnet podle zavedených konvencí tak, že odpoví prázdnou informací, ale umožňuje vám zadat informace v reakci na výzvu k přihlášení, když používáte připojení TCP na portu 23.
- -u Tato volba říká programu, aby používal protokol UDP místo TCP, a to jak v režimu naslouchání, tak v režimu klienta.
- -v určuje, jak podrobně vás program informuje o tom, co dělá. Pokud nepoužijete volbu -v, Netcat vypíše pouze přijaté informace. Pokud je volba -v použita jednou, budete moci zjistit, ke které adrese bylo připojeno nebo která adresa je sledována v případě problémů. Opětovným použitím této možnosti budete vědět, kolik dat bylo odesláno nebo přijato před ukončením připojení.
- -w <sekundy> Určuje dobu, po kterou Netcat čeká na připojení. Tato možnost také říká, jak dlouho máte čekat po přijetí signálu EOF (konec souboru) na standardním vstupu, než přerušíte spojení a ukončíte. To je zvláště důležité, pokud odesíláte příkazy na vzdálený server pomocí Netcat a očekáváte, že obdržíte velké množství informací (například odesláním příkazu na webový server HTTP ke stažení velkého souboru).
- -z. Pokud vám jde pouze o určení, který port je otevřený, měli byste použít nmap (viz přednáška Port Scanners). Ale tato možnost říká Netcatu, aby poslal dostatek dat k vyhledání otevřených portů v daném rozsahu hodnot. [jeden]
Aplikace
- Testování a ruční práce se síťovými protokoly ;
- Kontrola dostupnosti portů;
- Síťové rozhraní pro prostředí UNIX (některé verze bash se však mohou samy připojit k TCP a UDP);
- (Přepínačem -l) vytvořte jednoduché servery, obvykle testovací;
- (Sdíleno s inetd ) přesměrování portů.
Příklady
Pod Windows:
Spusťte CMD přejděte do složky s netCat (například C:\netcat\)
Chcete-li vytvořit chat mezi hostiteli
Na jednom počítači (10.10.10.1) otevřete port 1234 pro poslech: nc -l -p 1234 Na jiném počítači se připojte k hostiteli 10.10.10.1 na portu 1234 nc 10.10.10.1 1234
Odeslání textu pomocí Enter. Přerušit připojení CTRL+C
Pro ubuntu odstraňte "-p" z přepínačů.
Zobrazení testovací HTML stránky klientovi s běžným prohlížečem pomocí jednoho příkazu (port 8080):
(echo -e "HTTP/1.1 200 OK\nContent-Type: text/html\n\n Hello World";) | nc -vv -l -p 8080
Přenos souboru do klienta pomocí běžného prohlížeče jedním příkazem (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
Přenos aktuálního adresáře se všemi soubory a podadresáři přes internet nebo intranet, port 3333, s rozbalením do aktuálního adresáře:
nc -l -p 3333 | tar xv (выполняется на приёмной стороне)
tar cv * | nc -q 0 ip.адрес.приёмной.стороны 3333 (выполняется на передающей стороне)
Názvy týmů
nc , netcat , ncat , pnetcat (na různých systémech ).
Viz také
Poznámky
- ↑ fker. vše o NETCAT (anglicky) . ANTICHAT - Bezpečnostní online komunita (23. února 2009). Staženo 5. prosince 2019. Archivováno z originálu dne 5. prosince 2019.
Odkazy