Netcat

A Wikipédiából, a szabad enciklopédiából
Netcat
Netcat.png

Fejlesztő *Hobbit*
Legfrissebb stabil
kiadás
1.10
(1996. március 20.)
Legfrissebb fejlesztői kiadás ismeretlen +/-
Operációs rendszer UNIX
Kategória Hálózatok, Kiegészítők
Licenc Permissive free software licence[1]
A Netcat weboldala

A netcat egy számítógépes hálózati szolgáltatás, mely olvas és ír a TCP vagy UDP hálózati kapcsolatokat használva. A netcat célja, hogy megbízható "back-end" eszköz legyen, amely közvetlenül vagy könnyen felhasználható más programok és szkriptek által. Ugyanakkor ez egy funkciókban gazdag hálózati hibakereső és vizsgálati eszköz, mert képes szinte bármilyen szükséges korrelációt előállítani, és számos beépített képessége is van. 2000-ben a www.insecure.org szerint a netcat volt a második legnagyobb működő hálózati biztonsági eszköz. 2003-ban és 2006-ban a negyedik helyet érte el ugyanabban a kategóriában. A netcat-ot gyakran nevezik a "TCP / IP svájci-bicskájának." Az összetevők listája tartalmazza a port szkennelést, fájlok átvitelét, és a port hallgatást – ezért ”hátsó ajtóként” (backdoor)is használható.

Szolgáltatások[szerkesztés | forrásszöveg szerkesztése]

Néhány a netcat fő szolgáltatásai közül:[2]

  • Kimenő vagy bejövő kapcsolatok, TCP vagy UDP, bármelyik porton,
  • Teljes DNS előre / hátra ellenőrzés, a megfelelő figyelmeztetésekkel,
  • Képes használni bármely helyi forrás-portot,
  • Képes használni bármely helyileg konfigurált hálózati forrás-címet,
  • Beépített port-szkennelési képességek randomizációval,
  • Beépített laza útvonal-lehetőség,
  • Tudja olvasni a parancssori argumentumokat a standard input-ról,
  • Lassú-küldési mód, egy sor minden N másodpercben,
  • Hex dump a továbbított és fogadott adatokon,
  • Képes más programok kiépített kapcsolatain dolgozni,
  • Kiemelt alagút üzemmód, amely lehetővé teszi az olyan speciális csatornákat, mint az UDP- TCP, azzal a lehetőséggel, hogy meghatározza az összes hálózati paramétert (forrás port / interfész, figyelt port / interfész, valamint a távoli gép alagútra csatlakozásának lehetővé tétele).

Példák[szerkesztés | forrásszöveg szerkesztése]

Nyers kapcsolat létrehozása a 25. porton (mint a telnet esetén)[szerkesztés | forrásszöveg szerkesztése]

nc mail.server.net 25

Egy ”one-shot webserver” létrehozása a 8080. porton, fájlba írással[szerkesztés | forrásszöveg szerkesztése]

{ echo -ne "HTTP/1.0 200 OK\r\n\r\n"; cat some.file; } | nc -l -p 8080
{ echo -ne "HTTP/1.0 200 OK\r\nContent-Length: " `wc -c some.file | cut -f 1 -d ' '` "\r\n\r\n"; cat some.file; } | nc -l 808

A fájl elérhető egy webböngészőn keresztül a http://servername:8080/ címen. A netcat csak egyszer készíti el a fájlt, amikor az első felhasználó csatlakozik, az utána már elérhető. A második lehetőség a fájl hosszát a böngésző elvárásaihoz igazítja. Jegyezzük meg, hogy a –p kapcsoló szükséges lehet a figyelt port azonosításához az nc egyes változataiban.

Ellenőrzés, ha az UDP portok (-u) nyitottak a 192.168.0.1 címen, zero mode I/O-t használva (-z)[szerkesztés | forrásszöveg szerkesztése]

nc -vzu 192.168.0.1 80-90

Jegyezzük meg, hogy az UDP tesztek mindig „open”-t mutatnak. Az –uz kapcsoló hasztalan.

Pipe UDP-vel (-u) 1 másodperc várakozási idővel (-w) a ’loggerhost’-on, az 514-es port használatával[szerkesztés | forrásszöveg szerkesztése]

echo '<0>message' | nc -w 1 -u loggerhost 514

Port szkennelés[szerkesztés | forrásszöveg szerkesztése]

A netcat ritkán használt port szkennelésre. A netcat nem a lehető legjobb megoldás erre a munkára, de elegendő lehet. (Az Nmap egy sokkal megfelelőbb eszköz.)

nc -v -n -z -w 1 192.168.1.2 1-1000

A –n kapcsoló megelőzi a DNS lookup-t, a –z beállítja hogy az nc ne fogadjon a szervertől adatokat, és a –w 1 határozza meg a kapcsolat időtúllépését inaktivitás esetén.

Proxy[szerkesztés | forrásszöveg szerkesztése]

Ugyancsak hasznos, ha a netcat-ot proxy-ra használjuk. A portok és a kiszolgálók egyaránt átirányíthatóak.

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

Az 12345. port reprezentálja a kérelmet.

