Ablakok.  Vírusok.  Jegyzetfüzetek.  Internet.  hivatal.  Segédprogramok.  Drivers

Eredeti: Hasznos netcat példák Linuxon
Szerző: Dan Nanni
Megjelenés dátuma: 2014. január 27
Fordítás: A.Panin
Az átutalás időpontja: 2016. szeptember 7

A TCP/IP-hálózatok "svájci késeként" emlegetett segédprogram rendkívül rugalmas eszköz, amellyel szinte bármit megtehet. lehetséges cselekvések TCP/UDP socketekkel Linuxon. Ez az egyik legnépszerűbb eszköz a hálózatok diagnosztizálására és kísérletezésre a rendszergazdák körében.

Vegye figyelembe, hogy amikor az nc-t használja az ismert portokon lévő kapcsolatok fogadására hálózati szolgáltatások(0-1023) root jogosultságra lesz szüksége. Minden más esetben a normál felhasználói jogok elegendőek az nc megfelelő működéséhez.

1. Ellenőrizze, hogy létezik-e egy adott nyitott TCP-port a távoli gazdagépen

$ nc -vn 192.168.233.208 5000 nc: csatlakozik a 192.168.233.208 5000 (tcp) címhez: A csatlakozás megtagadva $ nc -v 192.168.233.208 22 Csatlakozás a 192-es porthoz 22.2316.2.2.23.216! SSH-2.0-OpenSSH_6.0p1 Debian-4

2. Teszt UDP-csomag küldése egy távoli gazdagépnek

A következő parancs egy teszt UDP csomag küldése 1 másodperces késleltetéssel a távoli gazdagép 5000-es portjára a megadott címmel.

$ echo -n "foo" | nc -u -w1 192.168.1.8 5000

3. TCP-portok vizsgálata egy távoli gazdagépen

Az alábbi parancs a tartományok portjainak vizsgálatára és a nyitott portok listázására szolgál.

$ nc -vnz -w 1 192.168.233.208 1-1000 2000-3000

4. Fájl (például my.jpg) másolása a hostA.com nevű gazdagépről a hostB.com nevű gazdagépre

$nc -lp 5000 > my.jpg

$nc hostB.com 5000< my.jpg

5. Vigye át a címtárat (a teljes tartalommal) a hostA.com webhelyről a hostB.com webhelyre

A hostB.com (host) nevű gazdagépen:

$ nc -l 5000 | tarxvf-

A hostA.com nevű gazdagépen (átviteli oldalon):

$ tar cvf - /útvonal/könyvtárhoz | nc hostB.com 5000

6. UDP portok vizsgálata távoli gazdagépen

$ nc -vnzu 192.168.1.8 1-65535 Csatlakozás a 192.168.1.8 68-as porthoz sikerült! Sikerült a csatlakozás a 192.168.1.8 5353-as porthoz! Sikerült a csatlakozás a 192.168.1.8 16389 porthoz! Sikerült a csatlakozás a 192.168.1.8 38515 porthoz! Sikerült a csatlakozás a 192.168.1.8 45103 porthoz!

A fenti parancs lehetővé teszi a nyitott, elfogadó UDP portok listáját egy távoli szerveren.

7. Várakozás az adatokra az UDP porton és a fogadott adatok szöveges formátumban történő kiadása

Az alábbi parancs lehetővé teszi üzenetek (szövegsorok) fogadását egy adott UDP-porton.

$ nc -u localhost 5000

Kérjük, vegye figyelembe, hogy parancsot adott az első üzenet kézhezvétele után azonnal befejezi a munkáját. Ha üzenetsorozatot szeretne kapni, akkor ezt kell használnia míg hurok a következő módon:

$ míg igaz; do nc -u localhost 5000; Kész

8. (tömörített) merevlemez-képfájl (pl. /dev/sdb) mentése távoli szerverre

Távoli szerveren:

$ nc -lp 5000 | sudo dd of=/backup/sdb.img.gz

A helyi csomóponton, ahol HDD:

$ dd if=/dev/sdb | gzip -c | nc remote_server.com 5000

9. Merevlemez tartalmának visszaállítása egy távoli szerverre mentett tömörített képfájlból

A localhost-on:

$ nc -lp 5000 | gunzip -c | sudo dd of=/dev/sdb

A távoli szerveren, ahol a fájl tárolva van kép kemény lemez (például /backup/sdb.img.gz):

$ cat /backup/sdb.img.gz | nc my_local_host.com 5000

10. Webszerverhez hasonló statikus weboldal átvitele

Futtassa a következő parancsot egy webszerver elindításához, amely egy test.html nevű weboldalt fog kiszolgálni a 8000-es porton csatlakozó ügyfelek számára.

