Netcat | |
![]() | |
![]() | |
Fejlesztő | *Hobbit* |
Legfrissebb stabil kiadás | 1.10 (1996. március 20.) |
Operációs rendszer | UNIX |
Platform | Microsoft Windows |
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ó.
Néhány a netcat fő szolgáltatásai közül:[2]
nc mail.server.net 25
{ 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.
nc -vzu 192.168.0.1 80-90
Jegyezzük meg, hogy az UDP tesztek mindig „open”-t mutatnak. Az –uz
kapcsoló hasztalan.
echo '<0>message' | nc -w 1 -u loggerhost 514
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.
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
A 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'
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.
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.
Unix parancssoros programok és utasítások | |
---|---|
Fájlrendszer | |
Processzek | |
Felhasználói környezet | |
Szövegkezelés | |
Shell programozás | |
Hálózat | |
Keresés | |
Dokumentáció | |
Egyéb |