A fenti parancs elindít egy nc szervert a 12345. porton, és az összes kapcsolat átirányításra kerül a google.com:80 –ra. Ha a böngésző kérelmet intéz az nc-hez, a kérelem a google-hoz lesz küldve, de a válasz nem lesz elküldve a böngészőnek. Ez azért van így, mert a pipe-ok egyirányúak. Egy elnevezett pipe átirányíthatja az input-ot és az output-ot.

mkfifo backpipe
nc -l 12345  0<backpipe | nc www.google.com 80 1>backpipe

A –c kapcsoló is használható:

nc -l 12345 -c 'nc www.google.com 80'

Folyamat létrehozása a szerveren[szerkesztés | forrásszöveg szerkesztése]

Az A számítógépen (IP: 192.168.1.2):

nc -l -p 1234 -e /bin/bash

A –e kapcsoló kényszeríti az alkalmazást, hogy az input és output kommunikációja a hálózati kapcsolaton keresztül történjen. A következő A állomást bármely másik állomáshoz csatlakoztatja adott hálózatban:

nc 192.168.1.2 1234
ls -las
total 4288
4 drwxr-xr-x 15 imsovain users 4096 2009-02-17 07:47 .
4 drwxr-xr-x 4 imsovain users 4096 2009-01-18 21:22 ..
8 -rw------- 1 imsovain users 8192 2009-02-16 19:30 .bash_history
4 -rw-r--r-- 1 imsovain users 220 2009-01-18 21:04 .bash_logout
...

A következtetés tehát az, hogy az nc egy közkedvelt cracker eszköz arra, hogy backdoor-t[3] hozzunk létre bármely számítógépen. Egy Linuxos rendszeren a /bin/bash, egy Windowsos rendszeren pedig a cmd.exe uralmunk alá hajtásával kényszeríthetjük engedelmességre a gépet.

Port továbbítás, vagy port térképezés[szerkesztés | forrásszöveg szerkesztése]

Linux alatt a netcat alkalmazható port továbbításra (port forwarding) is. Alább kilenc különböző mód van feltüntetve, amellyel ezt megvalósíthatjuk. (A –c kapcsoló nem feltétlenül támogatott.)

nc -l -p port1 -c ' nc -l -p port2'
nc -l -p port1 -c ' nc host2 port2'
nc -l -p port1 -c ' nc -u -l -p port2'
nc -l -p port1 -c ' nc -u host2 port2'
nc host1 port1 -c ' nc host2 port2'
nc host1 port1 -c ' nc -u -l -p port2'
nc host1 port1 -c ' nc -u host2 port2'
nc -u -l -p port1 -c ' nc -u -l -p port2'
nc -u -l -p port1 -c ' nc -u host2 port2'

A proxy beállítását tekintsd meg a Netcat#Proxy résznél.

Változatok[szerkesztés | forrásszöveg szerkesztése]

  • A netcat eredeti verziója egy Unix-os program volt. Az utolsó verziója (1.1) 1996 márciusában lett kiadva, és jelenleg a http://nc110.sf.net oldalról érhető el.
  • Több implementációja is van a POSIX rendszereken, beleértve a rögtönzött átírásokat[4] is, mint a GNU netcat, vagy az OpenBSD netcat (ez utóbbi újabban támogatja az IPv6-t). Az OpenBSD verzió portolva lett Windows/Cygwin alá is. Mac OS X felhasználók használhatják a Netcat Darwin Port-t. Ez ugyancsak egy Windows-os netcat verzió, melyet Chris Wystopal[5] készített.
  • Az ismert portok beágyazva megtalálhatóak a Windows CE (Netcat 4 wince) verzióiban, vagy az iPhone-n[6] is.
  • A BusyBox[7] alapból magába foglalja a netcat egy egyszerűbb verzióját.
  • A Solaris 11-ben megtalálható az OpenBSD-re épülő netcat.
  • A Socat a netcat egy komplexebb változata. Nagyobb és rugalmasabb, továbbá több opciót tartalmaz, amelyeket az adott feladatra konfigurálhatunk be.
  • A Cryptcat a netcat egy olyan változata, amely integrálja magába az átviteli titkosítási lehetőségeket.
  • 2005 közepén az Nmap bemutatta a netcat egy új inkarnációját, az Ncat-ot. Ez több lehetőséget is magában hordozott, mint például a ”Connection Brokering”-et, TCP/UDP átirányítást, SOCKS4 kliens és szerver támogatást, az Ncat folyamatok láncolását, http CONNECT proxy beállítást (és proxy láncolást), az SSL kapcsolódás/figyelés támogatását és az IP cím/kapcsolat szűrést. Akár csak az Nmap, az Ncat is platformfüggetlen alkalmazás.
  • Néhány rendszeren a netcat változatai, vagy hasonló alkalmazások elérhetőek a következő nevekkel: nc, ncat, pnetcat, socat, sock, socket, sbd.

Kapcsolódó szócikkek[szerkesztés | forrásszöveg szerkesztése]

Jegyzetek[szerkesztés | forrásszöveg szerkesztése]

További információk[szerkesztés | forrásszöveg szerkesztése]