$ míg igaz; do nc -lp 8000< test.html; done

Most ellenőrizze a weboldal elérhetőségét úgy, hogy böngészőjével navigál a következő címre: http:// :8000/test.html . Vegye figyelembe, hogy a szabványos webszerver 80-as portjának használatához felhasználói jogosultságokkal kell futtatnia az nc-t root következőút:

$ míg igaz; csináld a sudo nc -lp 80-at< test.html; done

11. Nem biztonságos chat szervezése két csomópont között

Az első csomóponton (192.168.233.203):

$ nc -lp 5000

A második csomóponton:

$nc 192.168.233.203 5000

A fenti két parancs végrehajtása után az egyik csomóponton a terminálablakba beírt összes karakter megjelenik a másik csomópont terminálablakában.

12. "Távoli parancshéj" indítása, amely lehetővé teszi tetszőleges parancsok végrehajtását egy távoli gépen, miközben egy helyi gazdagéppel dolgozik

A távoli gazdagépen (192.168.233.208):

$ nc -lp 5000 -e /bin/bash

A localhost-on:

$nc 192.168.233.208 5000

Miután végrehajtotta a fenti parancsot a helyi gazdagépen, bármilyen parancsot végrehajthat a távoli gazdagépen a helyi gazdagép terminálablakán keresztül. A parancsok a távoli gazdagépen lesznek végrehajtva, és ezeknek a parancsoknak a kimenete megjelenik a helyi gazdagép terminálablakában. Ez a megközelítés használható hátsó ajtó létrehozására egy távoli gazdagépen.

13. Hozzon létre egy webes proxyt egy adott webhelyhez (pl. google.com)

$ mkfifo proxypipe $ while true; ne nc -l 5000 0 proxy cső; Kész

A fenti parancsok egy proxypipe nevű vezetéket hoznak létre, és az nc segédprogrammal az 5000-es localhost porton lévő összes TCP-kapcsolatot átirányítják a http://www.google.com címre egy kétirányú vezetéken keresztül. A parancsok végrehajtása után hozzáférhet kezdőlap keresőmotor Google rendszerek belépésével címsor webböngésző címe: http://127.0.0.1:5000.

14. Hozzon létre egy SSL-proxyt egy adott webhelyhez (pl. google.com)

$ mkfifo proxypipe $ mkfifo proxypipe2 $ nc -l 5000 -k > proxypipe< proxypipe2 & $ while true do; openssl s_client -connect www.google.com:443 -quiet < proxypipe >proxypipe2; Kész

A fenti parancsok lehetővé teszik, hogy az nc segédprogrammal olyan proxykiszolgálót hozzon létre, amely támogatja SSL protokoll, amely lehetővé teszi a kapcsolatok létrehozását a google.com webhelyhez.

15. Streamoljon videofájlt a szerverről, és tekintse meg az mplayer segítségével a kliens gépen

A videó streaming szerveren (192.168.233.208):

$ macska video.avi | nc -l 5000

A kliens rendszeren:

$nc 192.168.233.208 5000 | mplayer -vo x11 -cache 3000 -

16. TCP-kapcsolatok elfogadása egy adott porton IPv6-cím használatával

A következő parancsok lehetővé teszik az nc segédprogram számára, hogy IPv6-címet használjon, amikor TCP-porton keresztül fogad kapcsolatokat. Erre a hálózaton belüli IPv6 címzési beállítások helyességének tesztelése során lehet szükség.

$ nc -6 -l 5000 $ sudo netstat -nap | grep 5000 tcp6 0 0:::5000:::* HALLGAT 4099/nc

Ha tetszett a cikk, oszd meg barátaiddal:

Szia Kedves X Olvasó!

Azt hiszem, ezt a rajzot egy minitesztnek nevezhetjük "Hacker vagy?". Próbáld meg ezt mondani
ezt a vicces cicát jelenti. Nos, ha még mindig nehézségek merülnek fel, tudd, hogy minden haladó ember előtt áll a legkedvesebb dolog, így vagy úgy
a Nethez kapcsolódik, és a neve Netcat.

