Мазмұны:

Python -дағы Netcat: 6 қадам
Python -дағы Netcat: 6 қадам

Бейне: Python -дағы Netcat: 6 қадам

Бейне: Python -дағы Netcat: 6 қадам
Бейне: Задание 6 | ЕГЭ по информатике | ДЕМО-2023 2024, Қараша
Anonim
Python -дағы Netcat
Python -дағы Netcat

Netcat дегеніміз не? Netcat үшін қолмен жұмыс істейтін бетте былай делінген: «nc (немесе netcat) утилитасы күн астында TCP, UDP немесе UNIX-домендік розеткалары бар кез келген нәрсеге қолданылады. Ол TCP қосылымдарын аша алады, UDP пакеттерін жібереді, еркін тыңдай алады. TCP және UDP порттары, сканерлеуді жасайды және IPv4 пен IPv6 -мен жұмыс істейді. Telnet (1) -ден айырмашылығы, nc сценарийлері жақсы және қате туралы хабарларды стандартты шығарылымға жіберудің орнына стандартты қатеге бөледі, мысалы telnet (1) кейбірімен. «

Негізінде netcat басқа серверлерге TCP немесе UDP протоколы арқылы қосылуға мүмкіндік береді. TCP трансмиссиялық басқару хаттамасын білдіреді және байланысқа бағытталған. UDP әмбебап датаграмма протоколын білдіреді және қосылымсыз. TCP әдетте интернет -қосымшалар үшін қолданылады, ал UDP медиа ағыны немесе VPN үшін қолданылады.

1 -қадам: Біз қалай бастаймыз?

Біз қалай бастаймыз?
Біз қалай бастаймыз?

Жоғарыда netcat қалай аталады. Соңында «тағайындалған» және «порт» деп аталатын екі аргумент бар екенін көруге болады. Баратын жер біз қосылуға тырысатын сервердің хост атауын немесе IP мекенжайын білдіреді, ал порт біз қосылғалы отырған сервер портын білдіреді.

2 -қадам: бастайық

Бастайық
Бастайық

Жоғарыда питонның бастапқы коды бар. Көріп отырғаныңыздай, біз бағдарламаның аргументтерін нақты утилитаның жұмысына ұқсас өңдегіміз келеді. Хост атауы орындалатын файлдың атауынан кейінгі бірінші аргумент болады, ал порт командалық жолда орындалатын файлдың атауынан кейінгі екінші аргумент болады.

3 -қадам: Қосылым құру

Байланыс құру
Байланыс құру

Қолдануға болатын netcat функциясын жасайық. Біз мұнда негізінен не істеп жатырмыз - бұл ұяны жасау және берілген параметрлерді пайдаланып серверге қосылу. Netcat пәрмені үшін ағымдағы параметрлер - біз қосылуға тырысатын сервердің хост атауы мен порты. Розеткада «socket. AF_INET» және «socket. SOCK_STREAM» параметрлері бар, себебі біз осы оқулыққа TCP қосылымын әдепкі бойынша орнатамыз.

4 -қадам: Кейбір мазмұнды жіберуге рұқсат етіңіз

Кейбір мазмұнды жіберуге рұқсат етіңіз
Кейбір мазмұнды жіберуге рұқсат етіңіз

Біз netcat функциясын «мазмұн» үшінші параметрін алу үшін кеңейттік. Мұнда мазмұн көп, сондықтан оны жол нөмірі бойынша бөлейік.

14-16 жол: біз барлық мазмұнды розетка арқылы жібереміз, біз біраз күтеміз, содан кейін ұяшықты кез келген шығыс деректерге жабамыз, осылайша розетка бұдан былай деректер келмейтінін біледі.

18-26-жолдар: біз серверлік жауапты сақтау үшін буфер құрамыз, ал розетка деректерді қабылдап жатқанда, оқылатын деректер болғанша нәтижеге 1024 байтқа дейінгі деректерді қосамыз.

28-29-жол: біз бұл netcat байланысының бір реттік қосылым болғанын қалаймыз, сондықтан біз қосылымды жабық деп жариялаймыз, содан кейін қосылымды жабамыз.

31 -жол: Бұл стандартты HTTP сұрауы. Егер сіз кодты «google.com» және «80» пәрмен жолының аргументтерімен іске қоссаңыз, онда сіз дұрыс HTTP жауабын көресіз.

5 -қадам: Ашық байланыс орнатуға рұқсат етіңіз

Ашық байланыс орнатуға рұқсат етіңіз
Ашық байланыс орнатуға рұқсат етіңіз

Жоғарыда келтірілген код (алдыңғы бөлімдегі кодтың астында орналасқан) бізге жалған ашық қосылым арқылы netcat-тың бірнеше командаларын орындауға мүмкіндік береді. (Іс жүзінде, сіз әр команданы іске қосқан кезде, ол жаңа TCP қосылымын ашады, содан кейін жабады, сондықтан ол шынымен netcat -тің мінез -құлқын еліктемейді, біз мұны тек оқу мақсатында жасаймыз). Сонымен қатар, бұл жолды жолға бөлуге рұқсат етіңіз:

31 -жол: Біз «интерактивтілікті» сақтау үшін командаларды шексіз оқығымыз келеді.

32 -жол: Бұл біздің сұраныстың мазмұнын сақтайтын буфер

36-45 жол: Біз бос жолды оқығанша буферге оқимыз

48 -жол: біз тек netcat функциясын хост атауымен, портпен және жаңадан құрылған мазмұнмен атаймыз (ол дұрыс кодталған)

50 -жол: егер біздің буфердің мазмұнында «Байланыс: Жабу» (байланыс үзілгісі келетінін білдіретін) болса, біз жай ғана циклден шығамыз.

6 -қадам: Қорытынды

Бұл оқулықтың соңында сізде netcat -тің ең аз жұмыс істейтін нұсқасы болуы керек. Мен пайдаланушыға келесі функцияларды іске асыруды жаттығу ретінде қалдырамын:

1. басқа протоколдарды қолдайды

2. қосылымды әр жолы жаппау үшін кодты бекіту

3. netcat мінез -құлықты өзгертуі керек жалаушаларды қосу

Ұсынылған: