Netcat a Ncat

Netcat a Ncat

Každý občas potřebuje dostat nějaká data z jednoho stroje na jiný. Pokud nechcete konfigurovat např. FTP nebo HTTP server, tak potřebujete nějaký jednoduchý prográmek, který to umí. V tom případě doporučuji použít Netcat nebo jeho novější náhradu Ncat.

Netcat asi není potřeba představovat. Je tu s námi od roku 1995 a jedná se o „univerzální nástroj na čtení a zápis TCP a UDP spojení“. Ncat vznikl až v tomto století a také se tím chlubí – Ncat – Netcat pro 21. století.

Koncept je tak jednoduchý jak to jen jde. Na jednom stroji otevřete Netcat aby naslouchal na nějakém portu a z druhého stroje se připojíte. Podmínkou je povolit si příslušný port na firewallu.

Tak začneme u původního Netcat, v Linuxu též jako nc. Na serveru s vnější IP 217.198.114.185 otevřeme port 8888:

nc -l -s 217.198.114.185 -p 8888

Z libovolného stroje se pak připojíme na stroj s IP 217.198.114.185 a port 8888:

nc 217.198.114.185 8888

Výsledek bude vypadat takto. Cokoli napíšeme do jedné nebo druhé konzole se přenese na opačnou stranu.

 

Takže máme TCP spojení. No a protože Linux je jedna velká trubka, jak říkával můj bývalý kolega, tak pro přenos souborů nám stačí jenom poslat soubor do vzniklé „trubky“.

A už slyším, že to je nebezpečné, přenos není šifrovaný atd. Ano, není to bezpečné. Pro jednorázové účely to stačí. Útočník by musel trefit konkrétní port a čas kdy je spojení aktivní. Samozřejmě můžeme použít ssh a vytvořit si šifrovaný tunel, ale tady už se ztrácí elegance a jednoduchost.

Takže se pojďme podívat na následníka Netcat z dílny vývojářů Nmap.

Hned po spuštění rychlé nápovědy ncat -h vidíme, že o proti nc -h nám přibyly nějaké volby a nějaké naopak ubyly. Největší rozdíl je v tom, že zmizelo skenování portů a přibyly volby pro ssl. Jinými slovy, ano ncat umí ssl přímo bez potřeby používat další nástroje. Navíc funguje na Windows, macOS a Linuxu a samozřejmě je open source, takže si ho můžete přeložit pro libovolný operační systém.

Takže pojďme si přenést třeba zálohy databází ze serveru s Debianem na pracovní stanici s Windows . Dejme tomu, že zálohu máme v souboru /backup/alldb.sql a na pracovní stanici si ji chci nahrát do svého domovského adresáře jako soubor zaloha_20221130.sql . Takže na serveru zavoláme:

ncat -l 217.198.116.182 8888 --ssl < /backup/alldb.sql

Na pracovní stanic s Windows si pustíme cmd a pak:

C:\Users\zbynek.vyboh>ncat --ssl vyboh.zarea.net 8888 -o zaloha_20221130.sql

Jakmile se soubor nahraje, spojení se uzavře.

Krásné, jednoduché, elegantní.

Chcete na pracovní stanici sledovat online např. slow-log MySQL serveru? Stačí na serveru spustit

tail -f /var/log/mysql/slow.log | ncat -l 217.198.116.182 8888 --ssl

No a po připojení z pracovní stanice pomocí

ncat --ssl vyboh.zarea.net 8888

vidíme přímo co se aktuálně přidává na serveru do souboru /var/log/mysql/slow.log

Možností použití je nekonečné vzhledem k tomu, že Ncat podporuje snad všechny myslitelné protokoly.

Nějaké další ukázky použití najdete např. přímo na oficiálních stránkách Ncat.

 

1 Příspěvěk v diskuzi

Odpovědět