A Netcat egy olyan segédprogram, amely lehetővé teszi adatok olvasását és továbbítását a hálózaton keresztül
kapcsolatokat. Más szavakkal, a Netcat lehetővé teszi, hogy bármihez csatlakozzon, és bármit megtehessen. A Netcat abszolút önellátó, megfelelő használat mellett bármelyiket helyettesítheti szoftver eszköz, köztük még az Ön számára is ismert
Apache. Tehát a nagyon egyszerű változat A Netcat lehetővé teszi TCP és UDP kapcsolatok Bármelyikről bármelyik portra képes "meghallgatni" a bejövő kapcsolatokat (és megmondhatja a "cicának", hogy csak az Ön által megadott címekről, sőt portokról várjon a kapcsolatra!), képes portokat szkennelni, DNS-lekérdezéseket megoldani, bármilyen parancsot küldeni szabványos bemenetről, előre definiált műveleteket végrehajtani a kapcsolatra, amit a "cica" hallgat, hexa-kiíratást végezhet a küldött, és még sok más adatból...

Bár szerintem már az elején ki kellett volna mondani, hogy a Netcat mindenre képes; felhasználási lehetőségeinek pedig csak tudásod és képzelőerőd szab határt. Kezdetben a Netcat Unix segédprogramnak készült, de amint érti, nem akadhattak olyan rajongók, akik ne portolták volna át a "cicát" Windowsra. Mindkét verziót könnyen megtalálhatja a "Netcat" keresőmotorjaiban. De az előnyök természetesen a Unix-oidokra vonatkoznak, amelyek a fordítás során kissé módosíthatják a "cicát", és ezáltal aktiválhatják az alapértelmezés szerint letiltott "további funkciókat".

Ha valaha is használt "szoftvertámadásokat", vagy egyszerűen csak exploitokat, akkor valószínűleg észrevette, hogy több mint fele ilyen vagy olyan módon használja a Netcat-et. Ez elsősorban annak tudható be, hogy a Netcat soha semmilyen módon nem módosítja a bejövő adatokat (valamint a kimenő adatokat), ellentétben mondjuk egy Telnet klienssel, amely először értelmezi a bejövő adatokat, és csak azután adja át Önnek. A Netcat ezért vált a sebezhetőségek felkutatásának és kihasználásának hatékony eszközévé, aminek köszönhetően a Bugtraq több száz új bejegyzéssel bővült.

De ha a sebezhetőségek keresése nem tetszik, akkor megpróbálhatja a Netcat webböngészőként, vagy mondjuk e-mail kliensként használni; főleg azóta, hogy be Internet Explorer-e az Outlook pedig "friss" lyukakat talált, a jó öreg Unicode, heh... Sőt, orosz srácaink jeleskedtek ezen a téren (!Játszik a nemzeti büszkeség!). Ha ezt a cikket az Intézővel olvassa, nézze meg, hogyan működik a "Szamár"
tele lyukakkal.

Ezt követően Netcatre vált – nem túl kényelmes, de
biztonságos ... És végül példák a Netcat "haladó" használatára
(Unix):

  1. netcat as ;
  2. Netcat segédprogramként " "; az ilyeneket gyakran leírják X-ben, de valójában csak olyan kéréseket küldenek a keresőknek, amiket jól ismersz... A "cicád" is el tudja végezni ezt a hasznos munkát!;
  3. Netcat tetszik! Szüntesse meg a szolgáltatót!!!

Figyelem, minden shell scriptek formájában történik, így ha kell, bármit módosíthat.
A sim-től el akarok búcsúzni. Olvassa el a kézikönyveket, és sok sikert az ikonikus Netcat segédprogram megtanulásához!

P.S./Private/: A http://georgy.h1.ru/ oldalt én bezártam. Egyszer, s mindenkorra. Köszönöm mindenkinek, aki a vendégem volt.


Ez a második bejegyzés a Unix segédprogramokról szóló cikksorozatban, amelyet tudnia kell. Ebben a cikkben bemutatom a netcat segédprogramot vagy egyszerűen az nc-t.

A Netcat segédprogramot gyakran egyfajta "svájci késnek" nevezik Jó érzék ez a szó. A netcat funkcionalitása ugyanolyan hasznos, mint egy jól bevált zsebes svájci kés sokoldalúsága és kézreállósága. Néhány funkciója magában foglalja a portszkennelést, a fájlátvitelt, a porthallgatást, és hátsó ajtóként is használható.

2006-ban a netcat a 4. helyet szerezte meg a 100 Utilities listán hálózati biztonság", tehát határozottan ő az eszköz, amelyet tudni kell.

hogyan kell használni az nc-t

Ha emlékszel, azt mondtam, hogy a netmacska a svájci kés. Mi lenne ez a kés, ha nem lehetne úgy használni, mint egy hagyományos kést? Ez az oka annak, hogy a netcat használható a normál telnet helyett:

$nc www.google.com 80

Valójában kényelmesebb, mint a normál telnet, mert a kapcsolatot bármikor megszakíthatja a Ctrl+C lenyomásával, és a bináris adatokat a szokásos módon kezeli (nincs escape szekvencia, semmi).

Hozzáadhatja a „-v” opciót a műveletek eredményeinek részletesebb megjelenítéséhez, és a (-vv) opciót, hogy statisztikákat kapjon arról, hogy hány bájt került átadásra az aktuális kapcsolati munkamenet során.

A Netcat szerverként használható. Ha az alábbiak szerint futtatja, akkor az 12345-ös porton fog figyelni (minden interfészen):

$ nc -l -p 12345

Most, ha csatlakozik ennek a gazdagépnek a 12345-ös portjához, bármit beír, a távoli oldalra kerül, ami azt jelzi, hogy a netcat használható chatszerverként. Futtassa az egyik számítógépen:

# Az A számítógépen IP 10.10.10.10 $ nc -l -p 12345

És csatlakozzon hozzá egy másikból:

# B számítógépen $ nc 10.10.10.10 12345

Most mindkét fél beszélhet!

Ez a beszédmód, ahol mindkét fél beszélhet egymással, lehetővé teszi az nc használatát hálózati I/O műveletekhez! Például elküldhet egy teljes könyvtárat egyik számítógépről a másikra úgy, hogy az első számítógépen a tar-t az nc-n keresztül vezeti át, és a kimenetet átirányítja egy másik tar folyamatra a másodikon.

Tegyük fel, hogy fájlokat szeretne átvinni az A számítógép /data könyvtárából, amelynek IP-címe 192.168.1.10, a B számítógépre (bármilyen IP-címmel). Ez egyszerű:

# Az A gépen IP 192.168.1.10 $ tar -cf - /data | nc -l -p 6666 # B számítógépen $ nc 192.168.1.10 6666 | tar-xf-

Ne felejtse el kombinálni a csővezetéket az előző cikkben leírt Pipe Viewer-rel, hogy megnézze, milyen gyors az átvitel!

Egyetlen fájl egyszerűbben is elküldhető:

# 192.168.1.10 $ IP-című A számítógépen cat fájl | nc -l -p 6666 # B gépen $ nc 192.168.1.10 6666 > fájl

Akár egy teljes lemezt is másolhat és visszaállíthat az nc használatával:

# Az A gépen IP 192.168.1.10 $ cat /dev/hdb | nc -l -p 6666 # B gépen $ nc 192.168.1.10 6666 > /dev/hdb

Megjegyzés: A „-l” opció nem használható „-p”-vel Mac számítógépeken! A megoldás az, hogy egyszerűen lecseréljük a „-l -p 6666? a „-l 6666?. Mint itt:

# most az nc a 6666-os porton figyel Mac számítógépek$ nc -l 6666

A netcat kiemelkedő felhasználási területe a portszkennelés. Netcat nem legjobb eszköz ilyen munkához, de megbirkózik vele (a legjobb természetesen az nmap):

$ nc -v -n -z -w 1 192.168.1.2 1-1000 (UNKNOWN) 445 (microsoft-ds) nyitott (UNKNOWN) 139 (netbios-ssn) nyitott (UNKNOWN) 111 (sunrpc) nyitott (UNKNOWN) www.UNKNOWN) (UNKNOWN) (UNKNOWN) : A kapcsolat időtúllépése (UNKNOWN) 22 (ssh) nyitva

Az "-n" opció megakadályozza a DNS-kereséseket, a "-z" nem vár választ a szervertől, és a "-w 1? a kapcsolat időtúllépését 1 másodpercre állítja.

A netcat egy másik nem triviális használata proxyként. A port és a gazdagép is továbbítható. Nézd meg ezt a példát:

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

Ez a parancs elindítja az nc-t a 1234-es porton, és minden kapcsolatot átirányít a google.com:80 címre. Ha most csatlakozik ehhez a számítógéphez az 12345-ös porton, és kérést küld, azt fogja tapasztalni, hogy nem kap válaszként adatokat. Ez helyes, mert nem állítottunk be kétirányú csatornát. Ha hozzáad egy második csatornát, az adatait egy másik porton kapja meg:

$ nc -l -p 12345 | nc www.google.com 80 | nc -l -p 12346

Miután elküldte a kérést az 12345-ös porton, kapja meg válaszadatait az 12346-os porton.

A netcat talán legerősebb funkciója, hogy bármilyen folyamatot kiszolgálóként futtat:

$ nc -l -p 12345 -e /bin/bash

Az "-e" opció a bemenet és a kimenet végrehajtását egy hálózati aljzaton keresztül irányítja át. Ha most csatlakozik a gazdagéphez az 12345-ös porton, használhatja a bash-t:

$ nc localhost 12345 ls -las összesen 4288 4 drwxr-xr-x 15 pkrumins felhasználó 4096 2009-02-17 07:47 . 4 drwxr-xr-x 4 pkrumins felhasználó 4096 2009-01-18 21:22 .. 8 -rw------- 1 pkrumins felhasználó 8192 2009-02-16 19:30 .bash_history 4-rw-0-01 pkrumin 1-18 21:04 .bash_logout ...

Ebből az következik, hogy az nc egy népszerű hackereszköz, és nagyon könnyű hátsó ajtót létrehozni vele. Tovább Linux szerver futtathatja a /bin/bash-t és a Windows cmd.exe-t, és a teljes irányítás a kezében van.

Csak ennyit akartam mondani. Ismersz más hasznos netcat-trükköket, amelyekre itt nem térünk ki?

Hogyan kell telepíteni az nc-t?

Ha Debian vagy Debian alapú rendszere van, például Ubuntu, tegye a következőket:

$ sudo aptitude install netcat

Ha Fedora vagy Fedora alapú rendszere van, például CentOS, tegye a következőket:

$ sudo yum install netcat

Ha Slackware-t, FreeBSD-t, NetBSD-t, Solarist vagy Mac-et használ, töltse le az nc-forrásokat, és tegye:

$ tar -zxf nc-version.tar.gz $ cd nc-verzió $ ./configure && sudo make install

Egy másik módja ennek Mac-en, ha rendelkezik MacPortokkal:

$ sudo port install netcat

A Slackware-en csomagként telepítheti a csomagkönyvtárból:

$ sudo installpkg nc-1.10-i386-1.tgz

Ha Windows rendszert használ, töltse le a Windoze portot a securityfocus webhelyről.

A használati útmutató megtalálható a man nc.

Élvezze az nc-vel töltött időt a következő alkalomig!

nc [-46bCDdhklnrStUuvZz] [-I hossz][-én intervallum][-O hossz][-P proxy_username][-p forrás_port][-q másodpercig][-s forrás][-T kulcsszóra][-V rtable] [-w időtúllépés][-X proxy_protocol][-x proxy_address[:kikötő]] [rendeltetési hely] [kikötő]

Lehetőségek

-4 erők nc hogy csak IPv4-címeket használjon.
-6 erők nc hogy csak IPv6-címeket használjon.
-b Közvetítés engedélyezése.
-C Küldés sorvégként.
-D Hibakeresés engedélyezése a socketen.
-d Ne próbáljon stdin-ből olvasni.
-h Nyomtassa ki az nc súgót.
-ÉN hossz Meghatározza a TCP fogadási puffer méretét.
-én intervallum A küldött és fogadott szövegsorok közötti késleltetési időintervallumot határozza meg. Ezenkívül késleltetést okoz a több porthoz történő csatlakozások között.
-k erők nc hogy továbbra is figyeljen egy másik kapcsolatot, miután az aktuális kapcsolat létrejött. Hiba ennek az opciónak a használata nélkül -l választási lehetőség.
-l Ennek meghatározására szolgál nc inkább figyeljen a bejövő kapcsolatra, mintsem kapcsolatot kezdeményezzen egy távoli gazdagéppel. Hiba ezt az opciót a következővel együtt használni -o, -s, vagy -z lehetőségek. Ezenkívül a -w opciókat figyelmen kívül hagyja.
-n Ne végezzen DNS- vagy szolgáltatáskeresést meghatározott címeken, gazdagépneveken vagy portokon.
-O hossz Meghatározza a TCP küldési puffer méretét.
-P proxy_username Megadja a hitelesítést igénylő proxykiszolgálónak megjelenítendő felhasználónevet. Ha nincs megadva felhasználónév, akkor a hitelesítés nem történik meg. A proxy hitelesítés jelenleg csak a HTTP CONNECT proxy esetén támogatott.
-o forrás_port Megadja, hogy az nc-nek milyen forrásportot kell használnia, a jogosultsági korlátozásoktól és a rendelkezésre állástól függően.
-q másodpercig az stdin EOF után várjon a megadott számú másodpercet, majd lépjen ki. Ha a másodperc negatív, várjon örökké.
-r Meghatározza, hogy a forrás- vagy célportokat véletlenszerűen kell kiválasztani, nem pedig egy tartományon belül egymás után, vagy abban a sorrendben, ahogyan a rendszer hozzárendeli őket.
-S Engedélyezi az RFC 2385 TCP MD5 aláírási lehetőséget.
-s forrás Megadja a csomagok küldésére használt interfészt. A UNIX tartományú datagram socketekhez adja meg a létrehozandó és használandó helyi ideiglenes socket fájlt, hogy a datagramok fogadhatók legyenek. Hiba ezt az opciót a következővel együtt használni -l választási lehetőség.
-T kulcsszóra Módosítsa az IPv4 TOS értékét. kulcsszóra lehet az egyik kritikai, inetcontrol, alacsony költségű, alacsony késleltetés, netcontrol, áteresztőképesség, megbízhatóság, vagy valamelyik DiffServ kódpont: ef, af11 ... af43, cs0 ... cs7; vagy egy szám hexadecimális vagy tizedesjegyben.
-t Okoz nc RFC 854 DON"T és WON"T válaszok küldésére az RFC 854 DO és WILL kérésekre. Ez lehetővé teszi az nc használatát a telnet munkamenetek parancsfájljaihoz.
-U Meghatározza a UNIX tartományi socketek használatát.
-u Használja az UDP-t a TCP alapértelmezett beállítása helyett. UNIX tartományi socketeknél használjon datagram socketet a stream socket helyett. UNIX tartományi socket használata esetén a /tmp fájlban egy ideiglenes fogadó socket jön létre, kivéve, ha -s zászlót adják.
-V rtable Állítsa be a használni kívánt útválasztási táblázatot. Az alapértelmezett érték 0.
-v Van nc bőbeszédűbb kimenetet ad.
-w időtúllépés Olyan kapcsolatok, amelyek nem hozhatók létre, vagy időkorlát másodpercek után tétlenek. A -w zászló nincs hatással a -l opció, azaz Az nc örökké figyelni fogja a kapcsolatot, akár a -w zászló. Az alapértelmezés szerint nincs időkorlát.
-X proxy_protocol Kéri, hogy az nc a megadott protokollt használja, amikor a proxyszerverrel beszél. A támogatott protokollok: " 4 " (SOCKS v.4), " 5 " (SOCKS v.5) és " csatlakozni" (HTTPS proxy). Ha a protokoll nincs megadva, a SOCKS 5-ös verzióját használja a rendszer.
-x proxy_cím[:port] Ezt kéri nc proxy használatával kell csatlakoznia a célhoz proxy_addressés kikötő. Ha kikötő nincs megadva, a proxy protokoll jól ismert portját használja (1080 SOCKS, 3128 HTTPS esetén).
-Z DCCP mód.
-z Megadja, hogy az nc csak figyelő démonokat keressen anélkül, hogy adatokat küldene nekik. Hiba ezt az opciót a következővel együtt használni -l választási lehetőség.

rendeltetési hely lehet numerikus IP-cím vagy szimbolikus gazdagépnév (kivéve, ha a -n lehetőség adott). Általában egy célállomást kell megadni, kivéve, ha a -l opció adott (ebben az esetben a helyi gazdagép kerül felhasználásra). A UNIX tartományi socketeknél meg kell adni egy célt, és ez az a socket elérési útja, amelyhez csatlakozni kell (vagy figyelni kell, ha -l lehetőség adott).

A port lehet egyetlen egész szám vagy portok tartománya. A tartományok a formában vannak nn-mm. Általában meg kell adni egy célportot, kivéve, ha a -U lehetőség adott.

Kliens/szerver modell

Nagyon egyszerű felépíteni egy nagyon egyszerű kliens/szerver modellt nc. Az egyik konzolon indítsa el nc egy adott porton figyeli a kapcsolatot. Például:

Nc -l 1234

Az nc most a porton figyel 1234 kapcsolatért. Egy második konzolon (vagy egy második gépen) csatlakozzon a hallgatott géphez és porthoz:

Nc 127.0.0.1 1234

Most már kapcsolatnak kell lennie a portok között. Bármi, amit a második konzolon ír be, összefűződik az elsővel, és fordítva. A kapcsolat létrehozása után nc nem igazán érdekli, hogy melyik oldalt használják "szervernek", és melyik oldalt "kliensnek". A kapcsolat megszakítható egy EOF (' ^D’).

Nincs -c vagy -e opciót a modern netcatben, de továbbra is végrehajthat parancsot a kapcsolat létrehozása után a fájlleírók átirányításával. Legyen óvatos, mert VESZÉLYES, ha megnyit egy portot, és hagyja, hogy bárki, aki csatlakozik, tetszőleges parancsot hajtson végre a webhelyen. Ha ezt valóban meg kell tennie, itt van egy példa:

A "szerver" oldalon:

Rm-f /tmp/f; mkfifo /tmp/f cat /tmp/f | /bin/sh -i 2>&1 | nc -l 127.0.0.1 1234 > /tmp/f

Az „ügyfél” oldalon:

nc host.example.com 1234

(shell prompt a host.example.com webhelyről)

Kezdje a használatával nc egy adott porton történő hallgatáshoz a kimenet fájlba rögzítésével:

nc -l 1234 > filename.out

Egy második gép segítségével csatlakozzon a hallgatáshoz nc folyamat, beadva az átvinni kívánt fájlt:

nc host.example.com 1234< filename.in

A fájl átvitele után a kapcsolat automatikusan megszakad.

Beszélgetés a szerverekkel

Néha hasznos "kézzel" beszélni a szerverekkel, nem pedig felhasználói felületen keresztül. Segíthet a hibaelhárításban, amikor szükséges lehet ellenőrizni, hogy a szerver milyen adatokat küld az ügyfél által kiadott parancsokra válaszul. Például egy webhely kezdőlapjának lekéréséhez:

Printf "GET / HTTP/1.0\r\n\r\n" | nc host.example.com 80

Vegye figyelembe, hogy ez a által küldött fejléceket is megjeleníti a háló szerver. Szűrhetők olyan eszköz segítségével, mint pl sed, ha szükséges.

Bonyolultabb példák építhetők fel, ha a felhasználó ismeri a szerver által igényelt kérések formátumát. Egy másik példaként egy e-mailt el lehet küldeni egy SMTP-szervernek a következő használatával:

Nc [-C] localhost 25<< EOF HELO host.example.com MAIL FROM:< >RCPT TO:< >ADATOK Az e-mail törzse. . LÉPJ ki az EOF-ból

port szkennelés

Hasznos lehet tudni, hogy mely portok vannak nyitva, és mely szolgáltatások futnak a célgépen. A -z zászló segítségével elmondható nc hogy jelentse a nyitott portokat, ahelyett, hogy kapcsolatot kezdeményezne. Általában hasznos bekapcsolni a bőbeszédű kimenetet az stderr-re úgy, hogy ezt az opciót a következővel együtt használjuk -v választási lehetőség.

Nc -zv host.example.com 20-30 Csatlakozás a host.example.com 22 porthoz sikerült! Sikerült a csatlakozás a host.example.com 25-ös porthoz!

A porttartomány úgy lett megadva, hogy a keresést a portokra korlátozza 20 - 30 , és növekvő sorrendben szkenneljük.

Megadhatja a vizsgálandó portok listáját is, például:

Nc -zv host.example.com 80 20 22 nc: csatlakozás a host.example.com webhelyhez 80 (tcp) sikertelen: Kapcsolat megtagadva nc: csatlakozás a host.example.com webhelyhez 20 (tcp) sikertelen: A csatlakozás megtagadva Sikerült a csatlakozás a host.example.com porthoz!

A portok ellenőrzése az Ön által megadott sorrendben történik.

Alternatív megoldásként hasznos lehet tudni, hogy melyik kiszolgálószoftver fut, és melyik verzióban. Ezt az információt gyakran az üdvözlő szalaghirdetések tartalmazzák. Ezek lekéréséhez először létre kell hozni egy kapcsolatot, majd a szalaghirdetés lekérésekor meg kell szakítani a kapcsolatot. Ez úgy érhető el, hogy megad egy kis időtúllépést a -w zászlót, vagy esetleg egy "QUIT" parancs kiadásával a szervernek:

Echo "QUIT" | nc host.example.com 20-30 SSH-1.99-OpenSSH_3.6.1p2 Protokolltérés. 220 host.example.com IMS SMTP vevő, 0.84-es verzió, kész

Példák

nc -p 31337 -w 5 host.example.com 42

TCP-kapcsolatot nyit meg a porthoz 42 nak,-nek host.example.com, port használatával 31337 forrásportként, időtúllépéssel 5 másodpercig.

nc -u host.example.com 53 nc -x10.2.3.4:8080 -Xconnect -Pruser host.example.com 42

Ugyanaz, mint a fenti példában, de ezúttal engedélyezi a proxy hitelesítést felhasználónévvel " ruser", ha a proxy megköveteli.

kapcsolódó parancsokat

ifconfig- A hálózati interfészek konfigurációjának megtekintése vagy módosítása.

Ebben a cikkben megnézem a népszerű netcat hálózati segédprogramot és néhány hasznos trükköt a használatához.


A Netcat egy Unix segédprogram, amely lehetővé teszi TCP és UDP kapcsolatok létrehozását, adatok fogadását és továbbítását. Hasznossága és egyszerűsége ellenére sokan nem tudják, hogyan kell használni, és méltánytalanul megkerülik.


Ezzel a segédprogrammal végrehajthat néhány lépést a behatolási tesztelés során. Ez akkor lehet hasznos, ha a támadott gépen nincsenek telepített csomagok (vagy nem vonják magukra a figyelmet), vannak korlátozások (például IoT/beágyazott eszközök) stb.


Mit lehet tenni a netcat segítségével:

  • Szkennelési portok;
  • Forward portok;
  • Gyűjtsön szolgáltatási bannereket;
  • Listen port (bind a fordított kapcsolathoz);
  • Fájlok letöltése és feltöltése;
  • Nyers HTTP-tartalom kiadása;
  • Hozzon létre egy mini chat.

Általánosságban elmondható, hogy a netcat használatával a unix segédprogramok egy része lecserélhető, így ez az eszköz egyfajta kombájnnak tekinthető bizonyos feladatok elvégzéséhez.

Gyakorlati példák

Sok esetben, ha egy adott gazdagépet ellenőrizni kell, telnetet vagy saját szolgáltatásaikat használják a gazdagép vagy szalagcím azonosítására. Hogyan segíthet nekünk a netcat:

Nyitott 12345-ös TCP-port keresése

$ nc -vn 192.168.1.100 12345
nc: csatlakozás a 192.168.1.100 12345 (tcp) címhez nem sikerült: A csatlakozás megtagadva

$ nc -v 192.168.1.100 22
Sikerült a csatlakozás a 192.168.1.100 22 porthoz!
SSH-2.0-OpenSSH

TCP portok vizsgálata netcat segítségével:

$ nc -vnz 192.168.1.100 20-24

Egy ilyen vizsgálattal nem lesz kapcsolat a porttal, csak a sikeres kapcsolat kimenete:


nc: csatlakozás a 192.168.1.100 20-as porthoz (tcp) sikertelen: A csatlakozás megtagadva
nc: csatlakozás a 192.168.1.100 21-es porthoz (tcp) sikertelen: A csatlakozás megtagadva
0 asszociációt talált
1 kapcsolatot találtam:
1: zászlók=82
outif en0
src 192.168.1.100 50168-as port
dst 192.168.1.100 22-es port
rang információ nem elérhető
TCP aux információ elérhető
Sikerült a csatlakozás a 192.168.1.100 22-es porthoz!
nc: csatlakozás a 192.168.1.100 23-as porthoz (tcp) sikertelen: A csatlakozás megtagadva
nc: csatlakozás a 192.168.1.100 24-es porthoz (tcp) sikertelen: A csatlakozás megtagadva

UDP portok vizsgálata.

Root jogosultságok szükségesek az UDP-portok nmap segítségével történő vizsgálatához. Ha nincsenek ott, ebben az esetben a netcat segédprogram is segítségünkre lehet:


$ nc -vnzu 192.168.1.100 5550-5560
Sikerült a csatlakozás a 192.168.1.100 5555-ös porthoz!

UDP-csomag küldése

$ echo -n "foo" | nc -u -w1 192.168.1.100 161

Ez akkor lehet hasznos, ha hálózati eszközökkel kommunikál.

Adatok fogadása az UDP porton és a vett adatok kiadása

$ nc -u localhost 7777

Az első üzenet után a kimenet leáll. Ha több üzenetet kell kapnia, akkor a true értéket kell használnia:


$ míg igaz; do nc -u localhost 7777; Kész

Fájl átvitel. A netcat használatával egyszerre fogadhat fájlokat és továbbíthat fájlokat egy távoli gazdagépre:


nc 192.168.1.100 5555< 1.txt
nc -lvp 5555 > /tmp/1.txt

A Netcact egyszerű webszerverként.

A Netcat egyszerű webszerverként működhet a html oldalak megjelenítésére.


$ míg igaz; do nc -lp 8888< index.html; done

Böngésző használatával: http://netcat host:8888/index.html. A szabványos webszerver 80-as portjának használatához az nc-t root jogosultságokkal kell futtatnia:


$ míg igaz; csináld a sudo nc -lp 80-at< test.html; done

Csevegés a csomópontok között

Az első csomóponton (192.168.1.100):


$ nc -lp 9000

A második csomóponton:


$nc 192.168.1.100 9000

A parancsok végrehajtása után bármelyik csomópont terminálablakába beírt összes karakter megjelenik a másik csomópont terminálablakában.

Fordított héj

A netcat segítségével kényelmesen megszervezhet egy fordított shellt:


nc -e /bin/bash -lp 4444

Most már csatlakozhat a távoli gazdagépről:


$nc 192.168.1.100 4444

Nem szabad feladni, ha nincsenek bizonyos eszközök, sokszor elég körülményes, néha rögtönzött eszközökkel is megoldható a feladat.

Ha hibát észlel, jelöljön ki egy szövegrészt, és nyomja meg a Ctrl + Enter billentyűket
OSSZA MEG: